Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1060590.1060697acmconferencesArticle/Chapter ViewAbstractPublication PagesstocConference Proceedingsconference-collections
Article

An optimal multi-writer snapshot algorithm

Published: 22 May 2005 Publication History

Abstract

An m-component, n-process snapshot object is an abstraction of shared memory that consists of m words and allows up to n processes to concurrently execute the following two types of operations: write(i,v), which writes v into the ith word, and scan(), which returns the current values of all m locations [1, 3]. The snapshot problem is to design algorithms for the write and scan operations that meet two challenging requirements: (1) operations appear to be atomic, and (2) operations are wait-freeFor any (m-component, n-process) snapshot algorithm, which runs on hardware that supports only word-sized objects, Ω(1) and Ω(m) are trivial lower bounds on the time complexity of write(i,v) and scan(), respectively. But, are these bounds tight?For a restricted version of the snapshot problem, known in the literature as the single-writer snapshot problem, Riany, Shavit and Touitou [18] showed that the answer is yes: they designed an algorithm with O(1) and O(m) running times for the write(i,v) and scan() operations, respectively. (The single-writer snapshot problem assumes that (i) the number m of words of the snapshot object is equal to the number n of processes, and (ii) only the ith process may write into the ith snapshot word.This paper shows that the same (optimal) running times of O(1) for write(i,v) and O(m) for scan() are achievable for the general problem, known in the literature as the multiwriter snapshot problem. Our algorithm requires hardware support for the CAS (compare&swap) operation (in comparison, Riany, Shavit and Touitou's algorithm requires hardware support for CAS, fetch&inc, and fetch&dec operations).

References

[1]
Y. Afek, H. Attiya, D. Dolev, E. Gafni, M. Merritt, and N. Shavit. Atomic snapshots of shared memory. In Proceedings of the 9th Annual Symposium on Principles of Distributed Computing, pages 1--14, 1990.
[2]
Y. Afek, H. Attiya, D. Dolev, E. Gafni, M. Merritt, and N. Shavit. Atomic snapshots of shared memory. Journal of the ACM, 40(4):873--890, September 1993.
[3]
J. Anderson. Composite registers. In Proceedings of the 9th Annual Symposium on Principles of Distributed Computing, pages 15--29, 1990.
[4]
J. Anderson. Composite registers. Distributed Computing, 6(3):141--154, 1993.
[5]
J. Anderson. Multi-writer composite registers. Distributed Computing, 7(4):175--195, 1994.
[6]
J. Aspnes and M. Herlihy. Wait-free data structures in the asynchronous PRAM model. In Proceedings of the 2nd Annual ACM Symposium on Parallel Architectures and Algorithms, pages 340--349, 1990.
[7]
H. Attiya, M. Herlihy, and O. Rachman. Efficient atomic snapshots using lattice agreement. In Proceedings of the 6th International Workshop on Distributed Algorithms, pages 35--53, 1992.
[8]
H. Attiya and O. Rachman. Atomic snapshots in o(n log n) operations. In Proceedings of the 12th Annual ACM Symposium on Principles of Distributed Computing, pages 29--40, 1993.
[9]
T. D. Chandra and C. Dwork. Using consensus to solve atomic snapshots. Unpublished manuscript, 1993.
[10]
C. Dwork, M. P. Herlihy, S. Plotkin, and O. Waarts. Time lapse snapshots. In Proceedings of the Israel Symposium on the Theory of Computing and Systems, pages 154--170, May 1992.
[11]
S. Haldar and K. Vidyasankar. Elegant constructions of atomic snapshot variables. Technical Report Technical Report No: 9204, Memorial University of Newfoundland, Department of Computer Science, Memorial University of Newfoundland, St. John's, NF, Canada, A1C 5S7, May 1992.
[12]
M. Herlihy and J. Wing. Linearizability: A correctness condition for concurrent objects. ACM TOPLAS, 12(3):463--492, 1990.
[13]
P. Jayanti. f-arrays: implementation and applications. In Proceedings of the 21st Annual Symposium on Principles of Distributed Computing, pages 270 -- 279, 2002.
[14]
P. Jayanti and S. Petrovic. Efficient and practical constructions of LL/SC variables. In Proceedings of the 22nd ACM Symposium on Principles of Distributed Computing, July 2003.
[15]
P. Jayanti and S. Petrovic. Efficient wait-free implementation of multiword ll/sc variables. In Proceedings of the 25th International Conference on Distributed Computing Systems (ICDCS), June 2005.
[16]
L. Kirousis, P. Spirakis, and P. Tsigas. Reading many variables in one atomic operation: solutions with linear or sublinear complexity. In Proceedings of the 5th International Workshop on Distributed Algorithms, pages 229--241, 1991.
[17]
M. Moir. Practical implementations of non-blocking synchronization primitives. In Proceedings of the 16th Annual ACM Symposium on Principles of Distributed Computing, pages 219--228, August 1997.
[18]
Y. Riany, N. Shavit, and D. Touitou. Towards a practical snapshot algorithm. Theoretical Computer Science, 269(1-2):163--201, 2001.

Cited By

View all
  • (2024)Controlled Scheduling of Concurrent Elixir ProgramsProceedings of the 23rd ACM SIGPLAN International Workshop on Erlang10.1145/3677995.3678195(67-75)Online publication date: 28-Aug-2024
  • (2024)Concurrent Size (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673409(1-2)Online publication date: 17-Jun-2024
  • (2024)Meta-Configuration Tracking for Machine-Certified Correctness of Concurrent Data Structures (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673406(21-22)Online publication date: 17-Jun-2024
  • Show More Cited By

Index Terms

  1. An optimal multi-writer snapshot algorithm

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    STOC '05: Proceedings of the thirty-seventh annual ACM symposium on Theory of computing
    May 2005
    778 pages
    ISBN:1581139608
    DOI:10.1145/1060590
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 22 May 2005

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. asynchronous
    2. concurrent algorithm
    3. fault-tolerant
    4. lock-free
    5. snapshot
    6. wait-free

    Qualifiers

    • Article

    Conference

    STOC05
    Sponsor:
    STOC05: Symposium on Theory of Computing
    May 22 - 24, 2005
    MD, Baltimore, USA

    Acceptance Rates

    Overall Acceptance Rate 1,469 of 4,586 submissions, 32%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)31
    • Downloads (Last 6 weeks)5
    Reflects downloads up to 13 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Controlled Scheduling of Concurrent Elixir ProgramsProceedings of the 23rd ACM SIGPLAN International Workshop on Erlang10.1145/3677995.3678195(67-75)Online publication date: 28-Aug-2024
    • (2024)Concurrent Size (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673409(1-2)Online publication date: 17-Jun-2024
    • (2024)Meta-Configuration Tracking for Machine-Certified Correctness of Concurrent Data Structures (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673406(21-22)Online publication date: 17-Jun-2024
    • (2024)MemSnap: A Fast Adaptive Snapshot Algorithm for RMWable Shared-MemoryProceedings of the 43rd ACM Symposium on Principles of Distributed Computing10.1145/3662158.3662820(25-35)Online publication date: 17-Jun-2024
    • (2024)Strongly Linearizable LL/SC from CASProceedings of the 43rd ACM Symposium on Principles of Distributed Computing10.1145/3662158.3662800(443-453)Online publication date: 17-Jun-2024
    • (2024)Executable contracts for elixirJournal of Logical and Algebraic Methods in Programming10.1016/j.jlamp.2024.101019(101019)Online publication date: Oct-2024
    • (2023)Exploring Trade-Offs in Partial Snapshot ImplementationsStabilization, Safety, and Security of Distributed Systems10.1007/978-3-031-44274-2_8(90-105)Online publication date: 30-Sep-2023
    • (2022)Concurrent sizeProceedings of the ACM on Programming Languages10.1145/35633006:OOPSLA2(345-372)Online publication date: 31-Oct-2022
    • (2022)Visibility reasoning for concurrent snapshot algorithmsProceedings of the ACM on Programming Languages10.1145/34986946:POPL(1-30)Online publication date: 12-Jan-2022
    • (2021)The Space Complexity of Scannable Binary ObjectsProceedings of the 2021 ACM Symposium on Principles of Distributed Computing10.1145/3465084.3467916(509-519)Online publication date: 21-Jul-2021
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media