Fisheye Consistency: Keeping Data in Synch in a Georeplicated World

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9466)

Abstract

Over the last thirty years, numerous consistency conditions for replicated data have been proposed and implemented. Popular examples include linearizability (or atomicity), sequential consistency, causal consistency, and eventual consistency. These conditions are usually defined independently from the computing entities (nodes) that manipulate the replicated data; i.e., they do not take into account how computing entities might be linked to one another, or geographically distributed. To address this lack, as a first contribution, this paper introduces the notion of proximity graph between computing nodes. If two nodes are connected in this graph, their operations must satisfy a strong consistency condition, while the operations invoked by other nodes are allowed to satisfy a weaker condition. The second contribution exploits this graph to provide a generic approach to the hybridization of data consistency conditions within the same system. We illustrate this approach on sequential consistency and causal consistency, and present a model in which all data operations are causally consistent, while operations by neighboring processes in the proximity graph are sequentially consistent. The third contribution of the paper is the design and the proof of a distributed algorithm based on this proximity graph, which combines sequential consistency and causal consistency (the resulting condition is called fisheye consistency). In doing so the paper provides a generic provably correct solution of direct relevance to modern georeplicated systems.

Keywords

Asynchronous message-passing systems Broadcast Causal consistency Data replication Georeplication Linearizability  Sequential consistency 

References

  1. 1.
    Adve, S., Gharachorloo, K.: Shared memory consistency models: a tutorial. IEEE Comp. Mag. 29(12), 66–76 (1996)CrossRefGoogle Scholar
  2. 2.
    Ahamad, M., Niger, G., Burns, J.E., Hutto, P.W., Kohl, P.: Causal memory: definitions, implementation and programming. Dist. Comput. 9, 37–49 (1995)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Almeida, S., Leitaõ, J., Rodrigues, L.: ChainReaction: a causal+ consistent datastore based on chain replication. In: 8th ACM European Conference on Computer Systems (EuroSys 2013), pp. 85–98 (2013)Google Scholar
  4. 4.
    Alvaro, P., Bailis, P., Conway, N., Hellerstein, J.M.: Consistency without borders. In: 4th ACM Symposium on Cloud Computing (SOCC 2013), p. 23 (2013)Google Scholar
  5. 5.
    Attiya, H., Friedman, R.: A correctness condition for high-performance multiprocessors. SIAM J. Comput. 27(6), 1637–1670 (1998)MathSciNetCrossRefMATHGoogle Scholar
  6. 6.
    Attiya, H., Friedman, R.: Limitations of fast consistency conditions for distributed shared memories. Inf. Process. Lett. 57(5), 243–248 (1996)CrossRefMATHGoogle Scholar
  7. 7.
    Attiya, H., Welch, J.L.: Sequential consistency versus linearizability. ACM Trans. Comp. Sys. 12(2), 91–122 (1994)CrossRefGoogle Scholar
  8. 8.
    Attiya, H., Welch, J.L.: Distributed computing: fundamentals, simulations and advanced topics, 2nd edn., 414 pages. Wiley-Interscience (2004). ISBN 0-471-45324-2Google Scholar
  9. 9.
    Bailis, P., Ghodsi, A., Hellerstein, J.M., Stoica, I.: Bolt-on causal consistency. In: 2013 ACM SIGMOD International Conference on Management of Data (SIGMOD 2013), pp. 761–772 (2013)Google Scholar
  10. 10.
    Birman, K.P., Friedman, R.: Trading Consistency for Availability in Distributed Systems. Technical report #TR96-1579, Computer Science Department, Cornell University, April 2016Google Scholar
  11. 11.
    Birman, K.P., Joseph, T.A.: Reliable communication in presence of failures. ACM Trans. Comp. Sys. 5(1), 47–76 (1987)CrossRefGoogle Scholar
  12. 12.
    Birman, K., Schiper, A., Stephenson, P.: Lightweight causal and atomic group multicast. ACM Trans. Comput. Syst. 9, 272–314 (1991)CrossRefGoogle Scholar
  13. 13.
    Brewer, E.: Towards robust towards robust distributed systems. In: 19th ACM Symposium on Principles of Distributed Computing (PODC), Invited talk (2000)Google Scholar
  14. 14.
    Burckhardt, S., Gotsman, A., Yang, H., Zawirski, M.: Replicated data types: specification, verification, optimality. In: 41st ACM Symposium on Principles of Programming Languages (POPL), pp. 271–284 (2014)Google Scholar
  15. 15.
    DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., Vogels, W.: Dynamo: amazon’s highly available key-value store. In: 21st ACM Symposium on Operating Systems Principles (SOSP 2007), pp. 205–220 (2007)Google Scholar
  16. 16.
    Friedman, R.: Implementing hybrid consistency with high-level synchronization operations. Distrib. Comput. 9(3), 119–129 (1995)CrossRefGoogle Scholar
  17. 17.
    Garg, V.K., Raynal, M.: Normality: a consistency condition for concurrent objects. Parallel Process. Lett. 9(1), 123–134 (1999)CrossRefGoogle Scholar
  18. 18.
    Gharachorloo, K., Lenoski, D., Laudon, J., Gibbons, P., Gupta, A., Hennessy, J.: Memory consistency and event ordering in scalable shared-memory multiprocessors. In: 17th ACM Annual International Symposium on Computer Architecture (ISCA), pp. 15–26 (1990)Google Scholar
  19. 19.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming, 508 pages. Morgan Kaufmann Publishers Inc. (2008). ISBN 978-0-12-370591-4Google Scholar
  20. 20.
    Herlihy, M., Wing, J.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)CrossRefGoogle Scholar
  21. 21.
    Keleher, P., Cox, A.L., Zwaenepoel, W.: Lazy release consistency for software distributed shared memory. In: Proceedings of the 19th ACM International Symposium on Computer Architecture (ISCA 1992), pp. 13–21 (1992)Google Scholar
  22. 22.
    Lakshman, A., Malik, P.: Cassandra: a decentralized structured storage system. SIGOPS Oper. Syst. Rev. 44, 35–40 (2010)CrossRefGoogle Scholar
  23. 23.
    Lamport, L.: Time, Clocks and the ordering of events in a distributed system. Comm. ACM 21, 558–565 (1978)CrossRefMATHGoogle Scholar
  24. 24.
    Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comp. C28(9), 690–691 (1979)CrossRefMATHGoogle Scholar
  25. 25.
    PRAM: A Scalable Shared Memory. Technical Report CS-TR-180-88, Princeton University, September 1988Google Scholar
  26. 26.
    Lloyd, W., Freedman, M.J., Kaminsky, M., Andersen, D.G.: Don’t settle for eventual: scalable causal consistency for wide-area storage with COPS. In: 23rd ACM Symposium on Operating Systems Principles, pp. 401–416 (2011)Google Scholar
  27. 27.
    Lynch, N.A.: Distributed Algorithms, 872 pages. Morgan Kaufman, San Francisco (1996)Google Scholar
  28. 28.
    Mizuno, M., Raynal, M., Zhou, J.Z.: Sequential consistency in distributed systems. In: Birman, K.P., Mattern, F., Schiper, A. (eds.) Theory and Practice in Distributed Systems. LNCS, vol. 938, pp. 224–241. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  29. 29.
    Oster, G., Urso, P., Molli, P., Imine, A.: Data consistency for P2P collaborative editing. In: 20th Anniversary Conference on Computer Supported Cooperative Work, pp. 259–268. ACM (2006)Google Scholar
  30. 30.
    Preguiça, N.M., Marquès, J.M., Shapiro, M., Letia, M.: A commutative replicated data type for cooperative editing. In: Proceedings of the 29th IEEE International Conference on Distributed Computing Systems (ICDCS 2009), pp. 395–403 (2009)Google Scholar
  31. 31.
    Raynal, M.: Concurrent Programming: Algorithms, Principles, and Foundations, 515 pages. Springer, Heidelberg (2013). ISBN 978-3-642-32026-2Google Scholar
  32. 32.
    Raynal, M.: Distributed Algorirhms for Message-Passing Systems, 500 pages. Springer (2013). ISBN 978-3-642-38122-5Google Scholar
  33. 33.
    Raynal, M., Schiper, A.: A suite of formal definitions for consistency criteria in distributed shared memories. In: 9th International IEEE Conference on Parallel and Distributed Computing Systems (PDCS 1996), pp. 125–131 (1996)Google Scholar
  34. 34.
    Raynal, M., Schiper, A., Toueg, S.: The causal ordering abstraction and a simple way to implement. Inf. Process. Lett. 39(6), 343–350 (1991)MathSciNetCrossRefMATHGoogle Scholar
  35. 35.
    Saito, Y., Shapiro, M.: Optimistic replication. ACM Comput. Surv. 37(1), 42–81 (2005)CrossRefMATHGoogle Scholar
  36. 36.
    Shapiro, M., Preguiça, N.M., Baquero, C., Zawirski, M.: Convergent and commutative replicated data types. Bull. EATCS 104, 67–88 (2011)MathSciNetMATHGoogle Scholar
  37. 37.
    Sovran, Y., Power, R., Aguilera, M.K., Li, J.: Transactional storage for geo-replicated systems. In: 23rd ACM Symposium on Operating Systems Principles (SOSP), pp. 385–400 (2011)Google Scholar
  38. 38.
    Terry D.B., Prabhakaran, V., Kotla, R., Balakrishnan, M., Aguilera, M.K., Abu-Libdeh, H.: Consistency-based service level agreements for cloud storage. In: 24th ACM Symposium on Operating Systems Principles (SOSP 2013), pp. 309–324 (2013)Google Scholar
  39. 39.
    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: 15th ACM Symposium on Operating Systems Principles (SOSP 1995), pp. 172–182 (1995)Google Scholar
  40. 40.
    Xie, C., Su, C., Kapritsos, M., Wang, Y., Yaghmazadeh, N., Alvisi, L., Mahajan, P.: SALT: combining ACID and BASE in a distributed database. In: USENIX Operating Systems Design & Implementation (OSDI) (2014)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Roy Friedman
    • 1
  • Michel Raynal
    • 2
    • 3
  • Francois Taïani
    • 3
  1. 1.The Technion HaifaHaifaIsrael
  2. 2.Institut Universitaire de FranceParisFrance
  3. 3.IRISAUniversité de Rennes 1Rennes CedexFrance

Personalised recommendations