在我的DocumentDB数据库中删除了许多文档之后,我将集合的大小减少到2.7GB,但storageSize仍然保持在11GB。有什么办法能腾出这个地方吗?
在MongoDB的WiredTiger实现中,有一个">压缩";命令。但是当在DocumentDB上运行时,会产生:"errmsg" : "Feature not supported: compact"
即使删除后,我的空闲内存也没有增加。我本来希望缓存的文档占用更少的空间。似乎11GB的内存都还在缓存中。
Amazon声明这是预期的($$)行为。来自他们的文档:
仓储成本基于仓储"高水位线";(在任何时间点为Amazon DocumentDB集群分配的最大数量)
要解决这个问题,你需要使用MongoDB工具到一个全新的集群:
如果从Amazon DocumentDB集群中删除数据导致大量已分配但未使用的空间,则重置高水位标志需要执行逻辑数据转储并使用mongodb或mongorestore等工具恢复到新集群。创建和恢复快照不会减少已分配的存储,因为在恢复的快照中底层存储的物理布局保持不变。
根据最新官方文件:
从Amazon DocumentDB 4.0开始,当删除数据时,例如通过删除集合或索引,总体分配的空间减少了相当数量。因此,可以通过删除不再需要的集合、索引和数据库来减少存储费用。对于Amazon DocumentDB 3.6,当删除数据时,例如通过删除集合或索引,分配的总体空间保持不变。当后续数据量增加时,剩余空间自动被重用。
DocumentDB 4.0将自动压缩空间,因为3.6将保持高水位标记。