Abstract | ||
---|---|---|
Timestamping is an essential building block for designing concurrency control mechanisms and concurrent data structures. Various algorithms either employ physical timestamping, assuming that they have access to synchronized clocks, or maintain a logical clock with the help of atomic instructions. Unfortunately, these approaches have two problems. First, hardware developers do not guarantee that the available hardware clocks are exactly synchronized, which they find difficult to achieve in practice. Second, the atomic instructions are a deterrent to scalability resulting from cache-line contention. This paper addresses these problems by proposing and designing a scalable ordering primitive, called ORDO, that relies on invariant hardware clocks. ORDO not only enables the correct use of these clocks, by providing a notion of a global hardware clock, but also frees various logical timestamp-based algorithms from the burden of the software logical clock, while trying to simplify their design. We use the ORDO primitive to redesign 1) a concurrent data structure library that we apply on the Linux kernel; 2) a synchronization mechanism for concurrent programming; 3) two database concurrency control mechanisms; and 4) a clock-based software transactional memory algorithm. Our evaluation shows that there is a possibility that the clocks are not synchronized on two architectures (Intel and ARM) and that ORDO generally improves the efficiency of several algorithms by 1.2-39.7x on various architectures. |
Year | DOI | Venue |
---|---|---|
2018 | 10.1145/3190508.3190510 | EUROSYS '18: PROCEEDINGS OF THE THIRTEENTH EUROSYS CONFERENCE |
Field | DocType | Citations |
Software transactional memory,Timestamping,Concurrency control,Computer science,Parallel computing,Logical clock,Concurrent computing,Concurrent data structure,Multi-core processor,Distributed computing,Linux kernel | Conference | 0 |
PageRank | References | Authors |
0.34 | 39 | 4 |
Name | Order | Citations | PageRank |
---|---|---|---|
Sanidhya Kashyap | 1 | 124 | 10.92 |
Changwoo Min | 2 | 294 | 29.89 |
Kangnyeon Kim | 3 | 94 | 4.31 |
Taesoo Kim | 4 | 809 | 51.85 |