Skip to main content

Advancing Multi-writer Snapshots Algorithm

  • Conference paper
  • First Online:
Advanced Information Networking and Applications (AINA 2024)

Abstract

Maintaining consistency among multiple threads that access and modify shared data structures [1] is paramount in concurrent programming. Multi-writer snapshot algorithms capture consistent snapshots of shared data and enable reliable program operation. The Amram-Atiya-Touitou (AAT) algorithm [2] is a widely accepted technique for capturing consistent snapshots. However, relying on global snapshot locks limits [2] performance, especially in high contention scenarios. This study addresses the performance limitations of the original His AAT algorithm by introducing improvements that significantly increase its performance and efficiency. Proposed changes include fine-grained locking [3], lazy snapshot creation, and early lock release. Through these optimizations, the reformed AAT algorithm effectively addresses the performance bottlenecks of the original algorithm, leading to significant improvements in throughput and scalability. Benchmark results show that the reformed AAT algorithm outperforms the original AAT algorithm significantly, especially in highly competitive scenarios.

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

Access this chapter

Institutional subscriptions

References

  1. Herlihy, M.P., Moss, J.E.: Non-blocking Snapshot Algorithm for Shared Memory Systems (2001)

    Google Scholar 

  2. Amram, O., Attiya, P., Touitou, D.: Dynamic snapshot: determining consistent states in distributed databases. Distrib. Comput. 9(2), 153–163 (1995)

    Google Scholar 

  3. Ballouz, L., Afek, A.: Non-blocking snapshotting of shared memory with fine-grained locking. In: Proceedings of the 27th International Symposium on Distributed Computing, pp. 325–340. Springer (2013)

    Google Scholar 

  4. Dolev, D., Welch, B.L.: Non-blocking multi-version snapshotting. J. ACM 45(5), 785–798 (1998)

    Google Scholar 

  5. Fraser, K., Härtel, P.: Efficient locking for multi-version snapshotting. ACM Trans. Program. Lang. Syst. 27(5), 857–891 (2006)

    Google Scholar 

  6. Herlihy, M.P., Moss, J.E.: A correctness proof for a non-blocking snapshot algorithm. Distrib. Comput. 14(2), 199–213 (2001)

    Google Scholar 

  7. Hill, D. R., DeBoni, W., and Moss, J. E.: An efficient and extensible algorithm for concurrent snapshotting. In: Proceedings of the 12th ACM SIGPLAN Conference on Programming Languages and Compiler Design, pp. 221–234. ACM (1995)

    Google Scholar 

  8. Liu, N., Lynch, N.A.: A light and efficient non-blocking snapshot algorithm. In: Proceedings of the 32nd International Conference on Distributed Computing, pp. 529–544. Springer (2018)

    Google Scholar 

  9. Lopes, M.M., Guerra, F.P.: Non-blocking snapshotting: the case of fine-grained locking. In: Proceedings of the 26th International Conference on Distributed Computing, pp. 410–425. Springer (2012)

    Google Scholar 

  10. Amram, G., Hayoun, A., Mizrahi. L., Weiss, G.: Polynomial-time verification and testing of implementations of the snapshot data structure. In: 36th International Symposium on Distributed Computing (DISC 2022), pp. 5.1 - 5.20 https://doi.org/10.4230/LIPIcs.DISC.2022.5, published on 17th October, 2022

  11. Moir, M., Herlihy, M.P.: Using history information to improve the performance of non-blocking snapshotting. In: Proceedings of the 20th International Symposium on Distributed Computing, pp. 317–332. Springer (2006)

    Google Scholar 

  12. Moss, J.E.: Snapshotting volatile data structures. ACM Trans. Program. Lang. Syst. 22(4), 700–736 (2000)

    Google Scholar 

  13. Oyama, K., Hagino, T.: A practical non-blocking snapshot algorithm with high scalability. In: Proceedings of the ACM Symposium on Principles of Distributed Computing, pp. 151–160. ACM (2011)

    Google Scholar 

  14. Pang, J., Afek, A.: Efficient non-blocking snapshotting with low contention. In: Proceedings of the 21st International Symposium on Distributed Computing, pp. 381–396. Springer (2007)

    Google Scholar 

  15. Shavit, T., Touitou, K.: A linear-time implementation of non-blocking snapshots. In: Proceedings of the ACM Symposium on Principles of Distributed Computing, pp. 156–165. ACM (1997)

    Google Scholar 

  16. Attiya, H., Welch, B.L.: Sequential consistency versus snapshot isolation. In: Proceedings of the 14th International Symposium on Distributed Computing, pp. 72–83. Springer (2000)

    Google Scholar 

  17. Boichat, L., Meijer, A.: Non-blocking snapshotting of multi-version data structures. In: Proceedings of the 21st International Conference on Distributed Computing, pp. 365–380. Springer (2007)

    Google Scholar 

  18. Chakraborty, S., Afek, A.: Scalable and efficient non-blocking snapshotting. In: Proceedings of the 28th International Symposium on Distributed Computing, pp. 432–447. Springer (2014)

    Google Scholar 

  19. Cheng, Y., Afek, A.: Efficient non-blocking snapshotting with fine-grained locking. In: Proceedings of the 22nd International Conference on Distributed Computing, pp. 466–480. Springer (2008)

    Google Scholar 

  20. Dice, D., Skeen, D.: A fault-tolerant approach to distributed snapshots. In: Proceedings of the 4th ACM Symposium on Principles of Distributed Computing, pp. 339–349. ACM (1985)

    Google Scholar 

  21. Dolev, D., Welch, B.L.: Non-blocking multi-version snapshotting with history pruning. SIAM J. Comput. 34(1), 183–202 (2004)

    Google Scholar 

  22. Hamilton, J.: Beyond the Hype: A Economic Study of Cloud Computing (2010)

    Google Scholar 

  23. Herlihy, M.P., Wing, J.G.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–497 (1990)

    Article  Google Scholar 

  24. Lamport, L.: How to make consistent snapshots. Technical Report TR-163, SRI International (1991)

    Google Scholar 

  25. Li, H., Wing, J.G.: Fast and scalable non-blocking snapshotting. In: Proceedings of the 29th ACM Symposium on Parallelism in Algorithms and Architectures, pp. 21–30. ACM (2017)

    Google Scholar 

  26. Marzullo, K., Owicki, S.: Non-blocking snapshotting. Distrib. Comput. 7(1), 1–14 (1993)

    Google Scholar 

  27. Moir, M.: Concurrent snapshotting without lock overhead. In: Proceedings of the 20th International Conference on Parallel Processing, pp. 579–584. IEEE (2001)

    Google Scholar 

  28. Nagarajan, R., Singhal, M.: A fault-tolerant and highly scalable snapshot algorithm for distributed systems. In: Proceedings of the 19th IEEE International Symposium on Parallel and Distributed Processing, pp. 1–10. IEEE (2007)

    Google Scholar 

  29. Raynal, M.: Concurrent algorithms: an actor-based approach. Springer Science & Business Media (2013)

    Google Scholar 

  30. Almagor, J.: Implementing non-blocking snapshots. In: Handbook of Algorithms for Parallel Computing, pp. 737–752. Springer (2012)

    Google Scholar 

  31. Welch, B. L.: A technique for sublinear snapshot isolation. In: Proceedings of the 24th International Symposium on Distributed Computing, pp. 369–383. Springer (2010)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sudhanshu Sharma .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Sharma, S., Mahato, D.P. (2024). Advancing Multi-writer Snapshots Algorithm. In: Barolli, L. (eds) Advanced Information Networking and Applications. AINA 2024. Lecture Notes on Data Engineering and Communications Technologies, vol 199. Springer, Cham. https://doi.org/10.1007/978-3-031-57840-3_28

Download citation

Publish with us

Policies and ethics