Aerospike Digest 的用例
Use cases for Aerospike Digest
我目前正在设计一个 Aerospike Cluster,它可以处理很多关系并且会很快变得非常大。我在 aerospike 文档中发现了很多关于使用 python 客户端检索密钥时生成的摘要的引用,但是 none 显示了它在节省内存之外的用处。
来自文档 ::
摘要是密钥的哈希。使用 RIPEMD-160 算法对密钥进行哈希处理,该算法将采用任意长度的密钥,并且它将始终 return 大小为 20 字节的摘要。如果您有一个长密钥,比如 200 字节,获取该密钥的摘要将允许您通过节省 180 字节来提高线路性能。
我的问题是,摘要是否会增加查找时间?是否值得将摘要存储在其他集合中以建立关系?
检索密钥时不会生成 digest
,而是在客户端启动 key
时计算它,并且该摘要将用于与集群通信并定位记录.
默认情况下,即使是实际密钥也不会与记录数据一起保存。所以在内部所有查找都是使用摘要执行的。
In the application, each record will have a key associated with it.
This key is what the application will use to read or write the record.
However, when the key is sent to the database, the key (together with
the set information) is hashed into a 160-bit digest. Within the
database, the digest is used address the record for all operations.
The key is used primarily in the application, while the digest is
primarily used for addressing the record in the database.
您不需要直接使用摘要。当您创建关系时,您还将创建一个 secondary index 以提高性能,并且无论如何它都将基于哈希工作,因此使用摘要而不是密钥没有什么不同。
您还可以尝试将关系建模为同一记录中的复杂或大型数据类型。
Digest 也用于定位 Aerospike 集群中的记录。前 12 位用于表示分区 ID,使用分区 ID,分区 table 映射集群中记录的主节点和副本节点。所以,本质上,摘要是快速查找的关键。
此外,摘要是使用 RIPEMD160 算法计算的,该算法的冲突率可以忽略不计,从而使节点之间的数据分布均匀。
摘要的唯一问题是它还构成主索引(摘要+元数据)并且索引始终存储在内存中,从而限制了可以存储在集群中的记录数。
我目前正在设计一个 Aerospike Cluster,它可以处理很多关系并且会很快变得非常大。我在 aerospike 文档中发现了很多关于使用 python 客户端检索密钥时生成的摘要的引用,但是 none 显示了它在节省内存之外的用处。
来自文档 :: 摘要是密钥的哈希。使用 RIPEMD-160 算法对密钥进行哈希处理,该算法将采用任意长度的密钥,并且它将始终 return 大小为 20 字节的摘要。如果您有一个长密钥,比如 200 字节,获取该密钥的摘要将允许您通过节省 180 字节来提高线路性能。
我的问题是,摘要是否会增加查找时间?是否值得将摘要存储在其他集合中以建立关系?
检索密钥时不会生成 digest
,而是在客户端启动 key
时计算它,并且该摘要将用于与集群通信并定位记录.
默认情况下,即使是实际密钥也不会与记录数据一起保存。所以在内部所有查找都是使用摘要执行的。
In the application, each record will have a key associated with it. This key is what the application will use to read or write the record.
However, when the key is sent to the database, the key (together with the set information) is hashed into a 160-bit digest. Within the database, the digest is used address the record for all operations.
The key is used primarily in the application, while the digest is primarily used for addressing the record in the database.
您不需要直接使用摘要。当您创建关系时,您还将创建一个 secondary index 以提高性能,并且无论如何它都将基于哈希工作,因此使用摘要而不是密钥没有什么不同。
您还可以尝试将关系建模为同一记录中的复杂或大型数据类型。
Digest 也用于定位 Aerospike 集群中的记录。前 12 位用于表示分区 ID,使用分区 ID,分区 table 映射集群中记录的主节点和副本节点。所以,本质上,摘要是快速查找的关键。
此外,摘要是使用 RIPEMD160 算法计算的,该算法的冲突率可以忽略不计,从而使节点之间的数据分布均匀。
摘要的唯一问题是它还构成主索引(摘要+元数据)并且索引始终存储在内存中,从而限制了可以存储在集群中的记录数。