我最近参与了在我们的产品中实现一个Aerospike数据存储。我们一直试图为我们的命名空间找到最好的配置。对持久化数据的需求意味着我们需要一个存储引擎作为设备。我们已经将内存中的数据指定为真。
我的问题是:data-in-memory是否试图像模糊描述所暗示的那样将所有的--备份存储数据--加载到内存中?
始终将所有数据的副本保存在内存中。
还是会注意名称空间上的memory-size设置,而只从备份存储区加载memory-size数据量?
该设置的说明已从文档检索。
我一直在和第一次使用飞机的人交谈,试图找出他是否知道并且不确定,所以我想要澄清。
作为参考,我的命名空间配置如下所示,它的内存配额明显小于后备存储。
namespace Test {
replication-factor 2
memory-size 4G
default-ttl 0
storage-engine device {
file /opt/aerospike/data/Test.dat
filesize 16G
data-in-memory true
}
}发布于 2015-09-14 16:35:34
它将把所有的数据保存在内存中。Aerospike还没有一个部分缓存实现来将最常用的数据保存在所提供的内存中。
发布于 2015-09-14 17:00:17
您的数据只存在于内存中,而磁盘用于在服务器重新启动时进行持久恢复。filesize大于memory-size的原因是,维护操作(如块碎片整理)需要磁盘空间。磁盘设备是块设备,在默认的1MB write-block-size中,您可以安装多个记录,这样就可以通过从小于defrag-lwm-pct完整的块中移动记录来执行诸如碎片整理之类的操作。这需要额外的积木,所以你需要备用的容量。
https://stackoverflow.com/questions/32561928
复制相似问题