Title
A scalable ordering primitive for multicore machines.
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 Kashyap112410.92
Changwoo Min229429.89
Kangnyeon Kim3944.31
Taesoo Kim480951.85