java map最大限制_java-在OpenHTF ChronicleMap上设置最大条目

我正在玩ChronicleSet,它由ChronicleMap支持.我已经进行了一些初步测试,对我们的需求来说非常好.与其他解决方案相比,RAM使用效率更高,访问时间稍慢,但仍然非常快.

但是,我正在测试的一件事是设置最大条目数,它似乎没有按预期工作.

我正在使用以下代码:

ChronicleSetBuilder postalSetBuilder =

ChronicleSetBuilder.of(Long.class)

.name("long-map")

.entries(2_000_000L)

.maxBloatFactor(1.0);

根据文档,这意味着在这种情况下允许的最大条目数为2M.但是,在测试时,我可以可靠地提高到指定的最大值的2倍,然后再增加一点,直到得到如下异常:

Error: ChronicleMap{name=city-postal-codes-map, file=null, identityHashCode=3213500}: Attempt to allocate #129 extra segment tier, 128 is maximum.

Possible reasons include:

- you have forgotten to configure (or configured wrong) builder.entries() number

- same regarding other sizing Chronicle Hash configurations, most likely maxBloatFactor(), averageKeySize(), or averageValueSize()

- keys, inserted into the ChronicleHash, are distributed suspiciously bad. This might be a DOS attack

在这种情况下,对size()的ChronicleMap对象调用吐出4,079,238.所以我想知道如何设置一个明确的限制(例如上面指定的2M),并让Chronicle可靠地拒绝任何在此之后添加其他元素的请求.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值