airospike与其他键值nosql数据库有何不同?

时间:2014-06-30 02:49:08

标签: redis key-value-store aerospike

Aerospike是一个键值,内存中,可操作的NoSQL数据库,具有ACID属性,支持复杂对象并且易于扩展。但我已经使用了绝对相同的东西。

Redis也是一个键值,在内存中(但是持久到磁盘)NoSQL数据库。它还支持不同的复杂对象。但与Aerospike相比,Redis已经使用了很长时间,已经有了一个活跃的社区,并且开发了很多项目。

那么aerospike和其他无sql键值数据库(例如redis)之间的区别是什么。是否有一个特别适合空中加速的地方。

P.S。我正在寻找那些在现实世界中使用至少一种dbs(最好是两种)并且拥有真实生活体验的人的答案(不是来自官方网站的复制贴纸)。

5 个答案:

答案 0 :(得分:44)

如果必须用一个词来回答它的“表现”。 Aerospike的性能远远优于任何集群式nosql解决方案。每个节点的性能更高意味着更小的集群,这是更低的TCO(总体拥有成本)和维护。 Aerospike执行自动群集,自动分片,自动重新平衡(当群集状态发生变化时),其中大多数需要在其他数据库中手动执行。

我说“聚集”因为我不想在该组中混合使用redis(尽管redis群集处于测试阶段)。 Aerospike和redis的纯内存性能将具有可比性。但是Redis希望在应用程序层处理很多事情,比如分片,请求重定向等。尽管redis有一种方法可以持久化(快照或AOF),但它有自己的问题,因为它的设计更像是一个插件。 Aerospike本身就是以坚持不懈的态度发展起来的。 redis的聚类还涉及设置主从等等。你可能想看看这个talk比较和对比redis vs aerospike。

答案 1 :(得分:30)

我已经使用Redis多年了,并且刚开始使用Aerospike作为它的替代品有很多原因。

虽然Redis和Aerospike都有很好的性能,但Redis的主要问题是它只在内存中存储数据并且没有正式发布的群集解决方案。它将数据库的大小限制为服务器的RAM大小,而Aerospike可以配置为使用SSD来存储信息,而不会降低速度。即使读/写吞吐量很高,Aerospike延迟也非常低。

Aerospike最适合我,因为它能够随着性能而不需要努力工作,并且与Redis不同,它还可以完全保留您的数据,最大限度地减少数据丢失。他们发布了一个great video,显示了扩展和管理Aerospike集群是多么容易,以及即使在出现“灾难”情况时它也会如何自动配置。

答案 2 :(得分:17)

令人惊讶的是Redis是最流行的内存数据库之一,3个月前还没有自动分片。他们最近添加了此功能。 Redi 3.0具有自动分片功能。

AS通过快速重启功能支持自动群集,其中所有索引都是持久存储而不增加吞吐量,数据库可以在几分钟内启动(例如,50 TB的db大小可以在几分钟。)所有这些都可以在商品硬件上实现。添加容量只不过是向群集添加新节点。适用于数据中心和数据中心。云环境最重要的是它适用于任何本地环境。

支持在线匹配(管理需求和供应)。

No-SQL数据库必须处理实时用例以满足当今广告世界,在线购物门户网站,OLA驾驶室等物流服务提供商所需的激进SLA(识别最近的出租车已准备好接送并且可以在不到5分钟的时间内以低于&lt; 3 ms的速度计算到达客户,在线竞标应用程序(最终确定AdBid的准确率为99.7%,<3 ms),欺诈检测系统等需要识别恶意用户&LT;为5ms(毫秒)

  • Aerospike符合ACID记录水平,大部分都是如此 No-SQL数据库。
  • Aerospike专为集群环境而设计,
  • 专为水平缩放而设计,
  • 支持数据平衡(自动/手动),
  • 自动分片 - 应用程序级别或对最终用户透明。

Aerospike是开源实时,无SQL和键值存储。 从头开始构建C,因为有些方法可以编写db来利用硬件,网络,SSD,内存和内核。针对SSD /闪存存储进行了优化的原因是SSD是存储设备的未来,同时它适用于HDD(旋转磁盘驱动器)SSD提供并行通道,具体取决于可能选择使用8,16 32的SSD提供商等等上。如果写入和擦除相同的块位置,则SSD会磨损。如果您使用SSD编写块,则SSD用作无文件系统作为块存储并用作环形缓冲区,这意味着您在环形缓冲区启动时写入并继续向下一个,下一个,下一个添加数据,直到驱动器的结束。到达终点后,您将回到街区的第一个位置,然后以相同的方式继续进行,确保第一个位置的使用时间不是最多但是时间相等。

群集或让我们称之为自动群集。 添加一个节点并将其带入集群中,发生在&lt; 100 ms内。它是使用Paxos算法实现的。

Paxos算法是什么?

http://www.quora.com/Distributed-Systems/What-is-a-simple-explanation-of-the-Paxos-algorithm

RIPE160MD#提供20字节160bit#保证是唯一的

#是正常的4K分发,

每个命名空间都维护着它的分区树,每个命名空间都有一个分区ID,每个分区都有一个b树。

存储模式

在内存数据库中:所有内容都存储在DRAM中,实现了高性能和高成本。

磁盘存储:存储在DRAM中的主索引和2dary索引,数据在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供应商。

Google云已经做了一些工作来显示谷歌计算引擎的吞吐量。谷歌在他们的博客上发布了Cassandra生产300个节点的信息,AS用50个节点做了什么。

Aerospike以非常有效的方式处理实时问题。

答案 3 :(得分:7)

Lynn Langit刚刚发布了一个非常detailed head-to-head benchmark的Aerospike vs. Redis,它在AWS云上以不同的配置运行。她的总结:&#34; TL; DR - 大规模Aerospike胜利&#34;。

她如何得出这个结论非常有趣。她逐步说明了她如何为其他希望了解如何制定自己的绩效基准的人提供结果。必须将测试设置为纯RAM数据存储区以及SSD持久性数据库。

她的主要观察结果:

  • Aerospike与Redis一样快,在AWS R3.8xlarge上的单个节点上具有接近1 MTPS的100%读取工作负载 无持续性。
  • 针对持久性的EBS SSD(gp2)存储支持的单个节点,Aerospike对于100/0和80/20读/写工作负载的速度略快于Redis。

答案 4 :(得分:5)

当您考虑故障转移以及当您将电源插头从数据中心的任何机架中拔出时,Aerospike自我修复的方式,每个节点每秒读取操作数百万,没有流量协调器,因此您始终保持良好的性能在交换机或其他硬件上最大化(除非你是地图减少聚合)我的意思是没有其他任何东西接近自我平衡的实时动态分析与安全数据。所有其他平台都要求您进行混合以在CAP三角形中获得所有属性。由于没有缓冲或队列,没有数据缓存,重影不再是一个类别。除了成为最佳表现者之外,还有很多好处。我们只需要承认。 Aerospike很可笑!