gpt4 book ai didi

truncate - 是否可以使用 'truncate' 在 Aerospike 中使用 asinfo 发出持久删除?

转载 作者:行者123 更新时间:2023-12-03 06:32:06 27 4
gpt4 key购买 nike

我想避免使用 Aerospike 客户端(例如 Python)并使用 native asinfo 从集合中删除记录命令'truncate'因为它可以快速完成。但在我重新启动 Aerospike 后,所有删除的记录都回来了。我看到了这个aerospike: delete all record in a set但它没有回答我的问题。 this page也没有来自 AS 文档。它说,应该在持久删除后写入墓碑,我必须手动创建它还是有其他方法?

UPD:感谢 @kporter 在下面提供了接受的答案,我能够研究 Aerospike 社区版和企业版之间的差异,并找到有关该问题的更多信息,有些人可能会发现它也很有帮助:

如果我理解正确的话,在 CE 中完全删除记录的最佳方法是确保它们具有正确的 TTL 并且可以自然过期。如果由于某种原因你有很多没有 TTL 的旧记录,就像我的情况一样,你可以通过 asinfo 发出 truncate 命令,并且不要重新启动 AS 服务器,直到 SSD 上的数据最终被覆盖。或者只是在每次重新启动时用旧记录截断集。

另外我想知道是否可以完全删除 AS 存储,然后从已截断数据的备份中恢复它作为紧急措施?

UPD1:因此,我能够使用 Aerospike 存储删除 SSD,并从备份中仅恢复所需的记录。我是这样做的:

  • 首先,您需要通过 asinfo 和 truncate 命令从集合中删除旧记录,文档链接位于上方
  • 然后用 asbackup 备份您想要保存的命名空间
  • 停止你的 AS 服务器,我的在 Docker 容器中,所以我只是停止了所述容器
  • 将用作 AS 存储的磁盘清零,我的是/dev/sdb
  • 在此磁盘上创建必要的分区
  • 启动 AS 服务器
  • 使用arestore从备份恢复数据

有用的链接:how to remove and clean up an aerospike server installation , AS docs on SSD setup

我不确定这对于大型生产设置是否是一个好的解决方案,但在我的情况下,它按预期工作,只有一个 AS 节点,并且有机会停止它一段时间。通过这种方式,我能够将 AS 中的数据大小从 160Gb 减少到 11Gb,因此我的服务器现在只需半小时即可完全重新启动,而不是像以前那样大约需要 8 个小时。

最佳答案

您可以在此处找到有关截断集合的更多信息: https://www.aerospike.com/docs/operations/manage/sets/

正如那里提到的,截断在 Aerospike 社区中并不持久。

In the Enterprise Edition, truncation is durable and preserves record deletions through a cold-restart. In the Community Edition, similar to record deletes, records in previously truncated sets are not durable and deletes can return through a cold-start.

关于truncate - 是否可以使用 'truncate' 在 Aerospike 中使用 asinfo 发出持久删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60623565/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com