我刚刚将我们的生产系统升级到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();
}
}
有谁知道这个警告的原因是什么,以及如何解决?我不只是想让记录器保持沉默,我想知道它的根本原因。
答案 0 :(得分:1)
好问题。我也在查看代码。
您是否知道在白天是否添加/删除了成员(因此重新分配)?因为那可能是原因;因为锁(信号量)不随分区移动。因此,可能会发生notifyBackup在新分区所有者上完成,而锁存储在旧分区所有者(它不会被移动)。