Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
LH*—a scalable, distributed data structure
ACM Transactions on Database Systems (TODS)
On optimistic methods for concurrency control
ACM Transactions on Database Systems (TODS)
Efficient locking for concurrent operations on B-trees
ACM Transactions on Database Systems (TODS)
Concurrent operations on B-trees with overtaking
PODS '85 Proceedings of the fourth ACM SIGACT-SIGMOD symposium on Principles of database systems
Chord: A scalable peer-to-peer lookup service for internet applications
Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications
A scalable content-addressable network
Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications
A Distributed Data-Balanced Dictionary Based on the B-Link Tree
IPPS '92 Proceedings of the 6th International Parallel Processing Symposium
VLDB '90 Proceedings of the 16th International Conference on Very Large Data Bases
RP*: A Family of Order Preserving Scalable Distributed Data Structures
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
Scalable, Efficient Range Queries for Grid Information Services
P2P '02 Proceedings of the Second International Conference on Peer-to-Peer Computing
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Scalable, distributed data structures for internet service construction
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Boxwood: abstractions as the foundation for storage infrastructure
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Sinfonia: a new paradigm for building scalable distributed systems
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Dynamo: amazon's highly available key-value store
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Bigtable: a distributed storage system for structured data
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Efficient bulk insertion into a distributed ordered table
Proceedings of the 2008 ACM SIGMOD international conference on Management of data
Sinfonia: A new paradigm for building scalable distributed systems
ACM Transactions on Computer Systems (TOCS)
An efficient multi-dimensional index for cloud data management
Proceedings of the first international workshop on Cloud data management
High throughput and large capacity pipelined dynamic search tree on FPGA
Proceedings of the 18th annual ACM/SIGDA international symposium on Field programmable gate arrays
Towards elastic transactional cloud storage with range query support
Proceedings of the VLDB Endowment
Efficient B-tree based indexing for cloud data processing
Proceedings of the VLDB Endowment
DICE: an effective query result cache for distributed storage systems
Journal of Computer Science and Technology
Transactional storage for geo-replicated systems
SOSP '11 Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
Parallel index and query for large scale data analysis
Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis
Case study of scientific data processing on a cloud using hadoop
HPCS'09 Proceedings of the 23rd international conference on High Performance Computing Systems and Applications
Performance Evaluation of Range Queries in Key Value Stores
Journal of Grid Computing
Minuet: a scalable distributed multiversion B-tree
Proceedings of the VLDB Endowment
HyperDex: a distributed, searchable key-value store
Proceedings of the ACM SIGCOMM 2012 conference on Applications, technologies, architectures, and protocols for computer communication
Surviving congestion in geo-distributed storage systems
USENIX ATC'12 Proceedings of the 2012 USENIX conference on Annual Technical Conference
HyperDex: a distributed, searchable key-value store
ACM SIGCOMM Computer Communication Review - Special october issue SIGCOMM '12
Robust distributed indexing for locality-skewed workloads
Proceedings of the 21st ACM international conference on Information and knowledge management
Big data challenge: a data management perspective
Frontiers of Computer Science: Selected Publications from Chinese Universities
A multi-dimensional index structure based on improved VA-file and CAN in the cloud
International Journal of Automation and Computing
Hi-index | 0.00 |
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 light-weight 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.