Agreeing to Agree: Conflict Resolution for Optimistically Replicated Data

  • Michael B. Greenwald
  • Sanjeev Khanna
  • Keshav Kunal
  • Benjamin C. Pierce
  • Alan Schmitt
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4167)


Current techniques for reconciling disconnected changes to optimistically replicated data often use version vectors or related mechanisms to track causal histories. This allows the system to tell whether the value at one replica dominates another or whether the two replicas are in conflict. However, current algorithms do not provide entirely satisfactory ways of repairing conflicts. The usual approach is to introduce fresh events into the causal history, even in situations where the causally independent values at the two replicas are actually equal. In some scenarios these events may later conflict with each other or with further updates, slowing or even preventing convergence of the whole system.

To address this issue, we enrich the set of possible actions at a replica to include a notion of explicit conflict resolution between existing events, where the user at a replica declares that one set of events dominates another, or that a set of events are equivalent. We precisely specify the behavior of this refined replication framework from a user’s point of view and show that, if communication is assumed to be “reciprocal” (with pairs of replicas exchanging information about their current states), then this specification can be implemented by an algorithm with the property that the information stored at any replica and the sizes of the messages sent between replicas are bounded by a polynomial function of the number of replicas in the system.


Sparse Representation Open Event Sparse Graph Maximal Class Closed Event 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Parker Jr., D.S., Popek, G.J., Rudisin, G., Stoughton, A., Walker, B.J., Walton, E., Chow, J.M., Edwards, D., Kiser, S., Kline, C.: Detection of mutual inconsistency in distributed systems. IEEE Trans. Software Eng (USA) SE-9(3), 240–247 (1983)CrossRefGoogle Scholar
  2. 2.
    Malkhi, D., Terry, D.: Concise version vectors in winFS. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 339–353. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Kang, B.B., Wilensky, R., Kubiatowicz, J.: The hash history approach for reconciling mutual inconsistency. In: 23rd IEEE International Conference on Distributed Computing Systems (ICDCS 2003) (2003)Google Scholar
  4. 4.
    Foster, J.N., Greenwald, M.B., Kirkegaard, C., Pierce, B.C., Schmitt, A.: Schema-directed data synchronization. Technical Report MS-CIS-05-02, University of Pennsylvania, Supersedes MS-CIS-03-42 (2005)Google Scholar
  5. 5.
    Pierce, B.C., et al.: Harmony: A synchronization framework for heterogeneous tree-structured data (2006),
  6. 6.
    Foster, J.N., Greenwald, M.B., Kirkegaard, C., Pierce, B.C., Schmitt, A.: Exploiting schemas in data synchronization. Journal of Computer and System Sciences (to appear, 2006); Extended abstract in Database Programming Languages (DBPL) (2006)Google Scholar
  7. 7.
    Demers, A., Greene, D., Hauser, C., Irish, W., Larson, J., Shenker, S., Sturgis, H., Swinehart, D., Terry, D.: Epidemic algorithms for replicated database maintenance. In: Proceedings of PODC 1987 (1987)Google Scholar
  8. 8.
    Fidge, C.: Logical time in distributed computing systems. Computer 24(8), 28–33 (1991)CrossRefGoogle Scholar
  9. 9.
    Mattern, F.: Virtual time and global states of distributed systems. In: Cosnard, M., et al. (eds.) Parallel and Distributed Algorithms: proceedings of the International Workshop on Parallel & Distributed Algorithms, pp. 215–226. Elsevier Science Publishers B.V, Amsterdam (1989)Google Scholar
  10. 10.
    Kumar, P.: Coping with conflicts in an optimistically replicated file system. In: 1990 Workshop on the Management of Replicated Data, Houston, TX, pp. 60–64 (1990)Google Scholar
  11. 11.
    Satyanarayanan, M., Kistler, J.J., Kumar, P., Okasaki, M.E., Siegel, E.H., Steere, D.C.: Coda: A highly available file system for a distributed workstation environment. IEEE Transactions on Computers 39(4), 447–459 (1990)CrossRefGoogle Scholar
  12. 12.
    Kumar, P., Satyanarayanan, M.: Flexible and safe resolution of file conflicts. In: Proceedings of the annual USENIX 1995 Winter Technical Conference, New Orleans, LA, pp. 95–106 (1995)Google Scholar
  13. 13.
    Guy, R.G., Reiher, P.L., Ratner, D., Gunter, M., Ma, W., Popek, G.J.: Rumor: Mobile data access through optimistic peer-to-peer replication. In: Proceedings of the ER Workshop on Mobile Data Access, pp. 254–265 (1998)Google Scholar
  14. 14.
    Ekenstam, T., Matheny, C., Reiher, P.L., Popek, G.J.: The Bengal database replication system. Distributed and Parallel Databases 9(3), 187–210 (2001)MATHCrossRefGoogle Scholar
  15. 15.
    Baldoni, R., Raynal, M.: A practical tour of vector clock systems. IEEE Distributed Systems Online 3(2) (2002),
  16. 16.
    Pierce, B.C., Vouillon, J.: What’s in Unison? A formal specification and reference implementation of a file synchronizer. Technical Report MS-CIS-03-36, Dept. of Computer and Information Science, University of Pennsylvania (2004)Google Scholar
  17. 17.
    Almeida, P.S., Baquero, C., Fonte, V.: Panasync: dependency tracking among file copies. In: EW 9: Proceedings of the 9th workshop on ACM SIGOPS European workshop, pp. 7–12. ACM Press, New York (2000)Google Scholar
  18. 18.
    Sarin, S.K., Lynch, N.A.: Discarding obsolete information in a replicated database system. IEEE Transactions on Software Engineering 13(1), 39–47 (1987)CrossRefGoogle Scholar
  19. 19.
    Wuu, G.T.J., Bernstein, A.J.: Efficient solutions to the replicated log and dictionary problems. In: Principles of Distributed Computing, pp. 233–242 (1984)Google Scholar
  20. 20.
    Howard, J.H.: Reconcile user’s guide. Technical Report TR99-14, Mitsubishi Electronics Research Lab. (1999)Google Scholar
  21. 21.
    Richard, B., Nioclais, D.M., Chalon, D.: Clique: A transparent, peer-to-peer replicated file system. In: Chen, M.-S., Chrysanthis, P.K., Sloman, M., Zaslavsky, A. (eds.) MDM 2003. LNCS, vol. 2574, pp. 351–355. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  22. 22.
    Saito, Y., Shapiro, M.: Replication: Optimistic approaches. Technical Report HPL-2002-33, HP Laboratories Palo Alto (2002)Google Scholar
  23. 23.
    Terry, D.B., Theimer, M.M., Petersen, K., Demers, A.J., Spreitzer, M.J., Hauser, C.H.: Managing update conflicts in Bayou, a weakly connected replicated storage system. In: Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP-15), Copper Mountain Resort, Colorado, pp. 172–183 (1995)Google Scholar
  24. 24.
    Kermarrec, A.M., Rowstron, A., Shapiro, M., Druschel, P.: The IceCube approach to the reconciliation of diverging replicas. In: ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC), Newport, Rhode Island, pp. 210–218 (2001)Google Scholar
  25. 25.
    Ceri, S., Houtsma, M.A.W., Keller, A.M., Samarati, P.: Independent updates and incremental agreement in replicated databases. Distributed and Parallel Databases 3(3), 225–246 (1995)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Michael B. Greenwald
    • 1
  • Sanjeev Khanna
    • 2
  • Keshav Kunal
    • 2
  • Benjamin C. Pierce
    • 2
  • Alan Schmitt
    • 3
  1. 1.Bell Labs, Lucent Technologies 
  2. 2.University of Pennsylvania 
  3. 3.INRIA 

Personalised recommendations