## Bkd-tree: A dynamic scalable kd-tree (2003)

### Cached

### Download Links

Venue: | In Proc. International Symposium on Spatial and Temporal Databases |

Citations: | 26 - 11 self |

### BibTeX

@INPROCEEDINGS{Procopiuc03bkd-tree:a,

author = {Octavian Procopiuc and Pankaj K. Agarwal and Lars Arge and Jeffrey Scott Vittery},

title = {Bkd-tree: A dynamic scalable kd-tree},

booktitle = {In Proc. International Symposium on Spatial and Temporal Databases},

year = {2003},

pages = {46--65}

}

### Years of Citing Articles

### OpenURL

### Abstract

### Citations

2306 | R-trees: a dynamic index structure for spatial searching
- Guttman
- 1984
(Show Context)
Citation Context ...sional point indexing structures supporting window queries have been proposed, most of which can also answer a host of other query types. They include K-D-B-trees [22], hB-trees [18, 10], and R-trees =-=[13, 6]. Ifsis the total number of-=- points and ¡ is the number of points that fit in a disk block, ¢¤£¦¥s¨§©¡�����§©¡�� is the theoretical lower bound on the number of I/Os needed by a linear space index to a... |

1209 | The design and analysis of spatial data structures - Samet - 1990 |

1181 |
Multidimensional binary search trees in database applications
- Bentley
- 1979
(Show Context)
Citation Context ...xternal memory, many of them are adaptations of structures designed for main memory. In this paper we only focus on external memory adaptations of the original main memory kd-tree proposed by Bentley =-=[7]-=- (see also [23]). External-Memory Dynamic kd-trees. While static versions of the kd-tree have been shown to have excellent query performance in many practical situations, an efficient dynamic version ... |

1013 | The R*-Tree: An Efficient and Robust Access Method for Points and Rectangles
- Beckmann, Kriegel, et al.
- 1990
(Show Context)
Citation Context ...sional point indexing structures supporting window queries have been proposed, most of which can also answer a host of other query types. They include K-D-B-trees [22], hB-trees [18, 10], and R-trees =-=[13, 6]. Ifsis the total number of-=- points and ¡ is the number of points that fit in a disk block, ¢¤£¦¥s¨§©¡�����§©¡�� is the theoretical lower bound on the number of I/Os needed by a linear space index to a... |

581 | Multidimensional Access Methods - Gaede, Günther - 1998 |

551 |
The input/output complexity of sorting and related problems
- Aggarwal, Vitter
- 1988
(Show Context)
Citation Context ...input point is read twice and written twice on every level, the algorithm performs �¤£ £� ¨§©¡�� ����� ¦ £s¨§©¡ � � I/Os, plus the cost of sorting, which is �¤£=-= £� ¨§©¡�� � � � ¢¦¤ � £� ¨§©¡��¦� I/Os [2], for a total of �¤£¦£-=-� ¨§ ¡ � � � � ¦ £s§ ¡ � � I/Os. Algorithm Bulk Load (binary) (1) Create two sorted lists; (2) Build kd-tree top-down: Starting with the root node, do the following steps for eac... |

396 |
The K-D-B-Tree: A Search Structure for Large Multidimensional Dynamic Indexes
- Robinson
- 1981
(Show Context)
Citation Context ...pace utilization and excellent query and update performance regardless of the number of updates performed on it. The Bkd-tree is based on a well-known extensions of the kd-tree, called the K-D-B-tree =-=[22]-=-, and on the so-called logarithmic method for making a static structure dynamic. As we show through extensive experimental studies, the Bkd-tree is able to achieve the almost 100% space utilization an... |

391 | The grid file: An adaptable, symmetric multikey file structure - Nievergelt, Hinterberger, et al. - 1984 |

186 | The hB-tree: A multiattribute indexing method with good guaranteed performance
- Lomet, Salzberg
- 1990
(Show Context)
Citation Context ... efficient multi-dimensional point indexing structures supporting window queries have been proposed, most of which can also answer a host of other query types. They include K-D-B-trees [22], hB-trees =-=[18, 10], and R-trees [13, 6]. Ifsi-=-s the total number of points and ¡ is the number of points that fit in a disk block, ¢¤£¦¥s¨§©¡�����§©¡�� is the theoretical lower bound on the number of I/Os needed by a li... |

131 |
The Design of Dynamic Data Structures
- Overmars
- 1983
(Show Context)
Citation Context ...formance. The main ingredients used in the design of the Bkd-tree are an I/O-efficient KD-B-tree bulk loading algorithm and the so-called logarithmic method for making a static data structure dynamic =-=[8, 21]. Instead of mainta-=-ining one tree and dynamically rebalance it after an insertion, we maintain a ����� ¦s£� ¨§ � set of static K-D-B-trees and perform updates by rebuilding a carefully chosen set of t... |

82 | External memory data structures
- Arge
- 2002
(Show Context)
Citation Context ...tically, in �¤£��������� �� I/Os, but they are of limited practical interest because a theoretical analysis shows that their average query performance is close to the worst-=-=case performance. See e.g. [11, 3]-=- for more complete surveys of multi-dimensional indexing structures. While some of the above indexing structures are specifically designed for external memory, many of them are adaptations of structur... |

81 |
Decomposable searching problems
- Bentley
- 1979
(Show Context)
Citation Context ...formance. The main ingredients used in the design of the Bkd-tree are an I/O-efficient KD-B-tree bulk loading algorithm and the so-called logarithmic method for making a static data structure dynamic =-=[8, 21]. Instead of mainta-=-ining one tree and dynamically rebalance it after an insertion, we maintain a ����� ¦s£� ¨§ � set of static K-D-B-trees and perform updates by rebuilding a carefully chosen set of t... |

79 | Two-dimensional indexability and optimal range search indexing
- Arge, Samoladas, et al.
- 1999
(Show Context)
Citation Context ...an seriously deteriorate after a large number of updates. Recently, a number of linear space structures with guaranteed worst-case efficient query and update performance have been developed (see e.g. =-=[5, 15, 12]). The so-called cross-tree-=-s [12] and O-trees [15] answer window queries in the optimal number of I/Os and can be updated, theoretically, in �¤£��������� �� I/Os, but they are of limited practical int... |

60 | The log-structured merge-tree (lsm-tree
- O’Neil, Cheng, et al.
- 1996
(Show Context)
Citation Context ...ts). This way we maintain the close to 100% space utilization of the static K-D-B-tree. The idea of maintaining multiple trees in order to speed up insertion time has also been used by O’Neill et al=-=. [20]-=- and Jagadish et al. [14]. Their structures are used for indexing points on a single attribute and their techniques cannot be extended to efficiently handle multidimensional points. To answer a window... |

49 | Improving the query performance of highdimensional index structures by bulk load operations
- Berchtold, Böhm, et al.
- 1998
(Show Context)
Citation Context ...dates are performed on them, and the problem of handling massive update loads while maintaining high space utilization and low query response time has been recognized as an important research problem =-=[9]. ��� ����� -=-� � Supported by the National Science Foundation through research grant EIA–9870734 and by the Army Research Office through MURI grant DAAH04–96–1–0013. Part of this work was done while vi... |

37 |
Worst-case analysis for region and partial region searches in multidimensional binary search trees and balanced quad trees
- Lee, Wong
- 1977
(Show Context)
Citation Context ...ves are stored in the leaves, which form a partition of the plane into disjoint rectangular regions containing one point each. In the worst case a window query on a kd-tree requires �¤£��s��=-=������ time [16]-=-, but average case analysis [24] and experiments have shown that in practice it often performs 3 For simplicity we only consider two-dimensional kd-trees in this paper. However, all our results work i... |

33 | Implementing I/O-efficient data structures using TPIE
- Arge, Procopiuc, et al.
(Show Context)
Citation Context ... the setup for our experimental studies, providing detailed information on the software, hardware, and data sets that were used. Software Platform. We implemented the Bkd-tree in C++ using TPIE. TPIE =-=[4]-=- is a templated library that provides support for implementing I/O-efficient algorithms and data structures. In our implementation we used a block size of 16KB for internal nodes (following the sugges... |

27 |
The design of dynamic data structures, volume 156
- Overmars
(Show Context)
Citation Context ...ormance. The main ingredients used in the design of the Bkd-tree are an I/O-efficient K-D-B-tree bulk loading algorithm and the so-called logarithmic method for making a static data structure dynamic =-=[8, 21]-=-. Instead of maintaining one tree and dynamically rebalance it after an insertion, we maintain a set of log2(N/M) static K-D-B-trees and perform updates by rebuilding a carefully chosen set of the str... |

26 | Optimal dynamic range searching in non-replicating index structures
- Kanth, Singh
- 1999
(Show Context)
Citation Context ...ber of points and ¡ is the number of points that fit in a disk block, ¢¤£¦¥s¨§©¡�����§©¡�� is the theoretical lower bound on the number of I/Os needed by a linear space inde=-=x to answer a window query [15]. -=-Here � is the number of points in the query rectangle. In practice, the above indexing structures often answer queries in much fewer I/Os. However, their query performance can seriously deteriorate ... |

23 | A framework for index bulk loading and dynamization
- Agarwal, Arge, et al.
- 2001
(Show Context)
Citation Context ...sponding to ¥ the leaves; (3) Build the bottom levels either in main memory or by recursing step (2). Fig. 2. Two algorithms for bulk loading a kd-tree An improved bulk loading method was proposed in=-= [1]. Instead of constructing-=- one level at a time, this algorithm �¤£������ ¦s£ § ¡ �¦� constructs an entire -height subtree of the kd-tree at a time. The major steps of the algorithm are outlined in Figu... |

21 | Efficient cross-tree for external memory, in
- Grossi, Italiano
- 1999
(Show Context)
Citation Context ...an seriously deteriorate after a large number of updates. Recently, a number of linear space structures with guaranteed worst-case efficient query and update performance have been developed (see e.g. =-=[5, 15, 12]). The so-called cross-tree-=-s [12] and O-trees [15] answer window queries in the optimal number of I/Os and can be updated, theoretically, in �¤£��������� �� I/Os, but they are of limited practical int... |

20 | Incremental Organization for Data Recording and Warehousing
- Jagadish, Narayan, et al.
- 1997
(Show Context)
Citation Context ... the close to 100% space utilization of the static K-D-B-tree. The idea of maintaining multiple trees in order to speed up insertion time has also been used by O’Neill et al. [20] and Jagadish et al=-=. [14]-=-. Their structures are used for indexing points on a single attribute and their techniques cannot be extended to efficiently handle multidimensional points. To answer a window query using the Bkd-tree... |

15 |
technical documentation
- files
- 1992
(Show Context)
Citation Context ...phasize the running times of the Bkd-tree for data sets much larger than main memory.sData Sets. We chose three different types of point sets for our experiments: real points from the TIGER/Line data =-=[25], uniformly d-=-istributed points, and points along a diagonal of a square. The real data consists of six sets of points generated from the road features in the TIGER/Line files. TIGER Set � , ��� � �¡s,... |

12 | The hB -tree: A multiattribute index supporting concurrency, recovery and node consolidation
- EVANGELIDIS, LOMET, et al.
- 1997
(Show Context)
Citation Context ... efficient multi-dimensional point indexing structures supporting window queries have been proposed, most of which can also answer a host of other query types. They include K-D-B-trees [22], hB-trees =-=[18, 10], and R-trees [13, 6]. Ifsi-=-s the total number of points and ¡ is the number of points that fit in a disk block, ¢¤£¦¥s¨§©¡�����§©¡�� is the theoretical lower bound on the number of I/Os needed by a li... |

11 |
B-tree Page Size When Caching is Considered
- Lomet
- 1998
(Show Context)
Citation Context ... library that provides support for implementing I/O-efficient algorithms and data structures. In our implementation we used a block size of 16KB for internal nodes (following the suggestions of Lomet =-=[17] for -=-the B-tree), resulting in a maximum fanout of 512. The leaves of a kd-tree, stored in 16KB blocks as well, contain a maximum of 1364 £ key� pointer� elements. We implemented the Bkd-tree using th... |

6 |
The hBπ tree: A multiattribute index supporting concurrency, recovery and node consolidation
- Evangelidis, Lomet, et al.
- 1997
(Show Context)
Citation Context ...y efficient multi-dimensional point indexing structures supporting window queries have been proposed, most of which can also answer a host of other query types. They include K-D-B-trees [22], hBtrees =-=[18, 10]-=-, and R-trees [13, 6]. If N is the total number of points and B is the number of points that fit in a disk block, Ω( � N/B + K/B) is the theoretical lower bound on the number of I/Os needed by a linea... |

3 |
Average case analysis of region search in balanced k-d trees
- Filho
- 1979
(Show Context)
Citation Context ...ich form a partition of the plane into disjoint rectangular regions containing one point each. In the worst case a window query on a kd-tree requires �¤£��s������ time [16], but av=-=erage case analysis [24] a-=-nd experiments have shown that in practice it often performs 3 For simplicity we only consider two-dimensional kd-trees in this paper. However, all our results work in � dimensions.smuch better. One... |

1 |
A framework for index bulk loadingand dynamization
- Agarwal, Arge, et al.
- 1988
(Show Context)
Citation Context ...-sponding to the t leaves; (3) Build the bottom levels either in mainmemory or by recursing step (2). Fig. 2. Two algorithms for bulk loading a kd-tree An improved bulk loading method was proposed in =-=[1]-=-. Instead of constructing onelevel at a time, this algorithm constructs an entire \Theta (log2(M=B))-height subtree ofthe kd-tree at a time. The major steps of the algorithm are outlined in Figure 2 (... |

1 |
bulk loading and dynamization
- Aframeworkforindex
- 2001
(Show Context)
Citation Context ...algorithm performs O((N/B)log 2(N/B)) I/Os, plus the cost of sorting, which is O((N/B)log M/B (N/B)) I/Os [2], for a total of O((N/B)log 2 (N/B)) I/Os. An improved bulk loading method was proposed in =-=[1]-=-. Instead of constructing one level at a time, this algorithm constructs an entire Θ(log 2 (M/B))-height subtree of the kd-tree at a time. The major steps of the algorithm are outlined in Figure 2 (ri... |