Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1142351.1142355acmconferencesArticle/Chapter ViewAbstractPublication PagespodsConference Proceedingsconference-collections
Article

An adaptive packed-memory array

Published: 26 June 2006 Publication History

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 paper gives the first adaptive packed-memory array (APMA), which automatically adjusts to the input pattern. Like the original PMA, any pattern of updates costs only O(log2 N) amortized element moves and O(1+(log2 N)/B) amortized memory transfers per update. However, the APMA performs even better on many common input distributions achieving only O(logN) amortized element moves and O(1+(logN)/B) amortized memory transfers. The paper 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 paper 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.

References

[1]
M. A. Bender, R. Cole, E. D. Demaine, and M. Farach-Colton. Scanning and traversing: Maintaining data for traversals in a memory hierarchy. In Proc.10th Annual European Symposium on Algorithms (ESA), volume 2461 of Lecture Notes in Computer Science, pages 139--151, 2002.
[2]
M. A. Bender, E. D. Demaine, and M. Farach-Colton. Cache-oblivious B-trees. In Proc. 41st Annual Symposium on Foundations of Computer Science (FOCS), pages 399--409, 2000.
[3]
M. A. Bender, E. D. Demaine, and M. Farach-Colton. Cache-oblivious B-trees. SIAM Journal on Computing, 35(2):341--358, 2005.
[4]
M. A. Bender, Z. Duan, J. Iacono, and J. Wu. A locality-preserving cache-oblivious dynamic dictionary. In Proc. 13th Annual Symposium on Discrete Mathematics (SODA), pages 29--38, 2002.
[5]
M. A. Bender, Z. Duan, J. Iacono, and J. Wu. A locality-preserving cache-oblivious dynamic dictionary. Journal of Algorithms, 3(2):115--136, 2004.
[6]
M. A. Bender, M. Farach-Colton, and B. Kuszmaul. Cache-oblivious string B-trees. In Proc. 25th Symposium on Principles of Database Systems (PODS), 2006.
[7]
M. A. Bender, M. Farach-Colton, and M. Mosteiro. Insertion sort is O(n log n). In Proc. 3rd International Conference on Fun with Algorithms (FUN), pages 16--23, 2004.
[8]
M. A. Bender, J. T. Fineman, S. Gilbert, and B. C. Kuszmaul. Concurrent cache-oblivious B-trees. In Proc. 17th Annual Symposium on Parallelism in Algorithms and Architectures (SPAA), pages 228--237, 2005.
[9]
G. S. Brodal, R. Fagerberg, and R. Jacob. Cache oblivious search trees via binary trees of small height. In Proc. 13th Annual Symposium on Discrete Algorithms (SODA), pages 39--48, 2002.
[10]
P. F. Dietz. Maintaining order in a linked list. In Proc. Symposium on the Theory of Computing (STOC), pages 122--127, 1982.
[11]
P. F. Dietz, J. I. Seiferas, and J. Zhang. A tight lower bound for on-line monotonic list labeling. In Proc. 4th Scandinavian Workshop on Algorithm Theory (SWAT), volume 824 of Lecture Notes in Computer Science, pages 131--142, 1994.
[12]
P. F. Dietz and D. D. Sleator. Two algorithms for maintaining order in a list. In Proc. 19th Annual Symposium on Theory of Computing (STOC), pages 365--372, 1987.
[13]
P. F. Dietz and J. Zhang. Lower bounds for monotonic list labeling. In Proc. 2nd Scandinavian Workshop on Algorithm Theory (SWAT), volume 447 of Lecture Notes in Computer Science, 1990.
[14]
A. Itai, A. G. Konheim, and M. Rodeh. A sparse table implementation of priority queues. In Proc. 8th Internationl Colloquium on Automata, Languages, and Programming (ICALP), volume 115 of Lecture Notes in Computer Science, pages 417--431, 1981.
[15]
I. Katriel. Implicit data structures based on local reorganizations. Master's thesis, Technion -- Israel Inst. of Tech., Haifa, May 2002.
[16]
V. Raman. Locality-preserving dictionaries: theory and application to clustering in databases. In Proc. 18th Symposium on Principles of Database Systems (PODS), pages 337--345, 1999.
[17]
A. K. Tsakalidis. Maintaining order in a generalized linked list. Acta Informatica, 21(1):101--112, 1984.
[18]
D. Willard. Maintaining dense sequential files in a dynamic environment (extended abstract). In Proc. 14th Annual Symposium on Theory of Computing (STOC), pages 114--121, 1982.
[19]
D. E. Willard. Good worst-case algorithms for inserting and deleting records in dense sequential files. In Proc. International Conference on Management of Data (SIGMOD), pages 251--260, 1986.
[20]
D. E. Willard. A density control algorithm for doing insertions and deletions in a sequentially ordered file in good worst-case time. Information and Computation, 97(2):150--204, 1992.

Cited By

View all
  • (2024)Nearly Optimal List Labeling2024 IEEE 65th Annual Symposium on Foundations of Computer Science (FOCS)10.1109/FOCS61266.2024.00132(2253-2274)Online publication date: 27-Oct-2024
  • (2024)Meerkat: A Framework for Dynamic Graph Algorithms on GPUsInternational Journal of Parallel Programming10.1007/s10766-024-00774-z52:5-6(400-453)Online publication date: 1-Dec-2024
  • (2022)LSM-Subgraph: Log-Structured Merge-Subgraph for Temporal Graph ProcessingWeb and Big Data10.1007/978-3-031-25158-0_39(477-494)Online publication date: 11-Aug-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PODS '06: Proceedings of the twenty-fifth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
June 2006
382 pages
ISBN:1595933182
DOI:10.1145/1142351
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: 26 June 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. adaptive packed-memory array
  2. cache oblivious
  3. locality preserving
  4. packed-memory array
  5. range query
  6. rebalance
  7. sequential file maintenance
  8. sequential scan
  9. sparse array

Qualifiers

  • Article

Conference

SIGMOD/PODS06

Acceptance Rates

PODS '06 Paper Acceptance Rate 35 of 185 submissions, 19%;
Overall Acceptance Rate 642 of 2,707 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2024)Nearly Optimal List Labeling2024 IEEE 65th Annual Symposium on Foundations of Computer Science (FOCS)10.1109/FOCS61266.2024.00132(2253-2274)Online publication date: 27-Oct-2024
  • (2024)Meerkat: A Framework for Dynamic Graph Algorithms on GPUsInternational Journal of Parallel Programming10.1007/s10766-024-00774-z52:5-6(400-453)Online publication date: 1-Dec-2024
  • (2022)LSM-Subgraph: Log-Structured Merge-Subgraph for Temporal Graph ProcessingWeb and Big Data10.1007/978-3-031-25158-0_39(477-494)Online publication date: 11-Aug-2022
  • (2020)Dynamic Graphs on the GPU2020 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS47924.2020.00081(739-748)Online publication date: May-2020
  • (2020)START — Self-Tuning Adaptive Radix Tree2020 IEEE 36th International Conference on Data Engineering Workshops (ICDEW)10.1109/ICDEW49219.2020.00015(147-153)Online publication date: Apr-2020
  • (2017)Cost-Oblivious Storage ReallocationACM Transactions on Algorithms10.1145/307069313:3(1-20)Online publication date: 26-May-2017
  • (2014)Cost-oblivious storage reallocationProceedings of the 33rd ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems10.1145/2594538.2594548(278-288)Online publication date: 18-Jun-2014
  • (2012)A Compilation Framework for the Automatic Restructuring of Pointer-Linked Data StructuresHigh-Performance Scientific Computing10.1007/978-1-4471-2437-5_4(97-122)Online publication date: 2012
  • (2009)Automatic restructuring of linked data structuresProceedings of the 22nd international conference on Languages and Compilers for Parallel Computing10.1007/978-3-642-13374-9_18(263-277)Online publication date: 8-Oct-2009
  • (2008)A compile/run-time environment for the automatic transformation of linked list data structuresInternational Journal of Parallel Programming10.1007/s10766-008-0085-236:6(592-623)Online publication date: 1-Dec-2008
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media