Stefan Fuhrmann wrote on Wed, Aug 27, 2014 at 14:49:23 +0200: > On Wed, Aug 27, 2014 at 2:30 PM, Daniel Shahaf <d...@daniel.shahaf.name> > wrote: > > > Stefan Fuhrmann wrote on Tue, Aug 26, 2014 at 17:04:27 +0200: > > > Here the guarantees and limitations of the new implementation: > > > > > > > I haven't had a chance to look at the code (sorry), but two quick > > questions based on this summary: > > > > > * No lost updates in revprop file contents even if the > > > SVN caches should be stale. > > > * A connection (svn_fs_t) will always see at least all > > > changes up to and including its own last revprop change. > > > * A new connection will always see all changes made > > > up to the point the connection got created. > > > > > > * On Windows and Unixoids, readers will always see > > > the latest data if they are on the same machine as the > > > writing process. > > > * Depending on OS read cache configuration and if the > > > repository is shared between machines, open connections > > > *might* no see revprop updates or might see them delayed > > > (the open revprop generation file handle may see a stale > > > OS file buffer). > > > > Is starvation possible? i.e., is it possible for the delay to be > > indefinite (assume the reader fs_t does no write operations)? I assume > > the delay would be finite and bounded by a constant if the shared disk's > > local file handles have this property.? > > > > This entirely depends on if and when your cluster file system > configuration makes remote changes visible to already open > file handles. Worst case: an existing open connection never > sees the revprop generation bump and will read new data only > if there is no (old) data in cache for the respective revision. > > > > Is linearizability guaranteed? i.e., if the repository is load-balanced > > across four servers, and I do 'svn ps alpha 1; svn ps beta 2; svn ps > > gamma 3; svn pl', is it possible for the last process to see beta > > without seeing alpha? (e.g., if each svn process gets load balanced to > > a different server.) > > > > Writes are handled as they are today, i.e. the cache get bypassed > even for the read step (get all revprops) in a ps operation. > Because the last command, svn pl, opens a new connection, > it will see up-to-date data.
Thanks for the clarifications :)