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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Adve, S., Gharachorloo, K.: Shared memory consistency models: a tutorial. IEEE Comp. Mag. 29(12), 66–76 (1996)
Ahamad, M., Niger, G., Burns, J.E., Hutto, P.W., Kohl, P.: Causal memory: definitions, implementation and programming. Dist. Comput. 9, 37–49 (1995)
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)
Alvaro, P., Bailis, P., Conway, N., Hellerstein, J.M.: Consistency without borders. In: 4th ACM Symposium on Cloud Computing (SOCC 2013), p. 23 (2013)
Attiya, H., Friedman, R.: A correctness condition for high-performance multiprocessors. SIAM J. Comput. 27(6), 1637–1670 (1998)
Attiya, H., Friedman, R.: Limitations of fast consistency conditions for distributed shared memories. Inf. Process. Lett. 57(5), 243–248 (1996)
Attiya, H., Welch, J.L.: Sequential consistency versus linearizability. ACM Trans. Comp. Sys. 12(2), 91–122 (1994)
Attiya, H., Welch, J.L.: Distributed computing: fundamentals, simulations and advanced topics, 2nd edn., 414 pages. Wiley-Interscience (2004). ISBN 0-471-45324-2
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)
Birman, K.P., Friedman, R.: Trading Consistency for Availability in Distributed Systems. Technical report #TR96-1579, Computer Science Department, Cornell University, April 2016
Birman, K.P., Joseph, T.A.: Reliable communication in presence of failures. ACM Trans. Comp. Sys. 5(1), 47–76 (1987)
Birman, K., Schiper, A., Stephenson, P.: Lightweight causal and atomic group multicast. ACM Trans. Comput. Syst. 9, 272–314 (1991)
Brewer, E.: Towards robust towards robust distributed systems. In: 19th ACM Symposium on Principles of Distributed Computing (PODC), Invited talk (2000)
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)
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)
Friedman, R.: Implementing hybrid consistency with high-level synchronization operations. Distrib. Comput. 9(3), 119–129 (1995)
Garg, V.K., Raynal, M.: Normality: a consistency condition for concurrent objects. Parallel Process. Lett. 9(1), 123–134 (1999)
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)
Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming, 508 pages. Morgan Kaufmann Publishers Inc. (2008). ISBN 978-0-12-370591-4
Herlihy, M., Wing, J.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)
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)
Lakshman, A., Malik, P.: Cassandra: a decentralized structured storage system. SIGOPS Oper. Syst. Rev. 44, 35–40 (2010)
Lamport, L.: Time, Clocks and the ordering of events in a distributed system. Comm. ACM 21, 558–565 (1978)
Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comp. C28(9), 690–691 (1979)
PRAM: A Scalable Shared Memory. Technical Report CS-TR-180-88, Princeton University, September 1988
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)
Lynch, N.A.: Distributed Algorithms, 872 pages. Morgan Kaufman, San Francisco (1996)
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)
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)
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)
Raynal, M.: Concurrent Programming: Algorithms, Principles, and Foundations, 515 pages. Springer, Heidelberg (2013). ISBN 978-3-642-32026-2
Raynal, M.: Distributed Algorirhms for Message-Passing Systems, 500 pages. Springer (2013). ISBN 978-3-642-38122-5
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)
Raynal, M., Schiper, A., Toueg, S.: The causal ordering abstraction and a simple way to implement. Inf. Process. Lett. 39(6), 343–350 (1991)
Saito, Y., Shapiro, M.: Optimistic replication. ACM Comput. Surv. 37(1), 42–81 (2005)
Shapiro, M., Preguiça, N.M., Baquero, C., Zawirski, M.: Convergent and commutative replicated data types. Bull. EATCS 104, 67–88 (2011)
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)
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)
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)
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)
Acknowledgments
This work was partially funded by the French ANR project SocioPlug (ANR-13-INFR-0003), and by the DeSceNt project (Labex CominLabs excellence laboratory ANR-10-LABX-07-01).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Friedman, R., Raynal, M., Taïani, F. (2015). Fisheye Consistency: Keeping Data in Synch in a Georeplicated World. In: Bouajjani, A., Fauconnier, H. (eds) Networked Systems . NETYS 2015. Lecture Notes in Computer Science(), vol 9466. Springer, Cham. https://doi.org/10.1007/978-3-319-26850-7_17
Download citation
DOI: https://doi.org/10.1007/978-3-319-26850-7_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-26849-1
Online ISBN: 978-3-319-26850-7
eBook Packages: Computer ScienceComputer Science (R0)