Advertisement

Global-Local View: Scalable Consistency for Concurrent Data Types

  • Deepthi Akkoorath
  • José Brandão
  • Annette Bieniusa
  • Carlos Baquero
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11014)

Abstract

Concurrent linearizable access to shared objects can be prohibitively expensive in a high contention workload. Many applications apply ad-hoc techniques to eliminate the need for synchronous atomic updates, which may result in non-linearizable implementations. We propose a new model which leverages such patterns for concurrent access to objects in a shared memory system. In this model, each thread maintains different views on the shared object: a thread-local view and a global view. As the thread-local view is not shared, it can be updated without incurring synchronization costs. These local updates become visible to other threads only after the thread-local view is merged with the global view. This enables better performance at the expense of linearizability. We discuss the design of several datatypes and evaluate their performance and scalability compared to linearizable implementations.

Notes

Data Availability Statement and Acknowledgements

The work presented was partially supported by EU H2020 LightKone project (732505), and SMILES Research Line within project “TEC4Growth - Pervasive Intelligence, Enhancers and Proofs of Concept with Industrial Impact /NORTE-01- 0145-FEDER-000020” financed by the North Portugal Regional Operational Programme (NORTE 2020), under the PORTUGAL 2020 Partnership Agreement, and through the European Regional Development Fund (ERDF).

The datasets and code generated during and/or analysed during the current study [5] are available in the figshare repository: https://doi.org/10.6084/m9.figshare.6383807

References

  1. 1.
  2. 2.
    Riak KV: a distributed key-value database. http://basho.com/products/riak-kv/
  3. 3.
    Afek, Y., Korland, G., Yanovsky, E.: Quasi-linearizability: relaxed consistency for improved concurrency. In: Lu, C., Masuzawa, T., Mosbah, M. (eds.) OPODIS 2010. LNCS, vol. 6490, pp. 395–410. Springer, Heidelberg (2010).  https://doi.org/10.1007/978-3-642-17653-1_29. http://dl.acm.org/citation.cfm?id=1940234.1940273CrossRefGoogle Scholar
  4. 4.
    Aiyer, A., Alvisi, L., Bazzi, R.A.: On the availability of non-strict quorum systems. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 48–62. Springer, Heidelberg (2005).  https://doi.org/10.1007/11561927_6CrossRefGoogle Scholar
  5. 5.
    Akkoorath, D., Brando, J., Bieniusa, A., Baquero, C.: Code to run experiments for euro-par 2018 paper: Global-local view: Scalable consistency for concurrent data types (2018). https://doi.org/10.6084/m9.figshare.6383807
  6. 6.
    Akkoorath, D.D., Bieniusa, A.: Transactions on mergeable objects. In: Feng, X., Park, S. (eds.) APLAS 2015. LNCS, vol. 9458, pp. 427–444. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-26529-2_23CrossRefGoogle Scholar
  7. 7.
    Akkoorath, D.D., Bieniusa, A.: Highly-scalable concurrent objects. In: Proceedings of the 2nd Workshop on the Principles and Practice of Consistency for Distributed Data. PaPoC 2016, pp. 13:1–13:4. ACM, New York (2016).  https://doi.org/10.1145/2911151.2911158
  8. 8.
    Boyd-Wickizer, S., et al.: An analysis of linux scalability to many cores. In: Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation. OSDI 2010, pp. 1–16. USENIX Association, Berkeley (2010). http://dl.acm.org/citation.cfm?id=1924943.1924944
  9. 9.
    Burckhardt, S., Baldassin, A., Leijen, D.: Concurrent programming with revisions and isolation types. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications. OOPSLA 2010, pp. 691–707. ACM, New York (2010).  https://doi.org/10.1145/1869459.1869515
  10. 10.
    Burckhardt, S., Leijen, D., Protzenko, J., Fähndrich, M.: Global sequence protocol: a robust abstraction for replicated shared state. In: Boyland, J.T. (ed.) 29th European Conference on Object-Oriented Programming (ECOOP 2015). Leibniz International Proceedings in Informatics (LIPIcs), vol. 37, pp. 568–590. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany (2015).  https://doi.org/10.4230/LIPIcs.ECOOP.2015.568
  11. 11.
    Frigo, M., Leiserson, C.E., Randall, K.H.: The implementation of the Cilk-5 multithreaded language. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI 1998, pp. 212–223. ACM, New York (1998).  https://doi.org/10.1145/277650.277725
  12. 12.
    Haas, A., et al.: Local Linearizability for Concurrent Container-Type Data Structures. In: 27th International Conference on Concurrency Theory (CONCUR 2016). Leibniz International Proceedings in Informatics (LIPIcs), vol. 59, pp. 6:1–6:15 (2016).  https://doi.org/10.4230/LIPIcs.CONCUR.2016.6
  13. 13.
    Hart, T.E., McKenney, P.E., Brown, A.D.: Making lockless synchronization fast: performance implications of memory reclamation. In: Proceedings of the 20th International Conference on Parallel and Distributed Processing. IPDPS 2006, p. 21. IEEE Computer Society, Washington, D.C. (2006). http://dl.acm.org/citation.cfm?id=1898953.1898956
  14. 14.
    Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990).  https://doi.org/10.1145/78969.78972CrossRefGoogle Scholar
  15. 15.
    Kogan, A., Herlihy, M.: The future(s) of shared data structures. In: Proceedings of the 2014 ACM Symposium on Principles of Distributed Computing. PODC 2014, pp. 30–39. ACM, New York, (2014).  https://doi.org/10.1145/2611462.2611496
  16. 16.
    Matveev, A., Shavit, N., Felber, P., Marlier, P.: Read-log-update: a lightweight synchronization mechanism for concurrent programming. In: Proceedings of the 25th Symposium on Operating Systems Principles. SOSP 2015, pp. 168–183. ACM, New York (2015).  https://doi.org/10.1145/2815400.2815406
  17. 17.
    Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing. PODC 1996, pp. 267–275. ACM, New York (1996).  https://doi.org/10.1145/248052.248106
  18. 18.
    Narula, N., Cutler, C., Kohler, E., Morris, R.: Phase reconciliation for contended in-memory transactions. In: Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation. OSDI 2014, pp. 511–524. USENIX Association, Berkeley (2014). http://dl.acm.org/citation.cfm?id=2685048.2685088
  19. 19.
    Shapiro, M., Preguiça, N., Baquero, C., Zawirski, M.: Conflict-free replicated data types. In: Défago, X., Petit, F., Villain, V. (eds.) SSS 2011. LNCS, vol. 6976, pp. 386–400. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-24550-3_29. http://dl.acm.org/citation.cfm?id=2050613.2050642CrossRefzbMATHGoogle Scholar
  20. 20.
    Shavit, N.: Data structures in the multicore age. Commun. ACM 54(3), 76–84 (2011).  https://doi.org/10.1145/1897852.1897873CrossRefGoogle Scholar
  21. 21.
    Sstrik, M.: ZeroMQ. In: The Architecture of Open Source Applications, vol. 2 (2012)Google Scholar
  22. 22.
    Viotti, P., Vukolić, M.: Consistency in non-transactional distributed storage systems. ACM Comput. Surv. 49(1), 19:1–19:34 (2016).  https://doi.org/10.1145/2926965CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Deepthi Akkoorath
    • 1
  • José Brandão
    • 2
  • Annette Bieniusa
    • 1
  • Carlos Baquero
    • 2
  1. 1.Technical University of KaiserslauternKaiserslauternGermany
  2. 2.HASLab, Universidade do Minho and INESC TECBragaPortugal

Personalised recommendations