0%

Aerospike介绍

  Aerospike是一个分布式,高可用的 K-V类型的Nosql数据库。提供类似传统数据库的ACID操作。aerospike最大的卖点就是可以存储在SSD上,并且保证和redis相同的查询性能。aerospike内部在访问SSD屏蔽了文件系统层级,直接访问地址,保证了数据的读取速度。 AS同时支持二级索引与聚合,支持简单的sql操作,相比于其他nosql数据库,有一定优势。

1.Node
aerospike集群节点。在版本4.0以后, 社区版最多支持8个节点, 商业版本为32个节点;在版本4.0之前, 社区版和商业版最大节点为127

2.Namespace
  aerospike中域的概念,类似mysql中db的概念。 社区版本每个集群最多2个namespace,商业版本为32; namespace命名长度不能超过31个字符

3.Set
  Set类似Mysql中表的概念。 每个Namespace中最多1023个Set, Set命名长度不能超过63个字符

4.Bin
  Bin类似Mysql中列的概念。 每个Namespace中Bin的个数最多为3K个, Bin命名长度不能超过15个字符

5.Record
  Record类似Mysql中一行数据。每个节点最大Record社区版4,294,967,296(由于4个字节用于存储引用,因此为2 ^ 32),企业版上为34,359,738,368(2 ^ 35)。这表示2TiB的RAM。 社区版在4.0之后每个集群最大Record数量为8*40亿=320亿,考虑到高可用, 备份因子应该设为2, 所以社区版本每个集群最大Record数量为160亿。 Record数据量超过160亿的话就需要考虑使用商业版本或则多个集

6.内存需求计算
  主key 64byte * number object ——— 1亿数据大约需要6G内存; raplica 默认设置为2 ,所以 ——— 1亿数据大约需要12G内存

7.Key组成
  key在内部根据RIPEMD-160算法,重新hash出一个key并取前20位,然后相对均衡的把数据分布到各个节点之上

8.SSD要求
  66%写33%读, 1.5K大小 ,测试工具:https://github.com/aerospike/act
  消耗1ms < 5%,消耗8ms < 1% ,消耗64ms < 0.1%

详细介绍 https://kiwimg.gitbooks.io/aerospike_development_guide/content/