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
原创不易,欢迎打赏,请认准正确地址,谨防假冒
相关推荐
Voldemort 是一个分布式键值存储系统,常用于大数据和实时分析场景。它的设计目标是提供高可用性、可扩展性和高性能。在这个配置中,我们关注的是如何将 Voldemort 配置为仅使用内存作为缓存,而不涉及任何持久化...
Voldemort适合于大数据存储、实时分析、内容分发网络(CDN)缓存、日志存储等多种应用场景。由于其强大的分布式特性和高一致性保证,Voldemort在许多大型互联网公司中得到了广泛的应用。 综上所述,Voldemort是一个...
Voldemort 是一个分布式数据库,它是亚马逊 Dynamo 的开源克隆。 它自动在多个服务器上复制数据,并自动对它们进行分区,因此每个服务器只包含总数据的一个子集。 它提供了许多其他功能,例如可插拔序列化支持、数据...
3. 高性能:Voldemort采用内存缓存和磁盘持久化相结合的方式,对读写操作进行了优化,保证了高吞吐量和低延迟。 4. 数据分片:Voldemort将数据按照key进行分片,每片数据分布在一个或多个节点上,实现了水平扩展。 ...
此外,一致性哈希算法在分布式缓存如Memcached、Redis中也得到了广泛应用。它不仅简化了数据分布的逻辑,还允许动态扩展和收缩集群规模,无需大规模的数据迁移。 在文件名为“distribute-mysql”的压缩包中,可能...
下面将详细介绍分布式Redis的几种常见储存方式以及它们在Java中的应用。 1. **主从复制** (Master-Slave Replication) 主从复制是最基础的分布式Redis方案,一个Redis实例作为主节点负责写操作,多个从节点通过...
MemCached是指使用MemCached来实现分布式缓存。 特点是指使用MemCached的特点和优势。 内存分配是指使用MemCached来分配内存。 缓存策略是指使用MemCached的缓存策略。 缓存数据库查询是指使用MemCached来查询...
### NoSQL介绍与比较 #### 一、NoSQL概述 NoSQL(Not Only SQL)泛指非关系型数据库,旨在解决传统关系型数据库在处理Web2.0网站,尤其是超大规模和高并发SNS类型纯动态网站时所面临的挑战。随着互联网技术的发展...
1.1.1 Voldemort:是一个分布式键值存储系统,设计目标是高可用性和一致性。 1.1.2 Dynamo:由亚马逊开发,强调高度可扩展性和容错性,采用无中心结构。 1.1.3 memcachedb:基于memcached的持久化版本,提供简单的...
- **Voldemort**:一个分布式Key-Value存储系统,适用于对读写速度要求较高的场景。 - **Dynamo**:由Amazon开发的高可用、可扩展的分布式存储系统,特别适合处理大量非结构化的数据。 - **memcachedb**:一种高性能...
Redis是一种开源的高性能键值对数据存储系统,通常被用作数据库、缓存和消息代理服务。Redis支持多种数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)。它...
### NoSQL介绍 #### NoSQL概念与原理 NoSQL(Not Only SQL)是指一类非关系型的数据库管理系统,它提供了一种不同于传统关系型数据库的存储方式。NoSQL的出现主要是为了解决大规模数据集合中多种类型的数据存储...
- **Voldemort**: 高性能的分布式键值存储系统。 - **Dynomite**: 分布式的键值存储系统。 - **Kai**: 分布式的键值存储系统。 **10. 未分类** - **Skynet**: 分布式计算平台。 - **Drizzle**: 轻量级的关系型...
例如,Cassandra擅长处理大规模分布式数据,而memcached则更专注于内存缓存。 了解了不同键值存储系统后,读者可以进一步理解为什么要选择使用Key-Value存储系统,尤其是在面对大规模的互联网应用和云存储时。使用...
一致性哈希(Consistent Hashing)是一种分布式哈希算法,主要应用于分布式缓存、负载均衡等领域,例如在Redis、Memcached等系统中广泛使用。它解决了传统哈希算法在节点动态增减时导致的大量数据迁移问题。在Java中...
Redis不仅支持简单的键值对存储,还提供了一系列高级功能,如事务、持久化、主从复制等,使其成为分布式系统中的关键组件之一。 #### 二、键值存储系统对比 ##### 2.1 键值存储系统的概念 键值存储是一种简单的...