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
Dynamic Quorums for DHT-based P2P Networks
NCA '05 Proceedings of the Fourth IEEE International Symposium on Network Computing and Applications
Structured Overlay without Consistent Hashing: Empirical Results
CCGRID '06 Proceedings of the Sixth IEEE International Symposium on Cluster Computing and the Grid
Introduction to Reliable Distributed Programming
Introduction to Reliable Distributed Programming
Dynamo: amazon's highly available key-value store
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Maintaining consistency in a failure-prone P2P database network during transaction processing
DaMaP '08 Proceedings of the 2008 international workshop on Data management in peer-to-peer systems
Programming Erlang: Software for a Concurrent World
Programming Erlang: Software for a Concurrent World
Key-based consistency and availability in structured overlay networks
Proceedings of the 3rd international conference on Scalable information systems
Transactions for distributed wikis on structured overlays
DSOM'07 Proceedings of the Distributed systems: operations and management 18th IFIP/IEEE international conference on Managing virtualization of networks and services
Symmetric replication for structured peer-to-peer systems
DBISP2P'05/06 Proceedings of the 2005/2006 international conference on Databases, information systems, and peer-to-peer computing
Cleaning up Erlang code is a dirty job but somebody's gotta do it
Proceedings of the 8th ACM SIGPLAN workshop on ERLANG
Boom analytics: exploring data-centric, declarative programming for the cloud
Proceedings of the 5th European conference on Computer systems
Communications of the ACM
Building a collaborative peer-to-peer wiki system on a structured overlay
Computer Networks: The International Journal of Computer and Telecommunications Networking
Enhanced Paxos Commit for Transactions on DHTs
CCGRID '10 Proceedings of the 2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing
A survey of DHT security techniques
ACM Computing Surveys (CSUR)
Transaction processing in a peer to peer database network
Data & Knowledge Engineering
A new and effective hierarchical overlay structure for Peer-to-Peer networks
Computer Communications
Concurrent execution of transactions in a peer-to-peer database network
International Journal of Intelligent Information and Database Systems
CernVM-FS: delivering scientific software to globally distributed computing resources
Proceedings of the first international workshop on Network-aware data management
Ramos: Concurrent writing and reconfiguration for collaborative systems
Journal of Parallel and Distributed Computing
A scalability benchmark suite for Erlang/OTP
Proceedings of the eleventh ACM SIGPLAN workshop on Erlang workshop
High throughput computing over peer-to-peer networks
Future Generation Computer Systems
Future Generation Computer Systems
Automated and transparent model fragmentation for persisting large models
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
A RAMCloud Storage System based on HDFS: Architecture, implementation and evaluation
Journal of Systems and Software
Beernet: Building Self-Managing Decentralized Systems with Replicated Transactional Storage
International Journal of Adaptive, Resilient and Autonomic Systems
MDCC: multi-data center consistency
Proceedings of the 8th ACM European Conference on Computer Systems
Trinity: a distributed graph engine on a memory cloud
Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data
Predicting response times for the Spotify backend
Proceedings of the 8th International Conference on Network and Service Management
Taking a walk on the wild side: teaching cloud computing on distributed research testbeds
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.02 |
We present Scalaris, an Erlang implementation of a distributed key/value store. It uses, on top of a structured overlay network, replication for data availability and majority based distributed transactions for data consistency. In combination, this implements the ACID properties on a scalable structured overlay. By directly mapping the keys to the overlay without hashing, arbitrary key-ranges can be assigned to nodes, thereby allowing a better load-balancing than would be possible with traditional DHTs. Consequently, Scalaris can be tuned for fast data access by taking, e.g. the nodes' geographic location or the regional popularity of certain keys into account. This improves Scalaris' lookup speed in datacenter or cloud computing environments. Scalaris is implemented in Erlang. We describe the Erlang software architecture, including the transactional Java interface to access Scalaris. Additionally, we present a generic design pattern to implement a responsive server in Erlang that serializes update operations on a common state, while concurrently performing fast asynchronous read requests on the same state. As a proof-of-concept we implemented a simplified Wikipedia frontend and attached it to the Scalaris data store backend. Wikipedia is a challenging application. It requires - besides thousands of concurrent read requests per seconds - serialized, consistent write operations. For Wikipedia's category and backlink pages, keys must be consistently changed within transactions. We discuss how these features are implemented in Scalaris and show its performance.