com.thinkaurelius.titan.diskstorage.PermanentBackendException:意外的中断

时间:2016-11-23 07:06:44

标签: titan

升级到Titan 1.0.0后,我开始在加载时看到以下异常,使用Cassandra(2.2.6)作为存储后端:

Caused by: java.lang.InterruptedException: sleep interrupted
       at java.lang.Thread.sleep(Native Method)[:1.8.0_102]
       at java.lang.Thread.sleep(Thread.java:340)[:1.8.0_102]
       at
java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386)[:1.8.0_102]
       at
com.thinkaurelius.titan.diskstorage.util.time.TimestampProviders.sleepPast(TimestampProviders.java:138)
       at
com.thinkaurelius.titan.diskstorage.common.DistributedStoreManager.sleepAfterWrite(DistributedStoreManager.java:222)
       ... 66 more

可以通过配置修复吗? 虽然时间戳周围有几个可用的配置项,但我没有发现任何与时间戳提供者本身相关的信息。

1 个答案:

答案 0 :(得分:2)

您应该检查您的Cassandra日志。我发现当Cassandra开始compaction进程时,负载下的Titan会开始抛出这些类型的错误以及Timeout错误。

Grep for the keyword" GC"在/var/log/cassandra/system.log中使用dstat监视磁盘使用情况。如果你看到" GC"通常情况下,你经常会进行大规模的压缩,这会让泰坦陷入困境。

为了解决这个问题,您可以尝试优化将数据加载到titan中的方式,以免经常造成压缩。

以下是我们尝试过的适用于我们案例的内容:

  1. 避免删除。删除会触发逻辑删除,从而导致压缩。
  2. 增加JVM的大小。导致压缩运行的一个原因是当你开始耗尽内存时,这样就不太可能运行了。
  3. 您可以尝试使用不同的compaction strategies。每个都针对不同的用例进行了优化。