[关闭]
@1234567890 2018-03-26T12:07:29.000000Z 字数 1752 阅读 1494

Aerospike 数据层

Aerospike


数据模型

Aerospike没有严格的表结构,对数据类型的更改不需要修改表

namespace命名空间

namespace 可以看做标准数据库的数据库。一个名称空间包含记录,索引和策略。策略决定了命名空间的行为,包括:

Sets 数据集

Set可以看做标准数据库的表。1个命名空间可以有多个set。Set是可选的。命名空间中的某些记录可能不在一个集合中。

Records 记录

aerospike数据库是一个专注行存储。记录是数据库中存储的基本单位。记录可以属于命名空间或命名空间内的集合。记录使用key作为其唯一标识符。

Keys and Digests

使用key在应用程序中读取或写入记录。当一个key被发送到数据库时,它和它的set信息被散列成一个160位的摘要,用于为所有操作定位该记录

Metadata 元数据

Bins

一条记录包含了1个或多个bins,bins由一个名称和一个值组成。bin中的值总是可以更改为不同的字符串值,它也可以更改为不同数据类型的值。

目前,名称空间中所有的唯一bin名称的数量限制为32k。这是由于优化的字符串表实现

Primary Index 主键索引

主键索引是分布式哈希表技术与每台服务器中分布式红黑树结构的融合。命名空间(数据库)中的整个keyspace都使用强大的哈希函数路由到分区中。共有4096个分区在集群节点间平均分配

Index Metadata

Index Persistence

为了保持吞吐量,主索引只存储在内存。这允许高性能,高度并行写入。当aerospike服务器启动时,它会遍历存储数据并为所有分区创建主索引。

Secondary Index

二级索引位于非主键上,这允许您建立一对多关系。在aerospike中,二级索引是逐个bin(如rdbms列)指定的。这允许有效的更新并最小化存储索引所需的资源量。

个人理解

二级索引与标准数据库的二级索引是一样的。通过二级索引找到主索引

Aggregation

查询记录可以馈送到聚合框架中以执行过滤,聚合等。每个节点都将查询结果发送到udf(用户定义的函数)子系统,以便开始将结果处理为记录流。将调用流udfs,并将用户定义的操作序列应用于查询结果。来自每个节点的结果由客户端应用程序收集,客户端应用程序可以对数据执行其他操作。

混合存储

最好使用纯粹的dram配置存储而无需持久性,具有存储持久性的dram或使用闪存(ssds)。
持久性存储(即磁盘)必须是闪存或其他高性能块存储设备(如云存储)。
持久性存储也可以是任何存储设备上的文件。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注