skip to main content
10.1145/2633448.2633455acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

More scalable ordered set for ETS using adaptation

Published: 03 September 2014 Publication History

Abstract

The Erlang Term Storage (ETS) is a key component of the runtime system and standard library of Erlang/OTP. In particular, on big multicores, the performance of many applications that use ETS as a shared key-value store heavily depends on the scalability of ETS. In this work, we investigate an alternative implementation for the ETS table type ordered_set based on a contention adapting search tree. The new implementation performs many times better than the current one in contended scenarios and scales better than the ETS table types implemented using hashing and fine-grained locking when several processor chips are used. We evaluate the new implementation with a set of experiments that show its scalability in relation to the current ETS implementation as well as its low sequential overhead.

References

[1]
G. Adelson-Velskii and E. M. Landis. An algorithm for the organization of information. In Proceedings of the USSR Academy of Sciences, volume 146, pages 263--266, 1962. In Russian.
[2]
Y. Afek, H. Kaplan, B. Korenfeld, A. Morrison, and R. E. Tarjan. CBTree: A practical concurrent self-adjusting search tree. In International Symposium on Distributed Computing, pages 1--15. Springer, 2012. URL http://link.springer.com/chapter/10.1007/978-3-642-33651-5_1.
[3]
C. R. Aragon and R. G. Seidel. Randomized search trees. In Proceedings of the 30th Annual Symposium on Foundations of Computer Science, pages 540--545, Oct. 1989. URL http://dx.doi.org/10.1109/SFCS.1989.63531.
[4]
A. Arcangeli, M. Cao, P. E. McKenney, and D. Sarma. Using read-copy-update techniques for system V IPC in the Linux 2.5 kernel. In USENIX Annual Technical Conference, FREENIX Track, pages 297--309. USENIX, 2003. ISBN 1-931971-11-0. URL https://www.usenix.org/legacy/events/usenix03/tech/freenix03/full_papers/arcangeli/arcangeli.pdf.
[5]
S. Aronis, N. Papaspyrou, K. Roukounaki, K. Sagonas, Y. Tsiouris, and I. E. Venetis. A scalability benchmark suite for Erlang/OTP. In Proceedings of the Eleventh ACM SIGPLAN Workshop on Erlang, pages 33--42. ACM, 2012. ISBN 978-1-4503-1575-3. URL http://doi.acm.org/10.1145/2364489.2364495.
[6]
N. G. Bronson, J. Casper, H. Chafi, and K. Olukotun. A practical concurrent binary search tree. In Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 257--268. ACM, 2010. URL http://dx.doi.org/10.1145/1693453.1693488.
[7]
I. Calciu, D. Dice, Y. Lev, V. Luchangco, V. J. Marathe, and N. Shavit. NUMA-aware reader-writer locks. In Proceedings of the 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 157--166, New York, NY, USA, 2013. ACM. ISBN 978-1-4503-1922-5. URL http://doi.acm.org/10.1145/2442516.2442532.
[8]
T. Crain, V. Gramoli, and M. Raynal. A contention-friendly binary search tree. In Euro-Par 2013 Parallel Processing - 9th International Conference, volume 8097 of LNCS, pages 229--240. Springer, 2013. URL http://dx.doi.org/10.1007/978-3-642-40047-6_25.
[9]
K. Fraser. Practical lock-freedom. PhD thesis, University of Cambridge Computer Laboratory, 2004.
[10]
S. L. Fritchie. A study of Erlang ETS table implementations and performance. In Proceedings of the 2003 ACM SIGPLAN Workshop on Erlang, pages 43--55. ACM, 2003. URL http://dx.doi.org/10.1145/940880.940887.
[11]
T. E. Hart, P. E. McKenney, A. D. Brown, and J. Walpole. Performance of memory reclamation for lockless synchronization. Journal of Parallel and Distributed Computing, 67 (12): 1270--1285, 2007. ISSN 0743-7315. URL http://dx.doi.org/10.1016/j.jpdc.2007.04.010.
[12]
D. Klaftenegger, K. Sagonas, and K. Winblad. On the scalability of the Erlang term storage. In Proceedings of the Twelfth ACM SIGPLAN Workshop on Erlang, pages 15--26, New York, NY, USA, 2013. ACM. ISBN 978-1-4503-2385-7. URL http://doi.acm.org/10.1145/2505305.2505308.
[13]
D. Klaftenegger, K. Sagonas, and K. Winblad. Delegation locking libraries for improved performance of multithreaded programs. In Euro-Par 2014, Proceedings of the 20th International Conference, volume 8632 of LNCS. Springer, 2014. Preprint available from http://www.it.uu.se/research/group/languages/software/qd_lock_lib.
[14]
Klaftenegger, Sagonas, and Winblad}QDLockingD. Klaftenegger, K. Sagonas, and K. Winblad. Queue delegation locking, 2014. Available from http://www.it.uu.se/research/group/languages/software/qd_lock_lib.
[15]
P.-Å. Larson. Linear hashing with partial expansions. In Proceedings of the Sixth International Conference on Very Large Data Bases, pages 224--232. VLDB Endowment, 1980.
[16]
P. E. McKenney and J. D. Slingwine. Read-copy update: Using execution history to solve concurrency problems. In Parallel and Distributed Computing and Systems, pages 509--518, 1998.
[17]
M. M. Michael. Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Transactions on Parallel and Distributed Systems, 15 (6): 491--504, 2004. URL http://dx.doi.org/10.1109/TPDS.2004.8.
[18]
A. Natarajan and N. Mittal. Fast concurrent lock-free binary search trees. In Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 317--328, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-2656-8. URL http://doi.acm.org/10. 1145/2555243.2555256.
[19]
P. Nyblom. Erlang ETS tables and software transactional memory: How transactions make ETS tables more like ordinary actors. In Proceedings of the Tenth ACM SIGPLAN Workshop on Erlang, pages 2--13. ACM, 2011. URL http://dx.doi.org/10.1145/2034654.2034658.
[20]
R. Rajwar and J. R. Goodman. Speculative lock elision: Enabling highly concurrent multithreaded execution. In Proceedings of the 34th Annual ACM/IEEE International Symposium on Microarchitecture, MICRO 34, pages 294--305, Washington, DC, USA, 2001. IEEE Computer Society. ISBN 0-7695-1369-7. URL http://dl.acm.org/citation.cfm?id=563998.564036.
[21]
K. Sagonas and K. Winblad. Technical report: Contention adapting trees, 2014. Available from http://www.it.uu.se/research/group/languages/software/ca_tree.

Cited By

View all
  • (2018)The Missing Link! A New Skeleton for Evolutionary Multi-agent Systems in ErlangInternational Journal of Parallel Programming10.1007/s10766-017-0503-446:1(4-22)Online publication date: 1-Feb-2018
  • (2017)Scaling ReliablyACM Transactions on Programming Languages and Systems10.1145/310793739:4(1-46)Online publication date: 17-Aug-2017
  • (2015)Contention Adapting Search TreesProceedings of the 2015 14th International Symposium on Parallel and Distributed Computing10.1109/ISPDC.2015.32(215-224)Online publication date: 29-Jun-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Erlang '14: Proceedings of the Thirteenth ACM SIGPLAN workshop on Erlang
September 2014
84 pages
ISBN:9781450330381
DOI:10.1145/2633448
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: 03 September 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrent data structures
  2. erlang
  3. search trees

Qualifiers

  • Research-article

Funding Sources

Conference

ICFP'14
Sponsor:

Acceptance Rates

Erlang '14 Paper Acceptance Rate 9 of 14 submissions, 64%;
Overall Acceptance Rate 51 of 68 submissions, 75%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2018)The Missing Link! A New Skeleton for Evolutionary Multi-agent Systems in ErlangInternational Journal of Parallel Programming10.1007/s10766-017-0503-446:1(4-22)Online publication date: 1-Feb-2018
  • (2017)Scaling ReliablyACM Transactions on Programming Languages and Systems10.1145/310793739:4(1-46)Online publication date: 17-Aug-2017
  • (2015)Contention Adapting Search TreesProceedings of the 2015 14th International Symposium on Parallel and Distributed Computing10.1109/ISPDC.2015.32(215-224)Online publication date: 29-Jun-2015
  • (2015)Efficient Support for Range Queries and Range Updates Using Contention Adapting Search TreesRevised Selected Papers of the 28th International Workshop on Languages and Compilers for Parallel Computing - Volume 951910.1007/978-3-319-29778-1_3(37-53)Online publication date: 9-Sep-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media