【问题标题】:titan core 2.0 bug : com.esotericsoftware.kryo.KryoException: Buffer too small: capacity: 2, required: 8泰坦核心 2.0 错误:com.esotericsoftware.kryo.KryoException:缓冲区太小:容量:2,需要:8
【发布时间】:2015-04-14 13:47:45
【问题描述】:

我有一个使用以下软件版本的泰坦图设置。

Cassandra 版本:2.0.6

泰坦版本:0.4.2

5 个 cassandra 服务器,复制因子为 3。

最近,突然间,我们开始间歇性地出现以下错误。

com.esotericsoftware.kryo.KryoException:缓冲区太小:容量:2,需要:8

我在网上搜索,发现有一个与相同错误相关的错误文件。错误与 kryo API 有关。 https://code.google.com/p/kryo/issues/detail?id=124

titan-0.4.2 版本中未包含上述错误的修复。

在 cassandra 服务器上,我们已经有很多天(6 个月)没有运行修复数据库了。可能是cassandra服务器上的数据不一致的问题吗?

能否请您提出这个错误的原因以及如何解决它?

【问题讨论】:

    标签: titan


    【解决方案1】:

    从这个问题来看(讨论了 Faunus,但可能非常相关),我不太确定是否有解决方案:

    https://github.com/thinkaurelius/titan/issues/809

    根据问题,0.4.x 的解决方案似乎是更改硬编码限制并重新编译:

    https://github.com/thinkaurelius/titan/blob/0.4.4/titan-core/src/main/java/com/thinkaurelius/titan/graphdb/database/serialize/kryo/KryoSerializer.java#L37

    【讨论】:

    • 我不认为我们的数据大小会像 KryoSerializer 中提到的那样超过 10 mb。所以,我怀疑它会解决我们的问题。而且,它(bug)是如何突然出现的仍然是个谜。是否与 cassandra 服务器中的数据损坏有关?
    • 我不知道我提供的链接之外的这个问题。我不能确定这是否与不运行修复或其他损坏有关,但是不运行适当的 cassandra 维护肯定会带来不必要的麻烦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2010-12-03
    • 2012-11-11
    相关资源
    最近更新 更多