Results 1 - 10
of
34
Cache-oblivious B-trees
, 2000
"... Abstract. This paper presents two dynamic search trees attaining near-optimal performance on any hierarchical memory. The data structures are independent of the parameters of the memory hierarchy, e.g., the number of memory levels, the block-transfer size at each level, and the relative speeds of me ..."
Abstract
-
Cited by 119 (21 self)
- Add to MetaCart
Abstract. This paper presents two dynamic search trees attaining near-optimal performance on any hierarchical memory. The data structures are independent of the parameters of the memory hierarchy, e.g., the number of memory levels, the block-transfer size at each level, and the relative speeds of memory levels. The performance is analyzed in terms of the number of memory transfers between two memory levels with an arbitrary block-transfer size of B; this analysis can then be applied to every adjacent pair of levels in a multilevel memory hierarchy. Both search trees match the optimal search bound of Θ(1+logB+1 N) memory transfers. This bound is also achieved by the classic B-tree data structure on a two-level memory hierarchy with a known block-transfer size B. The first search tree supports insertions and deletions in Θ(1 + logB+1 N) amortized memory transfers, which matches the B-tree’s worst-case bounds. The second search tree supports scanning S consecutive elements optimally in Θ(1 + S/B) memory transfers and supports insertions and deletions in Θ(1 + logB+1 N + log2 N) amortized memory transfers, matching the performance of the B-tree for B = B Ω(log N log log N).
The skip quadtree: a simple dynamic data structure for multidimensional data
- In Proc. 21st ACM Symposium on Computational Geometry
, 2005
"... We present a new multi-dimensional data structure, which we call the skip quadtree (for point data in R 2) or the skip octree (for point data in R d, with constant d> 2). Our data structure combines the best features of two well-known data structures, in that it has the well-defined “box”-shaped reg ..."
Abstract
-
Cited by 25 (5 self)
- Add to MetaCart
We present a new multi-dimensional data structure, which we call the skip quadtree (for point data in R 2) or the skip octree (for point data in R d, with constant d> 2). Our data structure combines the best features of two well-known data structures, in that it has the well-defined “box”-shaped regions of region quadtrees and the logarithmic-height search and update hierarchical structure of skip lists. Indeed, the bottom level of our structure is exactly a region quadtree (or octree for higher dimensional data). We describe efficient algorithms for inserting and deleting points in a skip quadtree, as well as fast methods for performing point location and approximate range queries. 1
Efficient Authenticated Dictionaries with Skip Lists and Commutative Hashing
- TECH. REP., JOHNS HOPKINS INFORMATION SECURITY INSTITUTE
, 2001
"... We present an efficient and practical technique for dynamically maintaining an authenticated dictionary. The main building blocks of our scheme are the skip list data structure and cryptographic associative hash functions. Applications of our work include certificate revocation in public key infrast ..."
Abstract
-
Cited by 24 (10 self)
- Add to MetaCart
We present an efficient and practical technique for dynamically maintaining an authenticated dictionary. The main building blocks of our scheme are the skip list data structure and cryptographic associative hash functions. Applications of our work include certificate revocation in public key infrastructure and the the publication of data collections on the Internet.
Balanced search trees made simple
- In Proc. 3rd Workshop on Algorithms and Data Structures
, 1993
"... Abstract. As a contribution to the recent debate on simple implementations of dictionaries, we present new maintenance algorithms for balanced trees. In terms of code simplicity, our algorithms compare favourably with those for deterministic and probabilistic skip lists. ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
Abstract. As a contribution to the recent debate on simple implementations of dictionaries, we present new maintenance algorithms for balanced trees. In terms of code simplicity, our algorithms compare favourably with those for deterministic and probabilistic skip lists.
Biased Skip Lists
- Algorithmica
, 2004
"... We design a variation of skip lists that performs well for generally biased access sequences. ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
We design a variation of skip lists that performs well for generally biased access sequences.
Deterministic skipnet
- In Twenty Second ACM Symp. on Priciples of Distributed Computing (PODC
, 2003
"... We present a deterministic scalable overlay network. In contrast, most previous overlay networks use randomness or hashing (pseudo-randomness) to achieve a uniform distribution of data and routing traffic. ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
We present a deterministic scalable overlay network. In contrast, most previous overlay networks use randomness or hashing (pseudo-randomness) to achieve a uniform distribution of data and routing traffic.
Cache-Oblivious Streaming B-trees
, 2007
"... A streaming B-tree is a dictionary that efficiently implements insertions and range queries. We present two cache-oblivious streaming B-trees, the shuttle tree, and the cache-oblivious lookahead array (COLA). For block-transfer size B and on N elements, the shuttle tree implements searches in optima ..."
Abstract
-
Cited by 9 (4 self)
- Add to MetaCart
A streaming B-tree is a dictionary that efficiently implements insertions and range queries. We present two cache-oblivious streaming B-trees, the shuttle tree, and the cache-oblivious lookahead array (COLA). For block-transfer size B and on N elements, the shuttle tree implements searches in optimal O ` logB+1 N ´ transfers, range queries of L successive elements in optimal O ` logB+1 N + L/B ´ transfers, and insertions in O “ (logB+1 N)/BΘ(1/(loglogB)2 ”) +(log2 N)/B transfers, which is an asymptotic speedup over traditional B-trees if B ≥ (logN) 1+c/logloglog2 N for any constant c> 1. A COLA implements searches in O(logN) transfers, range queries in O(logN + L/B) transfers, and insertions in amortized O((logN)/B) transfers, matching the bounds for a (cache-aware) buffered repository tree. A partially deamortized COLA matches these bounds but reduces the worst-case insertion cost to O(logN) if memory size M = Ω(logN). We also present a cache-aware version of the COLA, the lookahead array, which achieves the same bounds as Brodal and Fagerberg’s (cache-aware) Bε-tree. We compare our COLA implementation to a traditional B-tree. Our COLA implementation runs 790 times faster for random insertions, 3.1 times slower for insertions of sorted data, and 3.5 times slower for searches.
Compressed perfect embedded skip lists for quick inverted-index lookups
- In Proc. SPIRE 2005, Lecture Notes in Computer Science
, 2005
"... Large inverted indices are by now common in the construction of web-scale search engines. For faster access, inverted indices are indexed internally so that it is possible to skip quickly over unnecessary documents. The classical approach to skipping dictates that a skip should be positioned every √ ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
Large inverted indices are by now common in the construction of web-scale search engines. For faster access, inverted indices are indexed internally so that it is possible to skip quickly over unnecessary documents. The classical approach to skipping dictates that a skip should be positioned every √ f document pointers, where f is the overall number of documents where the term appears. We argue that due to the growing size of the web more refined techniques are necessary, and describe how to embed a compressed perfect skip list in an inverted list. We provide statistical models that explain the empirical distribution of the skip data we observe in our experiments, and use them to devise good compression techniques that allow us to limit the waste in space, so that the resulting data structure increases the overall index size by just a few percents, still making it possible to index pointers with a rather fine granularity. 1
Minimizing makespan and preemption costs on a system of uniform machines
- In Proc. 10th European Symp. on Algorithms (ESA), volume 2461 of Lecture Notes in Comput. Sci
, 2002
"... Abstract. It is well known that for preemptive scheduling on uniform machines there exist polynomial time exact algorithms, whereas for non-preemptive scheduling there are probably no such algorithms. However, it is not clear how many preemptions (in total, or per job) suffice in order to guarantee ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Abstract. It is well known that for preemptive scheduling on uniform machines there exist polynomial time exact algorithms, whereas for non-preemptive scheduling there are probably no such algorithms. However, it is not clear how many preemptions (in total, or per job) suffice in order to guarantee an optimal polynomial time algorithm. In this paper we investigate exactly this hardness gap, formalized as two variants of the classic preemptive scheduling problem. In generalized multiprocessor scheduling (GMS) wehaveajob-wise or total bound on the number of preemptions throughout a feasible schedule. We need to find a schedule that satisfies the preemption constraints, such that the maximum job completion time is minimized. In minimum preemptions scheduling (MPS) the only feasible schedules are preemptive schedules with the smallest possible makespan. The goal is to find a feasible schedule that minimizes the overall number of preemptions. Both problems are NP-hard, even for two machines and zero preemptions. For GMS, we develop polynomial time approximation schemes, distinguishing between the cases where the number of machines is fixed, or given as part of the input. Our scheme for a fixed number of machines has linear running time, and can be applied also for instances where jobs have release dates, and for instances with arbitrary preemption costs. For MPS, we derive matching lower and upper bounds on the number of preemptions required by any optimal schedule. Our results for MPS hold for any instance in which a job, Jj, can be processed simultaneously by ρj machines, for some ρj ≥ 1.
Randomized splay trees: theoretical and experimental results
- Information Processing Letters
"... Abstract Splay trees are self-organizing binary search trees that were introduced by Sleator andTarjan [12]. In this paper we present a randomized variant of these trees. The new algorithm for reorganizing the tree is both simple and easy to implement. We prove that our randomizedsplaying scheme has ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Abstract Splay trees are self-organizing binary search trees that were introduced by Sleator andTarjan [12]. In this paper we present a randomized variant of these trees. The new algorithm for reorganizing the tree is both simple and easy to implement. We prove that our randomizedsplaying scheme has the same asymptotic performance as the original deterministic scheme but improves constants in the expected running time. This is interesting in practice becausethe search time in splay trees is typically higher than the search time in skip lists and AVLtrees. We present a detailed experimental study of our algorithm. On request sequencesgenerated by fixed probability distributions, we can achieve improvements of up to 25 % over deterministic splaying. On request sequences that exhibit high locality of reference, theimprovements are minor.

