Fully Dynamic Balanced and Distributed Search Trees with Logarithmic Costs (original) (raw)

Fully dynamic distributed search trees can be balanced in O (lg2 N) time

2002

In this paper we consider the dictionary problem in a message-passing distributed environment. We introduce a new version, based on AVL-trees, of distributed search trees, the first to be fully scalable, that is, able to both grow and shrink as long as keys are inserted and deleted. We prove that in the worst case a key can be inserted, searched, or deleted with O (lg 2N) messages. We show that for the introduced distributed search tree this bound is tight.

A SIMPLE BALANCED SEARCH TREE WITH O(1) WORST-CASE UPDATE TIME

International Journal of Foundations of Computer Science, 1996

In this paper we show how a slight modification of (a, 2b)-trees allows us to perform member and neighbor queries in O(log n) time and updates in O(1) worst-case time (once the position of the inserted or deleted key is known). Our data structure is quite natural and much simpler than previous worst-case optimal solutions. It is based on two techniques : 1) bucketing, i.e., storing an ordered list of 2 log n keys in each leaf of an (a, 2b) tree, and 2) preventive splitting, i.e., splitting nodes before they can grow bigger than allowed. If only insertions are allowed, it can also be used as a finger search tree with O(log * n) worst-case update time.

A Very Efficient Order Preserving Scalable Distributed Data Structure

Lecture Notes in Computer Science, 2001

SDDSs (Scalable Distributed Data Structures) are access methods specifically designed to satisfy the high performance requirements of a distributed computing environment made up by a collection of computers connected through a high speed network. In this paper we present and discuss performances of ADST, a new order preserving SDDS with a worst-case constant cost for exact-search queries, a worst-case logarithmic cost for update queries, and an optimal worst-case cost for range search queries of O(k) messages, where k is the number of servers covering the query range. Moreover, our structure has an amortized almost constant cost for any single-key query. Finally, our scheme can be easily generalized to manage k-dimensional points, while maintaining the same costs of the 1-dimensional case. We report experimental comparisons between ADST and its direct competitors (i.e., LH*, DRT, and RP*) where it is shown that ADST behaves clearly better. Furthermore we show how our basic technique can be combined with recent proposals for ensuring high-availability to an SDDS. Therefore our solution is very attractive for network servers requiring both a fast response time and a high reliability.

Scalable Distributed Data Structures: A Survey

Workshop on Distributed Data and Structures, 2000

This paper reviews literature on scalable data structures for searching in a distributed computing environment. Starting with a system where one server manages a file of a given size that is accessed by a specific number of clients at a specific rate, a scalable distributed data structures (SDDS) can efficiently manage a file that is n times bigger and accessed

Distributed Searching of k-Dimensional Data with Almost Constant Costs

Lecture Notes in Computer Science, 2000

In this paper we consider the dictionary problem in the scalable distributed data structure paradigm introduced by Litwin, Neimat and Schneider and analyze costs for insert and exact searches in an amortized framework. We show that both for the 1-dimensional and the kdimensional case insert and exact searches have an amortized almost constant costs, namely O log (1+A) n messages, where n is the total number of servers of the structure, b is the capacity of each server, and A = b 2 . Considering that A is a large value in real applications, in the order of thousands, we can assume to have a constant cost in real distributed structures. Only worst case analysis has been previously considered and the almost constant cost for the amortized analysis of the general k -dimensional case appears to be very promising in the light of the well known difficulties in proving optimal worst case bounds for k -dimensions.

A practical scalable distributed B-tree

Proceedings of the VLDB Endowment, 2008

Internet applications increasingly rely on scalable data structures that must support high throughput and store huge amounts of data. These data structures can be hard to implement efficiently. Recent proposals have overcome this problem by giving up on generality and implementing specialized interfaces and functionality (e.g., Dynamo [4]). We present the design of a more general and flexible solution: a fault-tolerant and scalable distributed B-tree. In addition to the usual B-tree operations, our B-tree provides some important practical features: transactions for atomically executing several operations in one or more B-trees, online migration of B-tree nodes between servers for load-balancing, and dynamic addition and removal of servers for supporting incremental growth of the system. Our design is conceptually simple. Rather than using complex concurrency and locking protocols, we use distributed transactions to make changes to B-tree nodes. We show how to extend the B-tree and keep additional information so that these transactions execute quickly and efficiently. Our design relies on an underlying distributed data sharing service, Sinfonia [1], which provides fault tolerance and a lightweight distributed atomic primitive. We use this primitive to commit our transactions. We implemented our B-tree and show that it performs comparably to an existing open-source B-tree and that it scales to hundreds of machines. We believe that our approach is general and can be used to implement other distributed data structures easily.

ADST: An order preserving scalable distributed data structure with constant access costs

2001

Scalable Distributed Data Structures (SDDS) are access methods specifically designed to satisfy the high performance requirements of a distributed computing environment made up by a collection of computers connected through a high speed network. In this paper we propose an order preserving SDDS with a worst-case constant cost for exact-search queries and a worst-case logarithmic cost for update queries.

Fault tolerance and storage reduction in binary search trees

Information and Control, 1984

We introduce a method of representing a broad class of binary search trees in an environment in which pointers and other structural information may be "lost" or "maliciously altered." The fault tolerant representation permits any 2 field changes to be detected and any 1.to be corrected without significantly increasing storage requirements of the binary tree. The detection and correction procedures applied to the entire tree require O(n) time. This discipline is also used to represent binary search trees with a single pointer per datum without altering the cost of searching or updating, if applied in conjunction with any underlying tree balancing scheme (bounded balance, etc.). If no balancing scheme is employed, the trees we form will have significantly shorter search paths than those formed using the straightforward algorithm.

O(log log n)-competitive dynamic binary search trees

2006

The Dynamic Optimality Conjecture states that splay trees are competitive (within a constant competitive factor) among the class of all binary search tree (BST) algorithms. Despite 20 years of research this conjecture is still unresolved. Recently, Demaine et al.