Scalaris: reliable transactional p2p key/value store

  • Authors:
  • Thorsten Schütt;Florian Schintke;Alexander Reinefeld

  • Affiliations:
  • Zuse Institute Berlin and onScale Solutions, Berlin, Germany;Zuse Institute Berlin and onScale Solutions, Berlin, Germany;Zuse Institute Berlin and onScale Solutions, Berlin, Germany

  • Venue:
  • Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
  • Year:
  • 2008

Quantified Score

Hi-index 0.02

Visualization

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.