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.
References
Herlihy, M.P., Moss, J.E.: Non-blocking Snapshot Algorithm for Shared Memory Systems (2001)
Amram, O., Attiya, P., Touitou, D.: Dynamic snapshot: determining consistent states in distributed databases. Distrib. Comput. 9(2), 153–163 (1995)
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)
Dolev, D., Welch, B.L.: Non-blocking multi-version snapshotting. J. ACM 45(5), 785–798 (1998)
Fraser, K., Härtel, P.: Efficient locking for multi-version snapshotting. ACM Trans. Program. Lang. Syst. 27(5), 857–891 (2006)
Herlihy, M.P., Moss, J.E.: A correctness proof for a non-blocking snapshot algorithm. Distrib. Comput. 14(2), 199–213 (2001)
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)
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)
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)
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
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)
Moss, J.E.: Snapshotting volatile data structures. ACM Trans. Program. Lang. Syst. 22(4), 700–736 (2000)
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)
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)
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)
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)
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)
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)
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)
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)
Dolev, D., Welch, B.L.: Non-blocking multi-version snapshotting with history pruning. SIAM J. Comput. 34(1), 183–202 (2004)
Hamilton, J.: Beyond the Hype: A Economic Study of Cloud Computing (2010)
Herlihy, M.P., Wing, J.G.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–497 (1990)
Lamport, L.: How to make consistent snapshots. Technical Report TR-163, SRI International (1991)
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)
Marzullo, K., Owicki, S.: Non-blocking snapshotting. Distrib. Comput. 7(1), 1–14 (1993)
Moir, M.: Concurrent snapshotting without lock overhead. In: Proceedings of the 20th International Conference on Parallel Processing, pp. 579–584. IEEE (2001)
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)
Raynal, M.: Concurrent algorithms: an actor-based approach. Springer Science & Business Media (2013)
Almagor, J.: Implementing non-blocking snapshots. In: Handbook of Algorithms for Parallel Computing, pp. 737–752. Springer (2012)
Welch, B. L.: A technique for sublinear snapshot isolation. In: Proceedings of the 24th International Symposium on Distributed Computing, pp. 369–383. Springer (2010)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
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
DOI: https://doi.org/10.1007/978-3-031-57840-3_28
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-57839-7
Online ISBN: 978-3-031-57840-3
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)