Back to index
The Bayou Architecture: Support for Data Sharing Among Mobile
Alan Demers, Karin Petersen, Mike Spreitzer, Doug Terry, Marvin
Theimer, Brent Welch.
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.
- 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
- 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.
Back to index