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