(Illustration by Gaich Muramatsu)
On Mon, Jul 28, 2014 at 08:44:12AM -0400, Jan Harkes wrote: > You cannot actually get rid of callbacks in Coda unless you implement > something like leases. The cache consistency relies on them. The > unmerged project simply replaced the many individual callbacks with a > server-side log. Clients still get a callback when the first 'new' entry > is added to the log, then we can avoid sending further callbacks until > the client fetched the current state of the log., then we can avoid > sending further callbacks until the client fetched the current state of > the log., then we can avoid sending further callbacks until the client > fetched the current state of the log., then we can avoid sending further > callbacks until the client is back in sync by reading the log. So > instead of tracking callback state for each object and client we only > need to track it for each (volume-)log and client. Jan, If possible and not too bothersome, I would be interested to look at the corresponding code. Is it available? > There is more overhead for clients that only cache a few objects per > volume, because they end up with callbacks/log updates for every changed > object in the volume. Curious what was the main reason not to pursue this approach? This extra overhead (more data to get and filter) or other problems? It looks otherwise useful, to reduce the amount of kept state on the servers. Regards, RuneReceived on 2014-08-06 12:31:21