Show simple item record

dc.contributor.authorAlistarh, Dan
dc.contributor.authorKopinsky, Justin
dc.contributor.authorMatveev, Alexander
dc.contributor.authorShavit, Nir N.
dc.date.accessioned2016-02-02T02:23:39Z
dc.date.available2016-02-02T02:23:39Z
dc.date.issued2014-06
dc.identifier.isbn978-1-4799-5169-7
dc.identifier.isbn978-1-4799-5168-0
dc.identifier.urihttp://hdl.handle.net/1721.1/101054
dc.description.abstractThe long-lived renaming problem appears in shared-memory systems where a set of threads need to register and deregister frequently from the computation, while concurrent operations scan the set of currently registered threads. Instances of this problem show up in concurrent implementations of transactional memory, flat combining, thread barriers, and memory reclamation schemes for lock-free data structures. In this paper, we analyze a randomized solution for long-lived renaming. The algorithmic technique we consider, called the Level Array, has previously been used for hashing and one-shot (single-use) renaming. Our main contribution is to prove that, in long-lived executions, where processes may register and deregister polynomially many times, the technique guarantees constant steps on average and O (log log n) steps with high probability for registering, unit cost for deregistering, and O (n) steps for collect queries, where n is an upper bound on the number of processes that may be active at any point in time. We also show that the algorithm has the surprising property that it is self-healing: under reasonable assumptions on the schedule, operations running while the data structure is in a degraded state implicitly help the data structure re-balance itself. This subtle mechanism obviates the need for expensive periodic rebuilding procedures. Our benchmarks validate this approach, showing that, for typical use parameters, the average number of steps a process takes to register is less than two and the worst-case number of steps is bounded by six, even in executions with billions of operations. We contrast this with other randomized implementations, whose worst-case behavior we show to be unreliable, and with deterministic implementations, whose cost is linear in n.en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (Grant CCF-1217921)en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (Grant CCF-1301926)en_US
dc.description.sponsorshipUnited States. Dept. of Energy (Advanced Scientific Computing Research Grant ER26116/DE-SC0008923)en_US
dc.description.sponsorshipOracle Corporationen_US
dc.description.sponsorshipIntel Corporationen_US
dc.language.isoen_US
dc.publisherInstitute of Electrical and Electronics Engineers (IEEE)en_US
dc.relation.isversionofhttp://dx.doi.org/10.1109/ICDCS.2014.43en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourceMIT web domainen_US
dc.titleThe LevelArray: A Fast, Practical Long-Lived Renaming Algorithmen_US
dc.typeArticleen_US
dc.identifier.citationAlistarh, Dan, Justin Kopinsky, Alexander Matveev, and Nir Shavit. “The LevelArray: A Fast, Practical Long-Lived Renaming Algorithm.” 2014 IEEE 34th International Conference on Distributed Computing Systems (June 2014).en_US
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.contributor.mitauthorKopinsky, Justinen_US
dc.contributor.mitauthorMatveev, Alexanderen_US
dc.contributor.mitauthorShavit, Nir N.en_US
dc.relation.journalProceedings of the 2014 IEEE 34th International Conference on Distributed Computing Systemsen_US
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dspace.orderedauthorsAlistarh, Dan; Kopinsky, Justin; Matveev, Alexander; Shavit, Niren_US
dc.identifier.orcidhttps://orcid.org/0000-0003-4235-0036
dc.identifier.orcidhttps://orcid.org/0000-0003-2062-0998
dc.identifier.orcidhttps://orcid.org/0000-0002-4552-2414
mit.licenseOPEN_ACCESS_POLICYen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record