Key-Value存储系统简介:
Key-Value Store是当下比较流行的话题,尤其在构建诸如搜索引擎、IM、P2P、游戏服务器、SNS等大型互联网应用以及提供云计算服务的时候,怎样保证系统在海量数据环境下的高性能、高可靠性、高扩展性、高可用性、低成本以及数据库服务器的性能瓶颈应用而生的。
按照分布式领域的CAP理论(Consistency、 Availability、Tolerance to network Partitions这三部分在任何系统架构实现时只可能同时满足其中二点,没法三者兼顾)来衡量,传统的关系数据库的ACID只满足了Consistency、Availability,因此在Partition tolerance上就很难做得好。另外传统的关系数据库处理海量数据、分布式架构时候在Performance、Scalability、 Availability等方面也存在很大的局限性。 而Key-Value Store更加注重对海量数据存取的性能、分布式、扩展性支持上,并不需要传统关系数据库的一些特征,例如:Schema、事务、完整SQL查询支持等等,因此在分布式环境下的性能相对于传统的关系数据库有较大的提升。 Key-Value数据库分为很多种类。
Voldemort
Voldemort是一个分布式Key/Value存储系统,它具有以下特点:
- 数据自动在多个服务器之间复制;
- 数据自动分区,因此每个服务器只包括整体数据的一个子集;
- 服务器故障处理是透明的;
- 支持插入式序列化,允许丰富的Key和Value类型,包括列表和元组,也可以集成常见的序列化框架,如Protocol Buffers,Thrift,Avro和Java Serialization