Abstract
We present a linearizable, non-blocking k-ary search tree (k-ST) that supports fast searches and range queries. Our algorithm uses single-word compare-and-swap (CAS) operations, and tolerates any number of crash failures. Performance experiments show that, for workloads containing small range queries, our k-ST significantly outperforms other algorithms which support these operations, and rivals the performance of a leading concurrent skip-list, which provides range queries that cannot always be linearized.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. J. ACM 40(4), 873–890 (1993)
Afek, Y., Avni, H., Shavit, N.: Towards Consistency Oblivious Programming. In: Fernàndez Anta, A., Lipari, G., Roy, M. (eds.) OPODIS 2011. LNCS, vol. 7109, pp. 65–79. Springer, Heidelberg (2011)
Attiya, H., Guerraoui, R., Ruppert, E.: Partial snapshot objects. In: Proc. 20th Annual Symposium on Parallelism in Algorithms and Architectures, SPAA 2008, pp. 336–343. ACM, New York (2008)
Barnes, G.: A method for implementing lock-free data structures. In: Proc. 5th ACM Symposium on Parallel Algorithms and Architectures, pp. 261–270 (1993)
Braginsky, A., Petrank, E.: A lock-free b+tree. In: Proceedings of the 24th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2012, pp. 58–67. ACM, New York (2012)
Bronson, N.G., Casper, J., Chafi, H., Olukotun, K.: A practical concurrent binary search tree. In: Proc. 15th ACM Symposium on Principles and Practice of Parallel Programming, pp. 257–268 (2010)
Bronson, N.G., Casper, J., Chafi, H., Olukotun, K.: Transactional predication: high-performance concurrent sets and maps for stm. In: PODC, pp. 6–15 (2010)
Brown, T., Avni, H.: Range queries in non-blocking k-ary search trees, http://www.cs.toronto.edu/~tabrown/kstrq
Brown, T., Helga, J.: Non-blocking k-ary search trees. In: Proc. 15th International Conference on Principles of Distributed Systems, pp. 207–211 (2011), Complete proof and code available at http://www.cs.toronto.edu/~tabrown/ksts , more details in Tech. Report CSE-2011-04, York University
Ellen, F., Fatourou, P., Ruppert, E., van Breugel, F.: Non-blocking binary search trees. In: Proc. 29th ACM Symposium on Principles of Distributed Computing, pp. 131–140 (2010), Full version in Tech. Report CSE-2010-04, York University
Okasaki, C.: Purely functional data structures. Cambridge University Press, New York (1998)
Prokopec, A., Bronson, N.G., Bagwell, P., Odersky, M.: Concurrent tries with efficient non-blocking snapshots. To appear in Proc. 17th ACM Symposium on Principles and Practice of Parallel Programming (2012)
Shavit, N., Touitou, D.: Software transactional memory. In: Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing, PODC 1995, pp. 204–213. ACM, New York (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Brown, T., Avni, H. (2012). Range Queries in Non-blocking k-ary Search Trees. In: Baldoni, R., Flocchini, P., Binoy, R. (eds) Principles of Distributed Systems. OPODIS 2012. Lecture Notes in Computer Science, vol 7702. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35476-2_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-35476-2_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-35475-5
Online ISBN: 978-3-642-35476-2
eBook Packages: Computer ScienceComputer Science (R0)