2015
DOI: 10.1145/2858965.2814312
|View full text |Cite
|
Sign up to set email alerts
|

Optimizing hash-array mapped tries for fast and lean immutable JVM collections

Abstract: The data structures under-pinning collection API (e.g. lists, sets, maps) in the standard libraries of programming languages are used intensively in many applications.The standard libraries of recent Java Virtual Machine languages, such as Clojure or Scala, contain scalable and well-performing immutable collection data structures that are implemented as Hash-Array Mapped Tries (HAMTs). HAMTs already feature efficient lookup, insert, and delete operations, however due to their tree-based nature their memory foo… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
11
0

Year Published

2016
2016
2024
2024

Publication Types

Select...
3
1
1

Relationship

2
3

Authors

Journals

citations
Cited by 5 publications
(11 citation statements)
references
References 27 publications
0
11
0
Order By: Relevance
“…We would like to apply the methodology and techniques developed in this work to other persistent data structures. Specially interesting are other wide-node trie based random access containers, like HAMT [Bagwell 2001] andCHAMP [Steindorfer andVinju 2015]. We anticipate that the relatively sparse nature of those data-structures (compared to RRB-Vectors) makes some optimizations more costly ( § 6.3.4) and alternatives need to be developed.…”
Section: Future Workmentioning
confidence: 99%
“…We would like to apply the methodology and techniques developed in this work to other persistent data structures. Specially interesting are other wide-node trie based random access containers, like HAMT [Bagwell 2001] andCHAMP [Steindorfer andVinju 2015]. We anticipate that the relatively sparse nature of those data-structures (compared to RRB-Vectors) makes some optimizations more costly ( § 6.3.4) and alternatives need to be developed.…”
Section: Future Workmentioning
confidence: 99%
“…Recent work has focused on optimizing the sets (which are also used for relations) and maps in Rascal [31,32], with the latter [32] using control-flow graphs extracted by PHP AiR as part of the evaluation dataset. Work on PHP AiR has also led to improvements in Rascal libraries for statistics, for accessing external data sources, and for serializing large volumes of data.…”
Section: Implementation Challengesmentioning
confidence: 99%
“…This also enables easy experimentation at the algorithmic level. Memory performance is critical for this [31,32] since a common reason to not use such straightforward implementations is to increase performance.…”
Section: Lessons Learned and Future Directionsmentioning
confidence: 99%
See 1 more Smart Citation
“…HAMTs constitute the basis for purely functional collections that are incrementally constructed and may refer to the unaltered parts of previous states [11,20]. In previous work we introduced the Compressed Hash-Array Mapped Prefixtree (CHAMP) [28], a cache-oblivious and canonical HAMT variant that improves the runtime efficiency of iteration (1.3-6.7 x) and equality checking (3-25.4 x) over its predecessor, while at the same time reducing memory footprints.…”
Section: Related Workmentioning
confidence: 99%