Affiliation:
1. Stony Brook University, Stony Brook, NY
Abstract
The
packed-memory array
(
PMA
) is a data structure that maintains a dynamic set of
N
elements in sorted order in a Θ(
N
)-sized array. The idea is to intersperse Θ(
N
) empty spaces or
gaps
among the elements so that only a small number of elements need to be shifted around on an insert or delete. Because the elements are stored physically in sorted order in memory or on disk, the PMA can be used to support extremely efficient range queries. Specifically, the cost to scan
L
consecutive elements is
O
(1 +
L
/
B
) memory transfers.
This article gives the first
adaptive packed-memory array
(
APMA
), which automatically adjusts to the input pattern. Like the traditional PMA, any pattern of updates costs only
O
(log
2
N
) amortized element moves and
O
(1 + (log
2
N
)/
B
) amortized memory transfers per update. However, the APMA performs even better on many common input distributions achieving only
O
(log
N
) amortized element moves and
O
(1+ (log
N
)/
B
) amortized memory transfers. The article analyzes
sequential
inserts, where the insertions are to the front of the APMA,
hammer
inserts, where the insertions “hammer” on one part of the APMA,
random
inserts, where the insertions are after random elements in the APMA, and
bulk
inserts, where for constant α ϵ [0, 1],
N
α
elements are inserted after random elements in the APMA. The article then gives simulation results that are consistent with the asymptotic bounds. For sequential insertions of roughly 1.4 million elements, the APMA has four times fewer element moves per insertion than the traditional PMA and running times that are more than seven times faster.
Publisher
Association for Computing Machinery (ACM)
Cited by
38 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. GPU-Accelerated Batch-Dynamic Subgraph Matching;2024 IEEE 40th International Conference on Data Engineering (ICDE);2024-05-13
2. Layered List Labeling;Proceedings of the ACM on Management of Data;2024-05-10
3. LSGraph: A Locality-centric High-performance Streaming Graph Engine;Proceedings of the Nineteenth European Conference on Computer Systems;2024-04-22
4. Online List Labeling: Breaking the \({\log^2 n}\) Barrier;SIAM Journal on Computing;2024-04-11
5. TgStore: An Efficient Storage System for Large Time-Evolving Graphs;IEEE Transactions on Big Data;2024-04