1

我刚刚将我们的生产系统升级到 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();
    }
}

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

4

1 回答 1

1

好问题。我也在看代码。

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

于 2013-09-27T15:30:15.217 回答