Hazelcast记录“没有为呼叫找到备份记录”

时间:2013-09-27 14:21:46

标签: logging hazelcast

我刚刚将我们的生产系统升级到Hazelcast 3.0.1(从2.5开始)。升级后,我们在日志中遇到了很多WARN,说明如下:

[<ip>]:10102 [dev] No backup record found for call[148681]!

它们每天出现约30次,相比之下,每天约有100,000到500,000次分布式地图访问。这意味着这恰好发生了。

我试图理解为什么会出现这些警告,但却没有运气。它们从第568行的类OperationServiceImpl中记录,如下所示:

@PrivateApi
void notifyBackupCall(long callId) {
    final Semaphore lock = backupCalls.get(callId);
    if (lock == null) {
        logger.warning("No backup record found for call[" + callId + "]!");
    } else {
        lock.release();
    }
}

有谁知道这个警告的原因是什么,以及如何解决?我不只是想让记录器保持沉默,我想知道它的根本原因。

1 个答案:

答案 0 :(得分:1)

好问题。我也在查看代码。

您是否知道在白天是否添加/删除了成员(因此重新分配)?因为那可能是原因;因为锁(信号量)不随分区移动。因此,可能会发生notifyBackup在新分区所有者上完成,而锁存储在旧分区所有者(它不会被移动)。