Skip to main content

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1018))

Abstract

This paper presents the evaluation of key-value stores and corresponding algorithms with regard to the implementation of distributed locking mechanisms. Research focuses on the comparison between four types of key-value stores, etcd, Consul, Zookeeper, and Redis. For each selected store, the underlying implementation of locking mechanisms was described and evaluated with regard to satisfying safety, deadlock-free, and fault tolerance properties. For the purposes of performance testing, a small application supporting all of the key-value stores was developed. The application uses all of the selected solutions to perform computation while ensuring that a particular resource is locked during that operation. The aim of the conducted experiments was to evaluate selected solutions based on performance and properties that they hold, in the context of using them as a base for building a distributed locking system.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Zookeeper uses a hierarchical namespace, where every node is called znode.

  2. 2.

    Stale read is a read operation that fetches result which does not reflect all updates to the given value.

  3. 3.

    Amazon Machine Images, image that is used to create virtual machines using Amazon Elastic Compute Cloud.

  4. 4.

    Elastic Block Storage, persistent block storage offering from Amazon Web Services.

References

  1. Amazon Linux 2. https://aws.amazon.com/amazon-linux-2/. Accessed 9 Jan 2019

  2. Apache Software Foundation. https://www.apache.org/. Accessed 11 Jan 2019

  3. Brewer, E.: CAP twelve years later: how the “Rules” have changed. Computer 45, 23–29 (2012). https://doi.org/10.1109/MC.2012.37

    Article  Google Scholar 

  4. Burrows, M.: The Chubby lock service for loosely-coupled distributed systems. In: 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI) (2006)

    Google Scholar 

  5. Cloud Native Computing Foundation. https://www.cncf.io/. Accessed 11 Jan 2019

  6. Consul Documentation. https://www.consul.io/docs/index.html. Accessed 11 Jan 2019

  7. Consul consensus protocol. https://www.consul.io/docs/internals/consensus.html. Accessed 11 Jan 2019

  8. Corporation, N.: DB engines ranking. https://db-engines.com/en/ranking

  9. Dijkstra, E.: Solution of a problem in concurrent programming control. Commun. ACM 8(9), 569 (1965)

    Article  Google Scholar 

  10. etcd Documentation. https://etcd.readthedocs.io/en/latest/. Accessed 10 Jan 2019

  11. Hadoop Documentation. https://hadoop.apache.org/. Accessed 11 Jan 2019

  12. Hunt, P.: Zookeeper service latencies under various loads and configurations. https://cwiki.apache.org/confluence/display/ZOOKEEPER/ServiceLatencyOverview. Accessed 9 Jan 2019

  13. Jepsen - Distributed Systems Safety Research. https://jepsen.io/. Accessed 9 Jan 2019

  14. Junqueira, F., Reed, B., Hunt, P., Konar, M.: ZooKeeper: wait-free coordination for Internet-scale systems. In: Proceedings of the 2010 USENIX conference on USENIX Annual Technical Conference, June 2010

    Google Scholar 

  15. Junqueira, F., Reed, B., Serafini, M.: Zab: high-performance broadcast for primary-backup systems. In: IEEE/IFIP 41st International Conference on Dependable Systems and Networks (DSN), pp. 245–256, June 2011

    Google Scholar 

  16. Kabakus, A.T., Kara, R.: A performance evaluation of in-memory databases. J. King Saud Univ. Comput. Inf. Sci. 29(4), 520–525 (2016)

    Google Scholar 

  17. Kingsbury, K.: Jepsen: etcd and Consul. https://aphyr.com/posts/316-call-me-maybe-etcd-and-consul. Accessed 9 Jan 2019

  18. Kingsbury, K.: Jepsen: Zookeeper. https://aphyr.com/posts/291-call-me-maybe-zookeeper. Accessed 9 Jan 2019

  19. Kleppmann, M.: How to do distributed locking. http://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html. Accessed 9 Jan 2019

  20. Kubernetes Documentation. https://kubernetes.io/. Accessed 11 Jan 2019

  21. KV API Guarantees. https://coreos.com/etcd/docs/latest/learning/api_guarantees.html. Accessed 11 Jan 2019

  22. Lamport, L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2), 133–169 (1998)

    Article  Google Scholar 

  23. Lee, G.H.: Exploring performance of etcd, zookeeper and consul consistent key-value datastores. https://coreos.com/blog/performance-of-etcd.html. Accessed 9 Jan 2019

  24. Nomad Documentation. https://www.nomadproject.io/. Accessed 11 Jan 2019

  25. Ongaro, D., Ousterhout, J.: In search of an understandable consensus algorithm. In: Proceedings of the 2014 USENIX Conference on USENIX Annual Technical Conference, pp. 305–320, June 2014

    Google Scholar 

  26. Redis Documentation. https://redis.io/documentation. Accessed 11 Jan 2019

  27. How fast is Redis? https://redis.io/topics/benchmarks. Accessed 9 Jan 2019

  28. Distributed locks with Redis. https://redis.io/topics/distlock. Accessed 11 Jan 2019

  29. Sullivan, D.: NoSQL for Mere Mortals, 1st edn. Addison-Wesley Professional, Boston (2015)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Piotr Grzesik .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Grzesik, P., Mrozek, D. (2019). Evaluation of Key-Value Stores for Distributed Locking Purposes. In: Kozielski, S., Mrozek, D., Kasprowski, P., Małysiak-Mrozek, B., Kostrzewa, D. (eds) Beyond Databases, Architectures and Structures. Paving the Road to Smart Data Processing and Analysis. BDAS 2019. Communications in Computer and Information Science, vol 1018. Springer, Cham. https://doi.org/10.1007/978-3-030-19093-4_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-19093-4_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-19092-7

  • Online ISBN: 978-3-030-19093-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics