private boolean isTimeToReportOffset() { long interval = HAService.this.defaultMessageStore.getSystemClock().now() - this.lastWriteTimestamp; boolean needHeart = interval > HAService.this.defaultMessageStore.getMessageStoreConfig() .getHaSendHeartbeatInterval(); return needHeart; }
if (readSize > 0) { readSizeZeroTimes = 0; this.lastReadTimestamp = HAConnection.this.haService.getDefaultMessageStore().getSystemClock().now(); if ((this.byteBufferRead.position() - this.processPostion) >= 8) { int pos = this.byteBufferRead.position() - (this.byteBufferRead.position() % 8);
if (writeSize > 0) { writeSizeZeroTimes = 0; this.lastWriteTimestamp = HAConnection.this.haService.getDefaultMessageStore().getSystemClock().now(); } else if (writeSize == 0) { if (++writeSizeZeroTimes >= 3) { if (writeSize > 0) { writeSizeZeroTimes = 0; this.lastWriteTimestamp = HAConnection.this.haService.getDefaultMessageStore().getSystemClock().now(); } else if (writeSize == 0) { if (++writeSizeZeroTimes >= 3) {
private boolean processReadEvent() { int readSizeZeroTimes = 0; while (this.byteBufferRead.hasRemaining()) { try { int readSize = this.socketChannel.read(this.byteBufferRead); if (readSize > 0) { lastWriteTimestamp = HAService.this.defaultMessageStore.getSystemClock().now(); readSizeZeroTimes = 0; boolean result = this.dispatchReadRequest(); if (!result) { log.error("HAClient, dispatchReadRequest error"); return false; } } else if (readSize == 0) { if (++readSizeZeroTimes >= 3) { break; } } else { log.info("HAClient, processReadEvent read socket < 0"); return false; } } catch (IOException e) { log.info("HAClient, processReadEvent read socket exception", e); return false; } } return true; }
long beginTime = this.getSystemClock().now(); PutMessageResult result = this.commitLog.putMessage(msg); long eclipseTime = this.getSystemClock().now() - beginTime; if (eclipseTime > 500) { log.warn("putMessage not in lock eclipse time(ms)={}, bodyLength={}", eclipseTime, msg.getBody().length);
long interval = HAConnection.this.haService.getDefaultMessageStore().getSystemClock().now() - this.lastReadTimestamp; if (interval > HAConnection.this.haService.getDefaultMessageStore().getMessageStoreConfig().getHaHousekeepingInterval()) { log.warn("ha housekeeping, found this connection[" + HAConnection.this.clientAddr + "] expired, " + interval);
long beginTime = this.getSystemClock().now(); PutMessageResult result = this.commitLog.putMessages(messageExtBatch); long eclipseTime = this.getSystemClock().now() - beginTime; if (eclipseTime > 500) { log.warn("not in lock eclipse time(ms)={}, bodyLength={}", eclipseTime, messageExtBatch.getBody().length);
HAConnection.this.haService.getDefaultMessageStore().getSystemClock().now() - this.lastWriteTimestamp;
long beginTime = this.getSystemClock().now(); this.storeStatsService.getGetMessageTimesTotalMiss().incrementAndGet(); long eclipseTime = this.getSystemClock().now() - beginTime; this.storeStatsService.setGetMessageEntireTimeMax(eclipseTime);
long beginLockTimestamp = this.defaultMessageStore.getSystemClock().now(); this.beginTimeInLock = beginLockTimestamp; eclipseTimeInLock = this.defaultMessageStore.getSystemClock().now() - beginLockTimestamp; beginTimeInLock = 0; } finally {
HAService.this.getDefaultMessageStore().getSystemClock().now() - this.lastWriteTimestamp; if (interval > HAService.this.getDefaultMessageStore().getMessageStoreConfig()
long beginLockTimestamp = this.defaultMessageStore.getSystemClock().now(); this.beginTimeInLock = beginLockTimestamp; eclipseTimeInLock = this.defaultMessageStore.getSystemClock().now() - beginLockTimestamp; beginTimeInLock = 0; } finally {
public void notifyTransferSome(final HAConnection conn, final long offset) { for (long value = this.push2SlaveMaxOffset.get(); offset > value; ) { boolean ok = this.push2SlaveMaxOffset.compareAndSet(value, offset); if (ok) { this.groupTransferService.notifyTransferSome(); break; } else { value = this.push2SlaveMaxOffset.get(); } } if (slaveOffsetAck.containsKey(conn)) { slaveOffsetAck.get(conn).update(offset, this.defaultMessageStore.getSystemClock().now()); } }
private boolean processReadEvent() { int readSizeZeroTimes = 0; while (this.byteBufferRead.hasRemaining()) { try { int readSize = this.socketChannel.read(this.byteBufferRead); if (readSize > 0) { lastWriteTimestamp = HAService.this.defaultMessageStore.getSystemClock().now(); readSizeZeroTimes = 0; boolean result = this.dispatchReadRequest(); if (!result) { log.error("HAClient, dispatchReadRequest error"); return false; } } else if (readSize == 0) { if (++readSizeZeroTimes >= 3) { break; } } else { log.info("HAClient, processReadEvent read socket < 0"); return false; } } catch (IOException e) { log.info("HAClient, processReadEvent read socket exception", e); return false; } } return true; }
private long getMinOffsetInSync() { long minOffset = -1; long curTime = this.defaultMessageStore.getSystemClock().now(); long inSyncInterval = IN_SYNC_OFFSET_ACK_INTERVAL_COUNT * this.defaultMessageStore.getMessageStoreConfig().getHaSendHeartbeatInterval(); for (Map.Entry<HAConnection, OffsetAckInfo> entry : slaveOffsetAck.entrySet()) { if (curTime - entry.getValue().getTimestamp() < inSyncInterval) { if (minOffset == -1 || minOffset < entry.getValue().getOffset()) { minOffset = entry.getValue().getOffset(); } } } return minOffset; }
private boolean isTimeToReportOffset() { long interval = HAService.this.defaultMessageStore.getSystemClock().now() - this.lastWriteTimestamp; boolean needHeart = interval > HAService.this.defaultMessageStore.getMessageStoreConfig() .getHaSendHeartbeatInterval(); return needHeart; }
public boolean truncateNotSync() { if (BrokerRole.SLAVE != messageStoreConfig.getBrokerRole()) { log.warn("broker role is not slave, can not truncate data"); return true; } long phyOffsetSync = getInSyncOffsetSaved(); if (phyOffsetSync == -1) { log.info("no offset save, do not check and truncate"); return true; } long startTime = getSystemClock().now(); long phyOffsetCur = getMaxPhyOffset(); if (phyOffsetSync > phyOffsetCur) { log.warn("offset:{} > current offset:{}, no need to truncate", phyOffsetSync, phyOffsetCur); return false; } else if ((phyOffsetCur - phyOffsetSync) > COMMIT_LOG_TRUNCATE_COUNT_MAX * messageStoreConfig.getMapedFileSizeCommitLog()) { log.warn("truncate size({}) exceeded the threshold({}), do not truncate", phyOffsetCur - phyOffsetSync, COMMIT_LOG_TRUNCATE_COUNT_MAX * messageStoreConfig.getMapedFileSizeCommitLog()); return false; } indexService.deleteExpiredFile(phyOffsetSync); log.info("truncate index file to offset:{}", phyOffsetSync); //truncate commit log and consumer queue file commitLog.truncate(phyOffsetSync); log.info("truncate commit log to offset:{}", phyOffsetSync); this.recoverTopicQueueTable(); log.info("update topic queue tables"); log.info("truncate completely, from {} back to {}, cost:{} ms", phyOffsetCur, phyOffsetSync, getSystemClock().now() - startTime); return true; }
public void truncate(long phyOffset) { String backupDirPath = StorePathConfigHelper.getBackupStoreSubDirPath(defaultMessageStore.getMessageStoreConfig().getStorePathRootDir(), String.valueOf(defaultMessageStore.getSystemClock().now())); File dir = new File(backupDirPath); if (!dir.exists()) { dir.mkdirs(); } this.mappedFileQueue.backupFiles(phyOffset, backupDirPath); this.mappedFileQueue.setFlushedWhere(phyOffset); this.mappedFileQueue.setCommittedWhere(phyOffset); this.mappedFileQueue.truncateDirtyFiles(phyOffset); // Clear ConsumeQueue redundant data this.defaultMessageStore.truncateDirtyLogicFiles(phyOffset); }
long interval = HAConnection.this.haService.getDefaultMessageStore().getSystemClock().now() - this.lastReadTimestamp; if (interval > HAConnection.this.haService.getDefaultMessageStore().getMessageStoreConfig().getHaHousekeepingInterval()) { log.warn("ha housekeeping, found this connection[" + HAConnection.this.clientAddr + "] expired, " + interval);
HAService.this.getDefaultMessageStore().getSystemClock().now() - this.lastWriteTimestamp; if (interval > HAService.this.getDefaultMessageStore().getMessageStoreConfig()