缓存是计算机里(包括硬件设计和软件设计)广泛使用的一种技术,对减低读取延迟、网络流量和服务器负载都非常有效,但也带来了一致性(Consistency)的问题。
所谓一致就是客户端总能读到最新的数据,使用缓存后有可能服务器端的数据已经被修改,但客户端仍然从换从中读取陈旧的数据。
为了保证一致性,有两种常见的办法。
一种是轮询(polling),即每次读取数据时都先询问服务器数据是不是最新的,如果不是就从服务器传输新数据,这种方法,每次读取数据时都与服务器通信。
另外一种方法就是回调(callback)或者无效化(Invalidation)。就是由服务器记住有哪些客户端读取了数据,对数据修改时首先通知所有这些客户端数据已经失效,这种方法的问题在于服务器需要记住所有读取过数据的客户端,这是很大的负担,更严重的是,当有客户端联系不上或者丢失了客户端的信息,修改操作就无法继续。
Post a comment now »
本文目前不可评论
Sorry, the comment form is closed at this time.
No comments yet.