Back to index
The Bayou Architecture: Support for Data Sharing Among Mobile
Users
Alan Demers, Karin Petersen, Mike Spreitzer, Doug Terry, Marvin
       Theimer, Brent Welch.
One-line summary:
From-the-ground-up design of a weakly consistent, highly available,
replicated shared database using peer-to-peer anti-entropy, per-write
merge and update functions, and selectable consistency/availability
tradeoff at the clients.
Overview/Main Points
  -  High availability for reads and writes: use read-any/write-any
       weakly consistent replication.
  
 -  Eventual consistency with minimal assumptions about communication
       characteristics: Peer-peer anti-entropy to propagate updates.
  
 -  Detect and resolve update conflicts: dependency checks on each
       write, application-specific merge proc passed w/each write.
  
 -  Commit to stable value ASAP: primary server sets commit ordering.
  
 -  Disconnected operation while allowing groups to see their own
       updates: allow client to read "tentative" data with expectation
       that it will be committed with the same effect if possible.
  
 -  Client's view should be consistent with its own updates: range of
       selectable session guarantees:
       
         -  Read your own writes
         
 -  Monotic reads (successive reads reflect non-decreasing set
              of writes)
         
 -  Writes follow reads: writes propagated after the reads on
              which they depend
         
 -  Monotonic writes: writes propagated after writes that
              logically precede them
         
 -  Age parameter allowed on reads
         
 -  Choice of tentative or committed on reads
       
 
   -  Flexible control over placement and use of DB's: number and
       locations of DB's can vary over time, as can its primary server.
       Scales OK since anti-entropy is peer-to-peer.
 
Relevance
Flaws
Back to index