Skip to main content
Log in

Engineering scalable, cache and space efficient tries for strings

  • Regular Paper
  • Published:
The VLDB Journal Aims and scope Submit manuscript

Abstract

Storing and retrieving strings in main memory is a fundamental problem in computer science. The efficiency of string data structures used for this task is of paramount importance for applications such as in-memory databases, text-based search engines and dictionaries. The burst trie is a leading choice for such tasks, as it can provide fast sorted access to strings. The burst trie, however, uses linked lists as substructures which can result in poor use of CPU cache and main memory. Previous research addressed this issue by replacing linked lists with dynamic arrays forming a cache-conscious array burst trie. Though faster, this variant can incur high instruction costs which can hinder its efficiency. Thus, engineering a fast, compact, and scalable trie for strings remains an open problem. In this paper, we introduce a novel and practical solution that carefully combines a trie with a hash table, creating a variant of burst trie called HAT-trie. We provide a thorough experimental analysis which demonstrates that for large set of strings and on alternative computing architectures, the HAT-trie—and two novel variants engineered to achieve further space-efficiency—is currently the leading in-memory trie-based data structure offering rapid, compact, and scalable storage and retrieval of variable-length strings.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Acharya, A., Zhu, H., Shen, K.: Adaptive algorithms for cache-efficient trie search. In: Proceedings of the ALENEX Workshop on Algorithm Engineering and Experiments, pp. 296–311. Baltimore, Maryland, United States (1999). Source code at http://www.cs.rochester.edu/~kshen

  2. Aggarwal, A.: Software caching vs. prefetching. In: Proceedings of International Symposium on Memory Management, pp. 157–162. ACM Press, New York (2002)

  3. Agrawal, R., Srikant, R.: Fast algorithms for mining association rules. In: Proceedings of International Conference on Very Large Databases, pp. 487–499. Morgan Kaufmann (1994)

  4. Al-Suwaiyel M., Horowitz E.: Algorithms for trie compaction. ACM Trans. Database Syst. 9(2), 243–263 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  5. Allen R., Kennedy K.: Optimizing Compilers for Modern Architectures. 1st edn. Morgan Kaufmann, San Francisco, California, United States (2001)

    Google Scholar 

  6. Aoe J., Morimoto K., Sato T.: An efficient implementation of trie structures. Softw. Pract. Exp. 22(9), 695–721 (1992)

    Article  Google Scholar 

  7. Aoe J., Morimoto K., Shishibori M., Park K.: A trie compaction algorithm for a large set of keys. IEEE Trans. Knowl. Data Eng. 8(3), 476–491 (1996)

    Article  Google Scholar 

  8. Arge, L., Bender, M.A., Demaine, E., Leiserson, C., Mehlhorn, K.: Abstracts collection. In: Cache-Oblivious and Cache-Aware Algorithms, no. 04301 in Dagstuhl Seminar Proceedings. Schloss Dagstuhl, Germany (2005)

  9. Arge, L., Bender, M.A., Demaine, E.D., Holland-Minkley, B., Munro, J.I.: Cache-oblivious priority queue and graph algorithm applications. In: Proceedings of ACM Symposium on Theory of Computing, pp. 268–276. Montreal, Quebec, Canada (2002)

  10. Arge, L., Brodal, G., Fagerberg, R.: Cache-oblivious data structures. In: Handbook on Data Structures and Applications, pp. 34–41. CRC Press (2005)

  11. Askitis, N.: Efficient data structures for cache architectures. Ph.D. thesis, School of Computer Science and I.T, RMIT Univeristy Australia (2007). Tech. report: TR-08-5

  12. Askitis, N.: Fast and compact hash tables for integer keys. In: Thirty-Second Australasian Computer Science Conference (ACSC 2009), vol. 91, pp. 101–110. Wellington, New Zealand (2009)

  13. Askitis, N., Sinha, R.: HAT-Trie: A cache-conscious trie-based data structure for strings. In: Thirtieth Australasian Computer Science Conference (ACSC2007), pp. 97–105. Ballarat, Australia (2007)

  14. Askitis, N., Zobel, J.: Cache-conscious collision resolution in string hash tables. In: Proceedings of SPIRE String Processing and Information Retrieval Symposium, pp. 91–102. Buenos Aires, Argentina (2005)

  15. Askitis, N., Zobel, J.: B-tries for disk-based string management. In: International Journal on Very Large Databases, pp. 1–25 (2008). http://www.springerlink.com/content/x7545u2g85675u17

  16. Bacon D.F., Granham S.L., Sharp O.J.: Compiler transformation for high-performance computing. ACM Comput. Surv. 26(4), 345–420 (1994)

    Article  Google Scholar 

  17. Badawy, A.A., Aggarwal, A., Yeung, D., Tseng, C.: The efficacy of software prefetching and locality optimizations on future memory systems. J. Instr. Lev. Parallelism 6(7) (2004)

  18. Badr, G., Oommen, B.J.: On using conditional rotations and randomized heuristics for self-organizing ternary search tries. In: Proceedings of ACM Southeast Regional Conference, pp. 109–115. Kennesaw, Georgia, United States (2005)

  19. Baer, J., Chen, T.: An effective on-chip preloading scheme to reduce data access penalty. In: Proceedings of ACM/IEEE Conference on Supercomputing, pp. 176–186. Albuquerque, New Mexico, United States (1991)

  20. Baer J., Chen T.: Effective hardware-based data prefetching for high-performance processors. IEEE Trans. Comput. 44(5), 609–623 (1995)

    Article  MATH  Google Scholar 

  21. Baskins, D.: A 10-minute description of how Judy arrays work and why they are so fast (2004) http://judy.sourceforge.net/

  22. Bell T.C., Cleary J.G., Witten I.H.: Text Compression. 1st edn. Prentice-Hall, New Jersey, United States (1990)

    Google Scholar 

  23. Bender, M., Brodal, G.S., Fagerberg, R., Ge, D., He, S., Hu, H., Iacono, J., Lopez-Ortiz, A.: The cost of cache-oblivious searching. In: IEEE Symposium on the Foundations of Computer Science, pp. 271–282. Cambridge, Massachusetts, United States (2003)

  24. Bender, M.A., Demaine, E.D., Farach-Colton, M.: Cache-oblivious b-trees. In: IEEE Symposium on the Foundations of Computer Science, pp. 399–409. IEEE Computer Society Press (2000)

  25. Bender, M.A., Demaine, E.D., Farach-Colton, M.: Efficient tree layout in a multilevel memory hierarchy. In: Proceedings of European Symposium on Algorithms, pp. 165–173. Rome, Italy (2002)

  26. Bender M.A., Duan Z., Iacono J., Wu J.: A locality-preserving cache-oblivious dynamic dictionary. J. Algorithms 53(2), 115–136 (2004)

    Article  MATH  MathSciNet  Google Scholar 

  27. Bender, M.A., Farach-Colton, M., Fineman, J.T., Fogel, Y.R., Kuszmaul, B.C., Nelson, J.: Cache-oblivious streaming B-trees. In: ACM Symposium on Parallel Algorithms and Architectures, pp. 81–92. San Diego, California, United States (2007)

  28. Bender, M.A., Farach-Colton, M., Kuszmaul, B.C.: Cache-oblivious string B-trees. In: Proceedings of ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, pp. 233–242. Chicago, Illinois, United States (2006)

  29. Bentley, J., Sedgewick, R.: Fast algorithms for sorting and searching strings. In: Proceedings of ACM SIAM Symposium on Discrete Algorithms, pp. 360–369. Society for Industrial and Applied Mathematics (1997)

  30. Berg, S.G.: Cache prefetching. In: Tech Report UW-CSE. University of Washington (2002)

  31. Berger, E.D., Zorn, B.G., McKinley, K.S.: Reconsidering custom memory allocation. In: Proceedings of ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, pp. 1–12. Seattle, Washington, United States (2002)

  32. de la Briandais, R.: File searching using variable length keys. In: Proceedings of Western Joint Computer Conference, pp. 295–298. New York, United States (1959)

  33. Brodal, G., Fagerberg, R.: Cache-oblivious string dictionaries. In: Proceedings of ACM SIAM Symposium on Discrete Algorithms, pp. 581–590. Miami, Florida, United States (2006)

  34. Brodal, G.S., Fagerberg, R., Jacob, R.: Cache oblivious search trees via binary trees of small height. In: Proceedings of ACM SIAM Symposium on Discrete Algorithms, pp. 39–48. San Francisco, California, United States (2002)

  35. Burger, D., Goodman, J.R., Kägi, A.: Memory bandwidth limitations of future microprocessors. In: Proceeidngs of International Symposium on Computer Architecture, pp. 78–89. Philadelphia, Pennsylvania, United States (1996)

  36. Calder, B., Krintz, C., John, S., Austin, T.: Cache-conscious data placement. In: Proceedings of International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 139–149. San Jose, California, United States (1998)

  37. Callahan, D., Kennedy, K., Porterfield, A.: Software prefetching. In: Proceedings of International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 40–52. Santa Clara, California, United States (1991)

  38. Carr, S., McKinley, K.S., Tseng, C.: Compiler optimizations for improving data locality. In: Proceedings of International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 252–262. San Jose, California, United States (1994)

  39. Chilimbi, T.M.: Cache-conscious data structures–design and implementation. Ph.D. thesis, Computer Sciences Department, University of Wisconsin-Madison (1999)

  40. Chilimbi, T.M., Hill, M.D., Larus, J.R.: Cache-conscious structure layout. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 1–12. Atlanta, Georgia, United States (1999)

  41. Chilimbi, T.M., Shaham, R.: Cache-conscious coallocation of hot data streams. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 252–262. Ottawa, Ontario, Canada (2006)

  42. Clement, J., Flajolet, P., Vallee, B.: The analysis of hybrid trie structures. In: Proceedings of ACM SIAM Symposium on Discrete Algorithms, pp. 531–539. San Francisco, California, United States (1998)

  43. Clement J., Flajolet P., Vallee B.: Dynamic sources in information theory: a general analysis of trie structures. Algorithmica 29(1/2), 307–369 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  44. Collins, J., Sair, S., Calder, B., Tullsen, D.M.: Pointer cache assisted prefetching. In: Proceedings of Annual ACM/IEEE MICRO International Symposium on Microarchitecture, pp. 62–73. Istanbul, Turkey (2002)

  45. Comer D.: Heuristics for trie index minimization. ACM Trans. Database Syst. 4(3), 383–395 (1979)

    Article  Google Scholar 

  46. Comer D.: Ubiquitous B-tree. ACM Comput. Surv. 11(2), 121–137 (1979)

    Article  MATH  Google Scholar 

  47. Crescenzi, P., Grossi, R., Italiano, G.F.: Search data structures for skewed strings. In: Experimental and Efficient Algorithms: Second International Workshop, WEA, pp. 81–96. Ascona, Switzerland (2003)

  48. Dongarra, J., London, K., Moore, S., Mucci, S., Terpstra, D.: Using PAPI for hardware performance monitoring on Linux systems. In: Proceedings of Conference on Linux Clusters: The HPC Revolution. Urbana, Illinois, United States (2001). http://icl.cs.utk.edu/papi/

  49. Dundas, J., Mudge, T.: Improving data cache performance by pre-executing instruction under a cache miss. In: Proceedings of ACM/IEEE Conference on Supercomputing, pp. 176–186. Vienna, Austria (1997)

  50. Flajolet P., Puech C.: Partial match retrieval of multimedia data. J. ACM 33(2), 371–407 (1986)

    Article  MathSciNet  Google Scholar 

  51. Fredkin E.: Trie memory. Commun. ACM 3(9), 490–499 (1960)

    Article  Google Scholar 

  52. Frigo, M., Leiserson, C., Prokop, H., Ramachandran, S.: Cache-oblivious algorithms. In: IEEE Symposium on the Foundations of Computer Science, p. 285. New York City, New York, United States (1999)

  53. Fritchie, S.L.: A study of Erlang ETS table implementations and performance. In: Proceedings of ACM SIGPLAN Workshop on Erlang, pp. 43–55. Uppsala, Sweden (2003)

  54. Fu, J.W.C., Patel, J.H., Janssens, B.L.: Stride directed prefetching in scalar processors. In: Proceedings of Annual ACM/IEEE MICRO International Symposium on Microarchitecture, pp. 102–110. IEEE Computer Society Press (1992)

  55. Fu J.W.C., Patel J.H., Janssens B.L.: Stride directed prefetching in scalar processors. SIGMICRO Newsl. 23(1–2), 102–110 (1992)

    Article  Google Scholar 

  56. Ghoting A., Buehrer G., Parthasarathy S., Kim D., Nguyen A., Chen Y., Dubey P.: Cache-conscious frequent pattern mining on modern and emerging processors. Int. J. Very Large Databases 16(1), 77–96 (2006)

    Article  Google Scholar 

  57. Gonnet G.H., Baeza-Yates R.: Handbook of Algorithms and Data Structures: in Pascal and C. 2nd edn. Addison-Wesley, Boston, Massachusetts, United States (1991)

    Google Scholar 

  58. Graefe, G., Bunker, R., Cooper, S.: Hash joins and hash teams in Microsoft SQL server. In: Gupta A., Shmueli O., Widom J. (eds.) Proceedings of International Conference on Very Large Databases, pp. 86–97. New York City, New York, United States (1998)

  59. Granston, E.D., Wijshoff, H.A.G.: Managing pages in shared virtual memory systems: getting the compiler into the game. In: Proceedings of International Conference on Supercomputing, pp. 11–20. Tokyo, Japan (1993)

  60. Hallberg, J., Palm, T., Brorsson, M.: Cache-conscious allocation of pointer-based data structures revisited with HW/SW prefetching. In: Second Annual Workshop on Duplicating, Deconstructing, and Debunking. San Diego, California, United States (2003)

  61. Han, J., Pei, J., Yin, Y.: Mining frequent patterns without candidate generation. In: ACM SIGMOD International Conference on Management of Data, pp. 1–12. Dallas, Texas, United States (2000)

  62. Harman D.: Overview of the second text retrieval conference (TREC-2). Inf. Process. Manag. 31(3), 271–289 (1995)

    Article  Google Scholar 

  63. Heinz S., Zobel J., Williams H.E.: Burst tries: a fast, efficient data structure for string keys. ACM Trans. Inf. Syst. 20(2), 192–223 (2002)

    Article  Google Scholar 

  64. Hewlett-Packard: Programming with Judy: C language Judy version 4.0. Tech. rep., HP Part Number: B6841-90001 (2001). http://docs.hp.com/en/B6841-90001/index.html

  65. Hughes C.J., Adve S.V.: Memory-side prefetching for linked data structures for processor-in-memory systems. J. Parallel Distrib. Comput. 65(4), 448–463 (2005)

    Article  MATH  Google Scholar 

  66. Joseph, D., Grunwald, D.: Prefetching using Markov predictors. In: Proceedings of International Symposium on Computer Architecture, pp. 252–263. Denver, Colorado, United States (1997)

  67. Karlsson, M., Dahlgren, F., Stenstrom, P.: A prefetching technique for irregular accesses to linked data structures. In: Proceedings of Symposium on High-Performance Computer Architecture, pp. 206–217. Toulouse, France (2000)

  68. Kerns, D.R., Eggers, S.J.: Balanced scheduling: instruction scheduling when memory latency is uncertain. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 278–289. Albuquerque, New Mexico, United States (1993)

  69. Knessl, C., Szpankowski, W.: A note on the asymptotic behavior of the height in B-tries for B large. Electron. J. Comb. 7(R39) (2000)

  70. Knuth D.E.: The Art of Computer Programming: Sorting and Searching, vol. 3. 2nd edn. Addison-Wesley, Longman, Reading, London (1998)

    Google Scholar 

  71. Kumar, P.: Cache oblivious algorithms. In: Algorithms for Memory Hierarchies, Lecture Notes in Computer Science, vol. 2625, pp. 193–212. Springer (2002)

  72. Ladner, R.E., Fortna, R., Nguyen, B.: A comparison of cache aware and cache oblivious static search trees using program instrumentation. In: Experimental Algorithmics: From Algorithm Design to Robust and Efficient Software, pp. 78–92. New York City, New York, United States (2002)

  73. Lattner, C., Adve, V.: Automatic pool allocation: improving performance by controlling data structure layout in the heap. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 129–142. Chicago, Illinois, United States (2005)

  74. Lipasti, M.H., Schmidt, W.J., Kunkel, S.R., Roediger, R.R.: Spiad: Software prefetching in pointer and call-intensive environments. In: Proceedings of Annual ACM/IEEE MICRO International Symposium on Microarchitecture, pp. 252–263. Ann Arbor, Michigan, United States (1995)

  75. Loshin D.: Efficient Memory Programming. 1st edn. McGraw-Hill Professional, New York City, New York, United States (1998)

    Google Scholar 

  76. Luk, C.: Tolerating memory latency through software-controlled pre-execution in simultaneous multi-threading processors. In: Proceedings of International Symposium on Computer Architecture, pp. 40–51. Goteborg, Sweden (2001)

  77. Luk, C., Mowry, T.C.: Compiler-based prefetching for recursive data structures. In: Proceedings of International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 222–233. Cambridge, Massachusetts, United States (1996)

  78. Maly K.: Compressed tries. Commun. ACM 19(7), 409–415 (1976)

    Article  MATH  MathSciNet  Google Scholar 

  79. McCreight E.M.: A space-economical suffix tree construction algorithm. J. ACM 23(2), 262–271 (1976)

    Article  MATH  MathSciNet  Google Scholar 

  80. Morrison D.R.: Patricia: a practical algorithm to retrieve information coded in alphanumeric. J. ACM 15(4), 514–534 (1968)

    Article  MathSciNet  Google Scholar 

  81. Mowry, T.C.: Tolerating latency through software-controlled data prefetching. Ph.D. thesis, Computer Systems Laboratory, Stanford University (1995)

  82. Muchnick S.S.: Advanced Compiler Design and Implementation. 1st edn. Morgan Kaufmann, San Francisco, California, United States (1997)

    Google Scholar 

  83. Nilsson, S., Tikkanen, M.: Implementing a dynamic compressed trie. In: Proceedings of Workshop on Algorithm Engineering, pp. 25–36. Saarbrucken, Germany (1998)

  84. Patterson D.A., Hennessy J.L.: Computer Organization and Design: The Hardware/Software Interface. 3rd edn. Morgan Kaufmann, San Francisco, California, United States (2005)

    MATH  Google Scholar 

  85. Ramakrishna, M.V., Zobel, J.: Performance in practice of string hashing functions. In: Proceedings of Symposium on Databases Systems for Advanced Applications, vol. 6, pp. 215–224. Melbourne, Australia (1997)

  86. Ramesh R., Babu A.J.G., Kincaid J.P.: Variable-depth trie index optimization: theory and experimental results. ACM Trans. Database Syst. 14(1), 41–74 (1989)

    Article  MATH  Google Scholar 

  87. Rao, J., Ross, K.A.: Cache conscious indexing for decision-support in main memory. In: Proceedings of International Conference on Very Large Databases, pp. 78–89. Morgan Kaufmann (1999)

  88. Rao, J., Ross, K.A.: Making B+-trees cache conscious in main memory. In: Proceedings of ACM SIGMOD International Conference on the Management of Data, pp. 475–486. Dallas, Texas, United States (2000)

  89. Roth, A., Moshovos, A., Sohi, G.S.: Dependence based prefetching for linked data structures. In: Proceeidngs of International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 115–126. San Jose, California, United States (1998)

  90. Roth, A., Sohi, G.S.: Effective jump-pointer prefetching for linked data structures. In: Proceedings of International Symposium on Computer Architecture, pp. 111–121. IEEE Computer Society Press (1999)

  91. Rubin, S., Bernstein, D., Rodeh, M.: Virtual cache line: a new technique to improve cache exploitation for recursive data structures. In: Proceedings of International Conference on Compiler Construction, pp. 259–273. Amsterdam, The Netherlands (1999)

  92. Sarwate D.V.: A note on universal classes of hash functions. Inf. Process. Lett. 10(1), 41–45 (1980)

    Article  MATH  MathSciNet  Google Scholar 

  93. Sedgewick R.: Algorithms in C, Parts 1–4: Fundamentals, Data structures, Sorting, and Searching. 3rd edn. Addison-Wesley, Boston Massachusetts, United States (1998)

    Google Scholar 

  94. Severance D.G.: Identifier search mechanisms: a survey and generalized model. ACM Comput. Surv. 6(3), 175–194 (1974)

    Article  MATH  Google Scholar 

  95. Shanley T.: The Unabridged Pentium 4: IA32 Processor Genealogy. 1st edn. Addison-Wesley, Boston, Massachusetts, United States (2004)

    Google Scholar 

  96. Silverstein, A.: Judy IV shop manual (2002). http://judy.sourceforge.net/

  97. Sinha, R.: Efficient sorting of large sets of strings. Ph.D. thesis, School of Computer Science and Information Technology, RMIT Univeristy Australia (2005)

  98. Sinha, R., Ring, D., Zobel, J.: Cache-efficient string sorting using copying. ACM J. Exp. Algorithmics 11(1.2) (2006)

  99. Sinha, R., Zobel, J.: Cache-conscious sorting of large sets of strings with dynamic tries. ACM J. Exp. Algorithmics 9(1.5) (2004)

  100. Stoutchinin, A., Amaral, J.N., Gao, G.R., Dehnert, J.C., Jain, S., Douillet, A.: Speculative prefetching of induction pointers. In: Proceedings of International Conference on Compiler Construction, pp. 289–303. Genova, Italy (2001)

  101. Szpankowski W.: On the height of digital trees and related problems. Algorithmica 6(2), 256–277 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  102. Truong, D.N., Bodin, F., Seznec, A.: Improving cache behavior of dynamically allocated data structures. In: Proceedings of International Conference on Parallel Architectures and Compilation Techniques, pp. 322–329. Paris, France (1998)

  103. Wang, Z., Burger, D., McKinley, K.S., Reinhardt, S.K., Weems, C.C.: Guided region prefetching: a cooperative hardware/software approach. In: Proceedings of International Symposium on Computer Architecture, pp. 388–398. San Diego, California, United States (2003)

  104. Williams H.E., Zobel J., Heinz S.: Self-adjusting trees in practice for large text collections. Softw. Pract. Exp. 31(10), 925–939 (2001)

    Article  MATH  Google Scholar 

  105. Yang C., Lebeck A.R., Tseng H., Lee C.: Tolerating memory latency through push prefetching for pointer-intensive applications. ACM Trans. Archit. Code Optim. 1(4), 445–475 (2004)

    Article  Google Scholar 

  106. Yotov, K., Roeder, T., Pingali, K., Gunnels, J., Gustavson, F.: An experimental comparison of cache-oblivious and cache-conscious programs. In: Proceedings of Symposium on Parallel Algorithms and Architectures, pp. 93–104. San Diego, California, USA (2007)

  107. Zhao Q., Rabbah R., Wong W.: Dynamic memory optimization using pool allocation and prefetching. ACM SIGARCH Comput. Archit. News 33(5), 27–32 (2005)

    Article  Google Scholar 

  108. Zobel J., Heinz S., Williams H.E.: In-memory hash tables for accumulating text vocabularies. Inf. Process. Lett. 80(6), 271– 277 (2001)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nikolas Askitis.

Additional information

A preliminary version of this paper appeared in “HAT-trie: A Cache-conscious Trie-based Data Structure for Strings”, Askitis and Sinha, Proceedings of ACSC, Ballarat Australia, pg. 97–105, 2007; and as Chapter 5 of “Efficient Data Structures for Cache Architectures”, PhD Thesis (available online, see page v. therein).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Askitis, N., Sinha, R. Engineering scalable, cache and space efficient tries for strings. The VLDB Journal 19, 633–660 (2010). https://doi.org/10.1007/s00778-010-0183-9

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00778-010-0183-9

Keywords

Navigation