0

我们使用 Chronicle Map 作为持久存储。由于我们一直有新数据到达,我们继续将新数据放入地图中。因此,我们无法预测 的正确值net.openhft.chronicle.map.ChronicleMapBuilder#entries(long)。当我们放入比预期更多的数据时,Chronicle 3 不会中断,但会降低性能。因此,我们希望不时使用新配置重新创建此地图。

现在是真正的问题:给定一个编年史地图文件,我们如何知道该文件使用了哪个配置?然后我们可以将其与实际数据量进行比较(此知识的来源在这里无关紧要)并在需要时重新创建地图。

4

1 回答 1

0

entries()是一个高级配置,不存储在内部。内部存储的是段数、每个段的预期条目数以及在段的条目空间中分配的“块”数。它们分别通过ChronicleMapBuilder.actualSegments()和配置。但是,目前没有办法从 created 查询最后两个数字,所以它没有多大帮助。(您可以通过 查询段数。)entriesPerSegment()actualChunksPerSegmentTier()ChronicleMapChronicleMap.segments()

您可以通过添加 getter来公开这些配置来为Chronicle-Map做出贡献。ChronicleMap或者,您需要单独存储条目的数量,例如与 ChronicleMap 持久文件一起存储在一个文件中。

于 2017-07-29T18:16:58.007 回答