Results 1  10
of
21
External Memory Algorithms and Data Structures
, 1998
"... Data sets in large applications are often too massive to fit completely inside the computer's internal memory. The resulting input/output communication (or I/O) between fast internal memory and slower external memory (such as disks) can be a major performance bottleneck. In this paper, we surve ..."
Abstract

Cited by 360 (23 self)
 Add to MetaCart
(Show Context)
Data sets in large applications are often too massive to fit completely inside the computer's internal memory. The resulting input/output communication (or I/O) between fast internal memory and slower external memory (such as disks) can be a major performance bottleneck. In this paper, we survey the state of the art in the design and analysis of external memory algorithms and data structures (which are sometimes referred to as "EM" or "I/O" or "outofcore" algorithms and data structures). EM algorithms and data structures are often designed and analyzed using the parallel disk model (PDM). The three machineindependent measures of performance in PDM are the number of I/O operations, the CPU time, and the amount of disk space. PDM allows for multiple disks (or disk arrays) and parallel CPUs, and it can be generalized to handle tertiary storage and hierarchical memory. We discuss several important paradigms for how to solve batched and online problems efficiently in external memory. Programming tools and environments are available for simplifying the programming task. The TPIE system (Transparent Parallel I/O programming Environment) is both easy to use and efficient in terms of execution speed. We report on some experiments using TPIE in the domain of spatial databases. The newly developed EM algorithms and data structures that incorporate the paradigms we discuss are significantly faster than methods currently used in practice.
Making data structures persistent
, 1989
"... This paper is a study of persistence in data structures. Ordinary data structures are ephemeral in the sense that a change to the structure destroys the old version, leaving only the new version available for use. In contrast, a persistent structure allows access to any version, old or new, at any t ..."
Abstract

Cited by 288 (6 self)
 Add to MetaCart
(Show Context)
This paper is a study of persistence in data structures. Ordinary data structures are ephemeral in the sense that a change to the structure destroys the old version, leaving only the new version available for use. In contrast, a persistent structure allows access to any version, old or new, at any time. We develop simple, systematic, and efftcient techniques for making linked data structures persistent. We use our techniques to devise persistent forms of binary search trees with logarithmic access, insertion, and deletion times and O (1) space bounds for insertion and deletion.
Optimal Dynamic Interval Management in External Memory (Extended Abstract)
 IN PROC. IEEE SYMP. ON FOUNDATIONS OF COMP. SCI
, 1996
"... We present a space and I/Ooptimal externalmemory data structure for answering stabbing queries on a set of dynamically maintained intervals. Our data structure settles an open problem in databases and I/O algorithms by providing the first optimal externalmemory solution to the dynamic interval m ..."
Abstract

Cited by 81 (20 self)
 Add to MetaCart
We present a space and I/Ooptimal externalmemory data structure for answering stabbing queries on a set of dynamically maintained intervals. Our data structure settles an open problem in databases and I/O algorithms by providing the first optimal externalmemory solution to the dynamic interval management problem, which is a special case of 2dimensional range searching and a central problem for objectoriented and temporal databases and for constraint logic programming. Our data structure simultaneously uses optimal linear space (that is, O(N/B) blocks of disk space) and achieves the optimal O(log B N + T/B) I/O query bound and O(log B N ) I/O update bound, where B is the I/O block size and T the number of elements in the answer to a query. Our structure is also the first optimal external data structure for a 2dimensional range searching problem that has worstcase as opposed to amortized update bounds. Part of the data structure uses a novel balancing technique for efficient worstcase manipulation of balanced trees, which is of independent interest.
Optimal external memory interval management
 SIAM Journal on Computing
"... This work has been made available by the University of Kansas ..."
Abstract

Cited by 50 (7 self)
 Add to MetaCart
(Show Context)
This work has been made available by the University of Kansas
Efficient ExternalMemory Data Structures and Applications
, 1996
"... In this thesis we study the Input/Output (I/O) complexity of largescale problems arising e.g. in the areas of database systems, geographic information systems, VLSI design systems and computer graphics, and design I/Oefficient algorithms for them. A general theme in our work is to design I/Oeffic ..."
Abstract

Cited by 40 (9 self)
 Add to MetaCart
(Show Context)
In this thesis we study the Input/Output (I/O) complexity of largescale problems arising e.g. in the areas of database systems, geographic information systems, VLSI design systems and computer graphics, and design I/Oefficient algorithms for them. A general theme in our work is to design I/Oefficient algorithms through the design of I/Oefficient data structures. One of our philosophies is to try to isolate all the I/O specific parts of an algorithm in the data structures, that is, to try to design I/O algorithms from internal memory algorithms by exchanging the data structures used in internal memory with their external memory counterparts. The results in the thesis include a technique for transforming an internal memory tree data structure into an external data structure which can be used in a batched dynamic setting, that is, a setting where we for example do not require that the result of a search operation is returned immediately. Using this technique we develop batched dynamic external versions of the (onedimensional) rangetree and the segmenttree and we develop an external priority queue. Following our general philosophy we show how these structures can be used in standard internal memory sorting algorithms
Discrete Loops and Worst Case Performance
 Computer Languages
, 1994
"... In this paper socalled discrete loops are introduced which narrow the gap between general loops (e.g. while or repeatloops) and forloops. Alt hough discrete loops can be used for applications that would otherwise require general loops, discrete loops are known to complete in any case. Furthe ..."
Abstract

Cited by 18 (7 self)
 Add to MetaCart
(Show Context)
In this paper socalled discrete loops are introduced which narrow the gap between general loops (e.g. while or repeatloops) and forloops. Alt hough discrete loops can be used for applications that would otherwise require general loops, discrete loops are known to complete in any case. Furthermore it is possible to determine the number of iterations of a discrete loop, while this is trivial to do for forloops and extremely difficult for general loops. Thus discrete loops form an ideal framework for determining the worst case timing behavior of a program and they are especially useful in implementing realtime systems and proving such systems correct.
WorstCase Space and Time Complexity of Recursive Procedures
"... The purpose of this paper is to show that recursive procedures can be used for implementing realtime applications without harm, if a few conditions are met. These conditions ensure that upper bounds for space and time requirements can be derived at compile time. Moreover they are simple enough such ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
The purpose of this paper is to show that recursive procedures can be used for implementing realtime applications without harm, if a few conditions are met. These conditions ensure that upper bounds for space and time requirements can be derived at compile time. Moreover they are simple enough such that many important recursive algorithms can be implemented, for example Mergesort or recursive treetraversal algorithms. In addition,
Biased Finger Trees and ThreeDimensional Layers of Maxima
, 1994
"... We present a method for maintaining biased search trees so as to support fast finger updates (i.e., updates in which one is given a pointer to the part of the tree being changed). We illustrate the power of such biased finger trees by showing how they can be used to derive an optimal O(n log n) algo ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
We present a method for maintaining biased search trees so as to support fast finger updates (i.e., updates in which one is given a pointer to the part of the tree being changed). We illustrate the power of such biased finger trees by showing how they can be used to derive an optimal O(n log n) algorithm for the 3dimensional layersofmaxima problem and also obtain an improved method for dynamic point location.
Kinetic and Dynamic Data Structures for Closest Pairs and All Nearest Neighbors
, 2008
"... We present simple, fully dynamic and kinetic data structures, which are variants of a dynamic twodimensional range tree, for maintaining the closest pair and all nearest neighbors for a set of n moving points in the plane; insertions and deletions of points are also allowed. If no insertions or del ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
We present simple, fully dynamic and kinetic data structures, which are variants of a dynamic twodimensional range tree, for maintaining the closest pair and all nearest neighbors for a set of n moving points in the plane; insertions and deletions of points are also allowed. If no insertions or deletions take place, the structure for the closest pair uses O(n log n) space, and processes O(n 2 βs+2(n) log n) critical events, each in O(log 2 n) time. Here s is the maximum number of times where the distances between any two specific pairs of points can become equal, βs(q) = λs(q)/q, and λs(q) is the maximum length of DavenportSchinzel sequences of order s on q symbols. The dynamic version of the problem incurs a slight degradation in performance: If m ≥ n insertions and deletions are performed, the structure still uses O(n log n) space, and processes O(mnβs+2(n) log³ n) events, each in O(log³ n) time. Our kinetic data structure for all nearest neighbors uses O(n log² n) space, and processes O(n 2 β 2 s+2 (n) log3 n) critical events. The expected time to process all events is O(n 2 β 2 s+2 (n) log4 n), though processing a single event may take �(n) expected time in the worst case. If m ≥ n insertions and deletions are performed, then the expected number of events is O(mnβ 2 s+2 (n) log3 n) and processing them all takes O(mnβ 2 s+2 (n) log4 n). An insertion or deletion takes O(n) expected time.
RankBalanced Trees
"... Abstract. Since the invention of AVL trees in 1962, a wide variety of ways to balance binary search trees have been proposed. Notable are redblack trees, in which bottomup rebalancing after an insertion or deletion takes O(1) amortized time and O(1) rotations worstcase. But the design space of ba ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
Abstract. Since the invention of AVL trees in 1962, a wide variety of ways to balance binary search trees have been proposed. Notable are redblack trees, in which bottomup rebalancing after an insertion or deletion takes O(1) amortized time and O(1) rotations worstcase. But the design space of balanced trees has not been fully explored. We introduce the rankbalanced tree, a relaxation of AVL trees. Rankbalanced trees can be rebalanced bottomup after an insertion or deletion in O(1) amortized time and at most two rotations worstcase, in contrast to redblack trees, which need up to three rotations per deletion. Rebalancing can also be done topdown with fixed lookahead in O(1) amortized time. Using a novel analysis that relies on an exponential potential function, we show that both bottomup and topdown rebalancing modify nodes exponentially infrequently in their heights. 1