【分布式缓存之Voldemort 介绍】

Voldemort 是一个采用 Java 语言开发的分布式的Key-Value存储系统。

Voldemort is a distributed key-value storage system



 
 

主要特性:

1)Data is automatically replicated over multiple servers.

2)Data is automatically partitioned so each server contains only a subset of the total data

3)Server failure is handled transparently

4)Pluggable serialization is supported to allow rich keys and values including lists and tuples with named fields, as well as to integrate with common serialization frameworks like Protocol Buffers, Thrift, and Java Serialization

5)Data items are versioned to maximize data integrity in failure scenarios without compromising availability of the system

6)Each node is independent of other nodes with no central point of failure or coordination

7)Good single node performance: you can expect 10-20k operations per second depending on the machines, the network, and the replication factor

8)Support for pluggable data placement strategies to support things like distribution across data centers that are geographical far apart.

 

缓存数据可以自动在各个服务器节点之间同步复制。

每一个服务器的缓存数据被横向分割,因此是总缓存的一个子集。

严格保持缓存的一致性。

提供服务器宕机快速恢复方案。

可配置的数据存储引擎。

可配置的数据序列化方式。

每一个数据项都有版本标识,用来保证数据的完整性和可用性。

每一个缓存节点都是独立的,因此任何一个节点的故障都不会影响系统的正常运行。

 

 

Comparison to relational databases

 

Voldemort is not a relational database, it does not attempt to satisfy arbitrary relations while satisfying ACID properties. Nor is it an object database that attempts to transparently map object reference graphs. Nor does it introduce a new abstraction such as document-orientation. It is basically just a big, distributed, persistent, fault-tolerant hash table. For applications that can use an O/R mapper like active-record or hibernate this will provide horizontal scalability and much higher availability but at great loss of convenience. For large applications under internet-type scalability pressure, a system may likely consist of a number of functionally partitioned services or APIs, which may manage storage resources across multiple data centers using storage systems which may themselves be horizontally partitioned. For applications in this space, arbitrary in-database joins are already impossible since all the data is not available in any single database. A typical pattern is to introduce a caching layer which will require hashtable semantics anyway. For these applications Voldemort offers a number of advantages:

1)Voldemort combines in memory caching with the storage system so that a separate caching tier is not required (instead the storage system itself is just fast)

2)Unlike MySQL replication, both reads and writes scale horizontally

3)Data portioning is transparent, and allows for cluster expansion without rebalancing all data

4)Data replication and placement is decided by a simple API to be able to accommodate a wide range of application specific strategies

5)The storage layer is completely mockable so development and unit testing can be done against a throw-away in-memory storage system without needing a real cluster (or even a real storage system) for simple testing

 

原创不易,欢迎打赏,请认准正确地址,谨防假冒



 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值