Mobility in Distributed Mobility in Distributed ComputingComputing
With Special Emphasis on With Special Emphasis on Data MobilityData Mobility
Computing CultureComputing Culture
CultureCulture - The predominating - The predominating attitudes and behavior that attitudes and behavior that characterize the characterize the functioningfunctioning of a of a group or organization.group or organization.11
Computing Culture MUST align Computing Culture MUST align with social culture to be effectivewith social culture to be effective
Culture and MobilityCulture and Mobility
““People want to be together; but at People want to be together; but at the same time they want the the same time they want the opportunity for some small opportunity for some small amount of privacy, without giving amount of privacy, without giving up community”up community”22
What is Mobility?What is Mobility?
1.1. Access to shared resources through Access to shared resources through multiple “hard points”multiple “hard points”
2.2. Access to shared resources through Access to shared resources through dynamic “soft points”dynamic “soft points”
3.3. Ability to easily move in and out of a Ability to easily move in and out of a networknetwork
4.4. Access to computing resources Access to computing resources regardless of physical locationregardless of physical location
Mobility “through the ages” Mobility “through the ages” (1945-1990)(1945-1990)
ENIACENIACComputer Time Sharing SystemComputer Time Sharing SystemARPANETARPANETPC’sPC’sLaptopsLaptopsEthernetEthernet
Contemporary MobilityContemporary Mobility(1990 – Present)(1990 – Present)
DataData– Example: FilesExample: Files
ComputingComputing– Example: Specialized ProcessingExample: Specialized Processing
CodeCode– Example: Downloadable GUIExample: Downloadable GUI
Presentation EmphasisPresentation Emphasis
Mobility Mobility of of DataDataTwo ExamplesTwo Examples– Coda Coda File SystemFile System– BayouBayou Anti-Entropy Protocol Anti-Entropy Protocol
Challenges of Data MobilityChallenges of Data Mobility
Designing the following characteristics of Designing the following characteristics of data mobility is not trivial:data mobility is not trivial:– Outside AvailabilityOutside Availability– Outside SemanticsOutside Semantics– ConsistencyConsistency– ConcurrencyConcurrency
Even different systems may have different Even different systems may have different mobility goals (For example….)mobility goals (For example….)
Goal ComparisonGoal Comparison
Transparency (looks Transparency (looks like UNIX)like UNIX)ScalabilityScalability– Push Functionality to Push Functionality to
ClientsClients– Avoid System-wide Avoid System-wide
Rapid ChangeRapid Change
Balance Availability Balance Availability and Consistencyand Consistency
Support for devices Support for devices w/ limited resourcesw/ limited resourcesHigh AvailabilityHigh AvailabilityApplication-specific Application-specific resolution of conflictsresolution of conflictsApplication Application awareness of awareness of underlying system underlying system (NOT transparent)(NOT transparent)
Coda Bayou
General ComparisonGeneral Comparison
Coda supports Coda supports disconnected disconnected operations on operations on “cached” versions of “cached” versions of shared filesshared filesUpon reconnection, Upon reconnection, clients and servers clients and servers “synch” their file “synch” their file variants.variants.
The Bayou AEP The Bayou AEP allows updates to allows updates to propagate between propagate between participants sharing participants sharing replicasreplicasWrite operations are Write operations are stored and stored and propagated pair-wise propagated pair-wise (even possibly (even possibly between clients*)between clients*)
Coda Bayou
Critical Common ConcernCritical Common Concern
Optimistic Optimistic vrs vrs PessimisticPessimistic Replication Replication– Pessimistic avoids conflicts by restrictionPessimistic avoids conflicts by restriction– Optimistic detects and resolves conflicts if, Optimistic detects and resolves conflicts if,
and when, necessaryand when, necessary
It should be noted that It should be noted that data mobility all data mobility all but requires optimistic replicationbut requires optimistic replication
Coda Disconnected OperationCoda Disconnected Operation(simplified view)(simplified view)
* User explicitly specifies files he/she wants available offline
* Coda makes a best-effort attempt to keep those files in cache
* On disconnect, user can access files in cache normally
* On reconnect, client and server update one another and resolve any conflicts (write-write only)
And Now, For Something And Now, For Something Completely Different…Completely Different…
The The Bayou Anti-Entropy ProtocolBayou Anti-Entropy Protocol attempts attempts to solve a more complex problemto solve a more complex problemNot accidentally, the Bayou AEP is also Not accidentally, the Bayou AEP is also more complex than Codamore complex than CodaIt doesn’t help that the paper “Flexible It doesn’t help that the paper “Flexible Update Propagation for Weakly Consistent Update Propagation for Weakly Consistent Replication” is hard to understandReplication” is hard to understand
Helpful Bayou Papers Helpful Bayou Papers http://www2.parc.com/csl/projects/bayou/http://www2.parc.com/csl/projects/bayou/
The Bayou Architecture: Support for Data The Bayou Architecture: Support for Data Sharing among Mobile UsersSharing among Mobile UsersManaging Update Conflicts in Bayou, a Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage Weakly Connected Replicated Storage SystemSystemDealing with Tentative Data Values in Dealing with Tentative Data Values in Disconnected Work GroupsDisconnected Work Groups
Let’s Start at the Very BeginningLet’s Start at the Very Beginning
Bayou is designed to run in a mobile Bayou is designed to run in a mobile computing environment computing environment with less than with less than ideal network connectivityideal network connectivity
Bayou assumes that mobile users want to Bayou assumes that mobile users want to share their data share their data despite intermittent despite intermittent network connectivitynetwork connectivity
Supporting Devices with Limited Supporting Devices with Limited ResourcesResources
ServersServers storestore data (replicas) in data (replicas) in databasedatabaseClientsClients read/write read/write datadata
PDA are generally PDA are generally only clientsonly clients
Laptops oftenLaptops oftenoperate in both rolesoperate in both roles
Achieving High Availability with Achieving High Availability with Significant ConcurrencySignificant Concurrency
Any user can Any user can read fromread from or or write towrite to anyany copy of the “database”copy of the “database”Because Bayou assumes that partitions Because Bayou assumes that partitions can and do happen, can and do happen, it offers no it offers no guarantee of timeliness of write guarantee of timeliness of write propagationpropagationThis means that replicated databases are This means that replicated databases are only only weakly consistentweakly consistent
What is a “write”?What is a “write”?
WriteWrite
MergeMergeProc.Proc.UpdatesUpdates DependencyDependency
CheckCheck
<timestamp, s_id><timestamp, s_id>
What is the Database?What is the Database?
DD00 = Null = Null
DD11 = W = W11(D(D00))
DD2 2 = W= W22(D(D11))
::DDnn = W = Wnn(D(Dn-1n-1))
Where DWhere Dii represents the data after represents the data after
Applying write WApplying write W00 – W – Wii in order in order
Getting the Right Write PropagationGetting the Right Write Propagation
<95, 2><95, 2> <92, 1><92, 1>
<100,2><100,2>
<92, 1><92, 1>
<96, 3><96, 3><95, 2><95, 2>
<96, 3><96, 3>
<100,2><100,2>
<100,2><100,2>
<96, 3><96, 3>
A Few Notes…A Few Notes…
The only requirement for timestamps is The only requirement for timestamps is that they be monotonically increasing at that they be monotonically increasing at each servereach serverIf timestamps are based on rt-clocks, If timestamps are based on rt-clocks, keeping server’s clocks close is bestkeeping server’s clocks close is bestBayou servers maintain a logical clocks to Bayou servers maintain a logical clocks to timestamp new writes (initially synched timestamp new writes (initially synched with rt-clock, then updated during AEP)with rt-clock, then updated during AEP)
Stabilizing AEPStabilizing AEP
A write is A write is stablestable when it’s order will never when it’s order will never changechangeBayou uses “primary commit protocol”Bayou uses “primary commit protocol”““Primary” server commits a writePrimary” server commits a writeTentative writes always come after Tentative writes always come after committed writescommitted writesNOTE:NOTE: This is somewhat arbitrary This is somewhat arbitrary
Bayou’s Propagation of Committed Bayou’s Propagation of Committed WritesWrites
Since committed writes are totally ordered Since committed writes are totally ordered by their CSNs, the highest CSN by their CSNs, the highest CSN represents the committed portion of the represents the committed portion of the write-logwrite-logIn an update, committed writes are In an update, committed writes are transmitted (or a commitment notice sent) transmitted (or a commitment notice sent) before uncommitted writesbefore uncommitted writes
Stabilizing ImagesStabilizing ImagesPrimaryPrimary
SecondarySecondary
SecondarySecondary
SecondarySecondary
More Bayou “Light Reading”More Bayou “Light Reading”
Session GuaranteesSession GuaranteesTransportable Media ModificationsTransportable Media ModificationsWrite Log TruncationWrite Log TruncationServer creation/retirementServer creation/retirement
But…But…
Throughout our discussion of Bayou, Throughout our discussion of Bayou, we’ve covered conflict resolution only we’ve covered conflict resolution only lightlylightlyHow does Bayou conflict resolution work?How does Bayou conflict resolution work?How does it compare to Coda conflict How does it compare to Coda conflict resolution?resolution?
Conflict ResolutionConflict Resolution
In Coda, conflicts are In Coda, conflicts are assumed to be small. assumed to be small. When they occur, the When they occur, the user is expected to user is expected to resolve the conflict resolve the conflict (once).(once).
In Bayou, each write is In Bayou, each write is assumed to have its assumed to have its own conflict resolution own conflict resolution suite (the dependency suite (the dependency check and merge check and merge procedure)procedure)
Now Wait a Minute…Now Wait a Minute…
““one crucial assumption is that reordering of one crucial assumption is that reordering of concurrent updates, either conflicting or non-concurrent updates, either conflicting or non-conflicting, will result in the same updates to the conflicting, will result in the same updates to the database. This mandates ‘perfect’ conflict-database. This mandates ‘perfect’ conflict-resolving methods, which seems hard to find for resolving methods, which seems hard to find for a lot of applications.”a lot of applications.”33
Unanswered QuestionsUnanswered Questions
Do these solutions solve the “real” Do these solutions solve the “real” problem? Or, are they solutions looking for problem? Or, are they solutions looking for a problem? Would a problem? Would YOUYOU use either one? use either one?Do they solve problems best left to Do they solve problems best left to applications? (The end-to-end question)applications? (The end-to-end question)
Beyond Data MobilityBeyond Data Mobility
““Agile Application-Aware Adaptation for Agile Application-Aware Adaptation for Mobility”, Satyanarayanan, et alMobility”, Satyanarayanan, et al““Rover: A Toolkit for Mobile Information Rover: A Toolkit for Mobile Information Access”, Joseph, et alAccess”, Joseph, et al
ReferencesReferences
1.1. http://www.dictionary.comhttp://www.dictionary.com2.2. C. Alexander, “A Pattern Language”, C. Alexander, “A Pattern Language”,
Oxford University Press, New York, NY, Oxford University Press, New York, NY, 1977, page 8311977, page 831
3.3. http://www.cs.berkeley.edu/~zf/cs262b/bhttp://www.cs.berkeley.edu/~zf/cs262b/bayou.htmayou.htm