Scalaris: reliable transactional p2p key/value store

T. Schütt, F. Schintke, A. Reinefeld
{"title":"Scalaris: reliable transactional p2p key/value store","authors":"T. Schütt, F. Schintke, A. Reinefeld","doi":"10.1145/1411273.1411280","DOIUrl":null,"url":null,"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.\n 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.\n Scalaris is implemented in Erlang. We describe the Erlang software architecture, including the transactional Java interface to access Scalaris.\n 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.\n 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.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"16 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"133","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Erlang Workshop","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1411273.1411280","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 133

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.
Scalaris:可靠的事务性p2p密钥/值存储
我们介绍Scalaris,一个分布式键/值存储的Erlang实现。在一个结构化的覆盖网络之上,它使用复制来保证数据的可用性,使用基于多数的分布式事务来保证数据的一致性。结合起来,这在可伸缩的结构化覆盖层上实现了ACID属性。通过直接将键映射到覆盖层而不使用散列,可以将任意键范围分配给节点,从而实现比传统dht更好的负载平衡。因此,Scalaris可以通过考虑节点的地理位置或某些键的区域流行度来调整快速数据访问。这提高了Scalaris在数据中心或云计算环境中的查找速度。scala是在Erlang中实现的。我们描述了Erlang软件架构,包括访问Scalaris的事务性Java接口。此外,我们提出了一种通用的设计模式,用于在Erlang中实现响应式服务器,该服务器在公共状态上序列化更新操作,同时在同一状态上并发地执行快速异步读取请求。作为概念验证,我们实现了一个简化的Wikipedia前端,并将其附加到Scalaris数据存储后端。维基百科是一个具有挑战性的应用程序。除了每秒数千个并发读请求之外,它还需要序列化的、一致的写操作。对于维基百科的分类和反向链接页面,密钥必须在交易中不断更改。我们将讨论如何在Scalaris中实现这些特性并展示其性能。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信