【问题标题】:How to compact disk space in AWS DocumentDB如何压缩 AWS DocumentDB 中的磁盘空间
【发布时间】:2022-06-29 12:29:10
【问题描述】:
在我的 DocumentDB 数据库中删除许多文档后,我将集合减少到 2.7GB,但 storageSize 仍为 11GB。有什么办法可以释放这个空间?
在 MongoDB 的 WiredTiger 实现中,有一个“compact”命令。但是在 DocumentDB 上运行时会产生:"errmsg" : "Feature not supported: compact"
即使删除后我的可用内存也没有增加。我本来希望缓存的文档占用更少的空间。似乎所有 11GB 都还在缓存中。
【问题讨论】:
标签:
mongodb
caching
storage
aws-documentdb
【解决方案1】:
亚马逊声明这是预期的 ($$) 行为。来自他们的documentation:
存储成本基于存储“高水位线”(在任何时间点为 Amazon DocumentDB 集群分配的最大数量)
要解决这个问题,您需要在一个全新的集群中使用 MongoDB 工具:
如果从 Amazon DocumentDB 集群中删除数据会导致大量已分配但未使用的空间,则重置高水位线需要使用 mongodump 或 mongorestore 等工具执行逻辑数据转储并恢复到新集群。创建和恢复快照不会减少分配的存储空间,因为底层存储的物理布局在恢复的快照中保持不变。
【解决方案2】:
根据最新official doc:
从 Amazon DocumentDB 4.0 开始,当数据被删除时,例如通过删除集合或索引,分配的总空间会减少相当的数量。因此,您可以通过删除不再需要的集合、索引和数据库来降低存储费用。使用 Amazon DocumentDB 3.6,当数据被删除时,例如通过删除集合或索引,分配的总体空间保持不变。当未来数据量增加时,空闲空间会自动重复使用。
DocumentDB 4.0 会自动压缩空间,3.6 会保持高水位。