我正在使用 aerospike 进行测试。我正在使用社区版。集群有 2 个节点。我将存储引擎用作带 SSD 的设备。我的配置文件 -
namespace test {
replication-factor 2
memory-size 16G
default-ttl 0
storage-engine device {
device /dev/sdb1
data-in-memory false
write-block-size 128K
}
}
我已经设置了命名数据。在其中添加 1M 记录进行测试后,现在我想删除该集合中的所有内容(如果可能的话也删除集合)。我在两个节点上都尝试了这个命令-
asinfo -v "set-config:context=namespace;id=test;set=data;set-delete=true;"
它一直有效,直到我重新启动我的集群(sudo/etc/init.d/aerospike restart
在两个节点上)。重启后所有数据都回来了。我浏览了这个链接 http://www.aerospike.com/launchpad/deleting_sets_and_data.html但没有找到任何方便的东西。
最佳答案
编辑从@sasha 的评论中粘贴的副本:
Aerospike 3.10.0 引入了[持久删除][1] 机制,将持久性添加到删除中(尽管仅适用于 Aerospike Enterprise)。它是由所谓的墓碑记录实现的,这些记录被写成被删除记录的最后一个版本。它保证冷启动时没有删除的记录进入内存(从磁盘读取)。然后碎片整理过程最终运行并从包括墓碑在内的所有记录版本中释放内存和磁盘空间。 [1]: aerospike.com/docs/guide/durable_deletes.html
关于aerospike:删除集合中的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36261601/