Unformatted text preview:

THE EVOLUTION OF CODAPaper overviewMOTIVATION FOR CODASERVER REPLICATION (I)SERVER REPLICATION (II)Read protocolUpdate protocolConsistency modelFault-toleranceDISCONNECTED OPERATION (I)DISCONNECTED OPERATION (II)DISCONNECTED OPERATION (III)Implementation (I)Implementation (II)Implementation (III)Implementation (IV)CONFLICT RESOLUTIONObjectivesApproaches to conflict resolutionCoda solutionDirectory conflict resolutionAfter disconnected operationAcross divergent replicasOther solutionsApplication-Specific File ResolutionConflict representationFrequency of conflictsWEAKLY CONNECTED OPERATIONSTHE EVOLUTION OF CODAM. Satyanarayanan Carnegie-Mellon UniversityPaper overview•Reviews the multiple contributions of Coda:–Optimistic replication–Trickle reintegration to support weakly connected workstations–Isolation-only transactions–Operation shipping•Ends with a few lessons learnedMOTIVATION FOR CODA•AFS was found to be vulnerable toserver and network failures–Not that different from NFS–Limits scalability of AFS•Coda addresses these problems through optimistic replicationSERVER REPLICATION (I) •Optimistic replication control protocols allow access in disconnected mode–Tolerate temporary inconsistencies–Promise to detect them later–Provide much higher data availability•Optimistic replication control requires a reliable tool for detecting inconsistencies among replicas–Better than LOCUS toolSERVER REPLICATION (II)•Unit of replication is volume (subtree of files)•Set of servers containing replicas of a volume isvolume storage group (VSG)•Currently accessible subset of VSG isaccessible volume storage group (AVSG)–Tracked by cache manager of client (Venus):Read protocol•Read-one-data, read-all-status, write-all•Each client –Has a preferred server (VS)–Still checks with other servers to find which one has the latest version of a file•Reads are aborted if a conflict is detected•Otherwise a callback is established with all servers in AVSGUpdate protocol•When a file is closed after modification, updated file is transferred in parallel to all members of the AVSG•Directory updates are also written through to all members of AVSG•Coda checks for replica divergence before and after each update•Update protocol is non-blockingConsistency model•Client keeps track of subset s of servers it was able to connect the last time it tried•Updates s at least every tau seconds •At open time, client checks it has the most recent copy of file among all servers in s–Guarantee weakened by use of callbacks–Cached copy can be up to tau minutes behind the server copyFault-tolerance•Correctness of update protocol requires atomicity and permanence of metadata updates•Used first Camelot transaction management system:–Too slow and Mach-specific•Coda uses instead its own recoverable virtual memory (RVM)–Implemented as a libraryDISCONNECTED OPERATION (I)•Started as tool allowing a client isolated by a network failure to continue to operate•Made possible thanks to–Optimistic philosophy–File hoarding in client cache•Gained importance with arrival of portable computers–Resulted in voluntary disconnectionsDISCONNECTED OPERATION (II)•File Hoarding:–Coda allows user to specify which files should always remain cached on her workstation and to assign priorities to these files•When workstation gets reconnected, Coda initiates a reintegration process–Changes are propagated and inconsistencies detectedDISCONNECTED OPERATION (III)•Disconnected operation mode complements but does not replace server replication–Cached replicas are only available when client workstation is turned on– Make server replicas primary replicas and cached replicas secondary replicasImplementation (I)•Three states:1. Hoarding:Normal operation mode2. Emulating:Disconnected operation mode3. Reintegrating:Propagates changes and detects inconsistenciesImplementation (II)HoardingEmulating RecoveringImplementation (III)•Coda maintains a per-client hoard database (HDB) specifying files to be cached on client workstation–Client can modify HDB and even set up hoard profilesImplementation (IV)• In disconnected mode:–Attempts to access files that are not in the client caches appear as failures to application–All changes are written in a persistent log,the client modification log (CML)–Venus removes from log all obsolete entries like those pertaining to files that have been deletedCONFLICT RESOLUTION•Coda provides automatic resolution of simple directory update conflicts •Other conflicts are to be resolved manually by the userObjectives•No updates should ever be lost without explicit user approval: conflicts must be detected•The common case of no conflict should be fast•Conflicts are ultimately an application-specific concept: think of updates to a schedule•The buck stops with the user: automatic conflict resolution cannot solve all problemsApproaches to conflict resolution•Syntactic approach:–Uses version information–Fast and efficient–Weak in their ability to resolve conflict•Semantic approach:–Slower but more powerfulCoda solution•Coda uses–Syntactic approach to detect absence of conflicts–Semantic approach to resolve possible conflictsDirectory conflict resolution•Always automatic•Uses a log-based •Two cases to consider–After disconnected operation–Across conflicting replicasAfter disconnected operation•Each server tries to apply the client modification log (CML) send by the client during reintegration•If this attempt fails, client directory is marked in conflict.Across divergent replicas•Each server replicas of a volume has a resolution log containing entire list of directory operations–In reality, it is frequently truncated–Remains almost empty when there are no failures•Recovery protocol locks the replicas merges the logs and distributes the merged logs.Other solutions•Must keep track of partial deletes:–If one of the two replicas has a directory A, does it correspond to a file 1. recently created, or2. recently deleted.•Must keep ghost entries for directory entries that were recently removed–Hard to know when these entries can be purgedApplication-SpecificFile Resolution•Entirely done at clientConflict representation•Coda displays read-only versions of inconsistent objectsFrequency of conflicts•Probability of two different users modifying the same object less than a day apart is


View Full Document

UH COSC 6360 - Coda Evolution

Documents in this Course
Load more
Download Coda Evolution
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Coda Evolution and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Coda Evolution 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?