令人惊讶的是,Redis 是最受欢迎的内存数据库之一,3 个月前还没有自动分片。他们最近添加了此功能。Redi 3.0 具有自动分片功能。
AS 通过具有快速重启功能支持自动集群,其中所有索引都被持久化而不会增加吞吐量,并且可以在几分钟内启动数据库(例如,可以在几分钟内启动 50 TB 的数据库大小.)。所有这些都可以在商品硬件上实现。添加容量只不过是在集群中添加一个新节点。适用于数据中心和云环境,最重要的是它适用于任何本地环境。
支持在线配对(管理需求和供应)。
No-SQL 数据库必须处理实时用例,以满足当今广告界、在线购物门户、OLA cab 等物流服务提供商所需的激进 SLA(识别准备好上车且可以到达的最近出租车5 分钟内的客户在 <3 毫秒内计算)、在线投标应用程序(在 <3 毫秒内完成 AdBid 的准确率为 99.7%)、欺诈检测系统等需要在 <5 毫秒(毫秒)内识别恶意用户.
- Aerospike 符合记录级别的 ACID,这对于大多数 No-SQL 数据库都是如此。
- Aerospike 专为集群环境而设计,
- 专为水平缩放而设计,
- 支持数据平衡(自动/手动),
- 自动分片——应用程序级别或对最终用户透明。
Aerospike 是开源实时、无 SQL 和键值存储。从头开始使用 C 语言构建,因为有多种方法可以编写数据库以利用硬件、网络、SSD、内存和内核。针对 SSD/Flash 存储进行了优化,原因是 SSD 是存储设备的未来,同时它适用于 HDD(旋转磁盘驱动器)SSD 提供并行通道,具体取决于可能选择使用 8,16 32 等的 SSD 供应商上。如果写入和擦除相同的块位置,SSD 就会磨损。对于 SSD,您以块的形式写入,SSD 用作无文件系统作为块存储并用作环形缓冲区,这意味着您在环形缓冲区开始时写入并继续将数据添加到下一个、下一个、下一个直到驱动器的末端。
聚类或称它为自动聚类。添加一个节点并将其带入集群会在 <100 毫秒内完成。它是使用 Paxos 算法实现的。
什么是 Paxos 算法?
http://www.quora.com/Distributed-Systems/What-is-a-simple-explanation-of-the-Paxos-algorithm
RIPE160MD# 提供 20 字节 160bit # 保证唯一且
# 是正常的 4K 分布,
每个命名空间都维护它的分区树,每个命名空间都有一个分区 ID,每个分区都有一个 b-tree。
存储模型
在内存数据库中: 所有内容都存储在 DRAM 中,高性能和高成本有效。
磁盘存储:主索引和二级索引存储在 DRAM 中,数据存储在 SSD 或 HDD 上。这意味着最好使用 SSD,但比 DRAM 稍慢,但至少比 DRAM 便宜 10 倍。
混合存储:存储在 DRAM 中的所有内容。数据保存在 SSD 或 HDD 上。由 SSD 或 HDD 持久性支持的 DRAM 性能。在不损失性能的情况下提高 DRAM 成本。
基准
160 万 TPS 与 YCSB(雅虎云源基准测试)在 4 个节点上,在内存中。
Aerospike 给出的 SSD 性能保证:
ACT(Aerospike 合规性测试):它是为测试 SSD 性能而定义和开发的。今天它是 SSD 的标准或认证。英特尔发表了一篇博文,称他们是世界上唯一一家使用 ACT 支持 100 万 TPS 的 SSD 供应商。
谷歌云做了一些工作来展示谷歌计算引擎的吞吐量。谷歌在他们的博客上发布了 Cassandra 需要 300 个节点来生产什么,AS 用 50 个节点来做什么。
Aerospike 以非常有效的方式处理实时问题。