Abstract
We propose a method called Node Replication (NR) to implement any concurrent data structure. The method takes a single-threaded implementation of a data structure and automatically transforms it into a concurrent (thread-safe) implementation. The result is designed to work well with and harness the power of modern servers, which are complex Non-Uniform Memory Access (NUMA) machines with many processor sockets and subtle performance characteristics. Using NR requires no expertise in concurrent data structure design, and the result is free of concurrency bugs. NR represents a paradigm shift of how concurrent algorithms are developed: rather than designing for a data structure, we design for the architecture.
- Balakrishnan, M., Malkhi, D., Davis, J. P., Prabhakaran, V., Wei, M., Wobber, T. CORFU: a distributed shared log. ACM Trans. Comp. Syst. 31, 4 (Dec. 2013). Google ScholarDigital Library
- Calciu, I., Gottschlich, J.E., Herlihy, M. Using delegation and elimination to implement a scalable NUMA-friendly stack. In USENIX Workshop on Hot Topics in Parallelism (June 2013). Google ScholarDigital Library
- Calciu, I., Sen, S., Balakrishnan, M., Aguilera, M.K. Black-box concurrent data structures for NUMA architectures. In International Conference on Architectural Support for Programming Languages and Operating Systems (Apr. 2017), 207--221. Google ScholarDigital Library
- Fraser, K. Practical lock-freedom. Technical Report UCAM-CL-TR-579, University of Cambridge, Computer Laboratory (Feb. 2004).Google Scholar
- Hendler, D., Incze, I., Shavit, N., Tzafrir, M. Flat combining and the synchronization-parallelism tradeoff. In ACM Symposium on Parallelism in Algorithms and Architectures (June 2010), 355--364. Google ScholarDigital Library
- Herlihy, M. Wait-free synchronization. ACM Trans. Program. Lang. Syst. 11, 1 (Jan. 1991), 124--149. Google ScholarDigital Library
- Herlihy, M., Shavit, N. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2008. Google ScholarDigital Library
- Herlihy, M.P., Wing, J.M. Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12, 3 (July 1990), 463--492. Google ScholarDigital Library
- Lameter, C. NUMA (non-uniform memory access): an overview. ACM Queue 11, 7 (July 2013). Google ScholarDigital Library
- Lim, H., Han, D., Andersen, D.G., Kaminsky, M. MICA: a holistic approach to fast in-memory key-value storage. In Symposium on Networked Systems Design and Implementation (Apr. 2014), 429--444. Google ScholarDigital Library
- Mao, Y., Kohler, E., Morris, R.T. Cache craftiness for fast multicore key-value storage. In European Conference on Computer Systems (Apr. 2012), 183--196. Google ScholarDigital Library
- Metreveli, Z., Zeldovich, N., Kaashoek, M.F. CPHash: a cache-partitioned hash table. In ACM Symposium on Principles and Practice of Parallel Programming (Feb. 2012), 319--320. Google ScholarDigital Library
- Michael, M.M. Hazard pointers: safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15, 6 (June 2004), 491--504. Google ScholarDigital Library
- Porobic, D., Liarou, E., Tözün, P., Ailamaki, A. ATraPos: adaptive transaction processing on hardware islands. In International Conference on Data Engineering (Mar. 2014), 688--699.Google ScholarCross Ref
- Pugh, W. Skip lists: a probabilistic alternative to balanced trees. Commun. ACM 33, 6 (June 1990), 668--676. Google ScholarDigital Library
- Shalev, O., Shavit, N. Predictive log-synchronization. In European Conference on Computer Systems (Apr. 2006), 305--316. Google ScholarDigital Library
Index Terms
- How to implement any concurrent data structure
Recommendations
Concurrent Data Structures
PODC '16: Proceedings of the 2016 ACM Symposium on Principles of Distributed ComputingData structures are an important component of efficient and well-structured programs. In shared memory distributed computing, correct data structures are difficult to construct because concurrent accesses by different processes can conflict with one ...
How to implement any concurrent data structure for modern servers
Special TopicsIn this paper, we propose a method to implement any concurrent data structure. Our method produces implementations that work particularly well in non-uniform memory access (NUMA) machines. Due to recent architecture trends, highly concurrent servers ...
Lock-Free Data-Structure Iterators
DISC 2013: Proceedings of the 27th International Symposium on Distributed Computing - Volume 8205Concurrent data structures are often used with large concurrent software. An iterator that traverses the data structure items is a highly desirable interface that often exists for sequential data structures but is missing from almost all concurrent data-...
Comments