search for: rsafe

Displaying 1 result from an estimated 1 matches for "rsafe".

Did you mean: safe
2014 Aug 20
6
Full MVCC in Brass
...On Unix platforms, Xapian already uses fcntl byte range locking to lock byte 0 of "flintlock" to protect against concurrent writers. Create a new "brasslock" that extends this to use byte R+1 to represent a lock on revision R. 1) In the writer: Lock byte 0 like usual. Then let RSAFE be the current database revision minus 1 (omitting the latest revision ensures it's available to readers that start during this writer.) Use F_GETLK to test for conflicting shared locks on revision range [0, RSAFE]. If F_GETLK returns a conflicting lock, set RSAFE to one less than the lower b...