ABSTRACT
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.
Supplemental Material
Available for Download
Slides from the presentation
- J. Armstrong. Programming Erlang: Software for a Concurrent World. Pragmatic Programmers, ISBN: 978-1-9343560-0-5, July 2007 Google Scholar
Digital Library
- R. Baldoni, L. Querzoni, A. Virgillito, R. Jiménez-Peris, and M. Patiño-Martínez. Dynamic Quorums for DHT-based P2P Networks. NCA, pp. 91--100, 2005. Google Scholar
Digital Library
- G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, and W. Vogels. Dynamo: Amazon's Highly Available Key-Value Store Proceedings of the 21st ACM Symposium on Operating Systems Principles, Oct. 2007. Google Scholar
Digital Library
- JJ Furman, J. S. Karlsson, J. Leon, A. Lloyd, S. Newman, and P. Zeyliger. Megastore: A Scalable Data System for User Facing Applications. SIGMOD 2008, Jun. 2008.Google Scholar
- A. Ghodsi, L. O. Alima, and S. Haridi. Symmetric Replication for Structured Peer-to-Peer Systems. 3rd Intl. Workshop on Databases, Information Systems and P2P Computing, 2005. Google Scholar
Digital Library
- R. Guerraoui and L. Rodrigues. Introduction to Reliable Distributed Programming. Springer-Verlag 2006. Google Scholar
Digital Library
- C. Hewitt, P. Bishop, and R. Steiger. A Universal Modular ACTOR Formalism for Artificial Intelligence. IJCAI, 1973.Google Scholar
Digital Library
- A. Lakshman, P. Malik, and K. Ranganathan. Cassandra: A Structured Storage System on a P2P Network. SIGMOD 2008, Jun. 2008.Google Scholar
- L. Lamport. Fast Paxos. Distributed Computing 19(2):79--103, 2006.Google Scholar
- M. M. Masud and I. Kiringa. Maintaining consistency in a failure-prone P2P database network during transaction processing. Proceedings of the 2008 International Workshop on Data management in peer-to-peer systems, pp. 27--34, 2008. Google Scholar
Digital Library
- M. Moser and S. Haridi. Atomic Commitment in Transactional DHTs. 1st CoreGRID Symposium, Aug. 2007.Google Scholar
- S. Plantikow, A. Reinefeld, and F. Schintke. Transactions for Distributed Wikis on Structured Overlays. 18th IFIP/IEEE Distributed Systems: Operations and Management (DSOM 2007), Oct. 2007. Google Scholar
Digital Library
- T. Schütt, F. Schintke, and A. Reinefeld. Structured Overlay without Consistent Hashing: Empirical Results. GP2PC'06, May 2006. Google Scholar
Digital Library
- T. Schütt, F. Schintke, and A. Reinefeld. A Structured Overlay for Multi-Dimensional Range Queries. Europar, Aug. 2007.Google Scholar
Cross Ref
- T. Schütt, F. Schintke, and A. Reinefeld. Scalable Wikipedia with Erlang. Google Scalability Conference, Jun. 2008.Google Scholar
- T. M. Shafaat, M. Moser, A. Ghodsi, S. Haridi, T. Schütt, and A. Reinefeld. Key-Based Consistency and Availability in Structured Overlay Networks. Third Intl. ICST Conference on Scalable Information Systems, June 2008. Google Scholar
Digital Library
- I. Stoica, R. Morris, M. F. Kaashoek D. Karger, and H. Balakrishnan. Chord: A scalable peer-to-peer lookup service for Internet application. ACM SIGCOMM 2001, Aug. 2001. Google Scholar
Digital Library
Index Terms
- Scalaris: reliable transactional p2p key/value store
Recommendations
FairTorrent: bringing fairness to peer-to-peer systems
CoNEXT '09: Proceedings of the 5th international conference on Emerging networking experiments and technologiesPeer-to-Peer file-sharing applications suffer from a fundamental problem of unfairness. Free-riders cause slower download times for others by contributing little or no upload bandwidth while consuming much download bandwidth. Previous attempts to ...
Characterizing unstructured overlay topologies in modern P2P file-sharing systems
In recent years, peer-to-peer (P2P) file-sharing systems have evolved to accommodate growing numbers of participating peers. In particular, new features have changed the properties of the unstructured overlay topologies formed by these peers. Little is ...
Bandwidth trading in BitTorrent-like P2P networks for content distribution
Bandwidth trading schemes give peers an incentive to provide upload bandwidth to other peers in a P2P network for fast file distribution. A popular example is the tit-for-tat strategy used in the BitTorrent protocol. Although this game theoretical ...





Comments