Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,46 @@

public final class DataNodePipeMessages {

public static final String
LOG_SUBSCRIPTION_PREFETCH_ROUND_STARTING_FOR_ARG_ACTIVE_ARG_INITIALIZED_ARG_CLOSED_ARG_PENDINGENTRIES_ARG_PREFETCHEDEVENTS_ARG_INFLIGHTEVENTS_ARG_NEXTREADSEARCHINDEX_ARG_F75FF2CD =
"Subscription prefetch round starting for {}: active={}, initialized={}, closed={}, pendingEntries={}, prefetchedEvents={}, inFlightEvents={}, nextReadSearchIndex={}.";

public static final String
LOG_SUBSCRIPTION_PREFETCH_ROUND_COMPLETED_FOR_ARG_DURATIONMS_ARG_RESULT_ARG_DELAYMS_ARG_READSEARCHINDEX_ARG_ARG_PENDINGACCEPTED_ARG_WALACCEPTED_ARG_PENDINGENTRIES_ARG_PREFETCHEDEVENTS_ARG_INFLIGHTEVENTS_ARG_MEMORYBLOCKREASON_ARG_ADMISSIONBLOCKREASON_ARG_0F0A3D57 =
"Subscription prefetch round completed for {}: durationMs={}, result={}, delayMs={}, readSearchIndex={} -> {}, pendingAccepted={}, walAccepted={}, pendingEntries={}, prefetchedEvents={}, inFlightEvents={}, memoryBlockReason={}, admissionBlockReason={}.";

public static final String
LOG_SUBSCRIPTION_PREFETCH_ACQUIRED_QUEUE_READ_LOCK_FOR_ARG_AFTER_ARG_MS_425E9A20 =
"Subscription prefetch acquired queue read lock for {} after {} ms.";

public static final String
LOG_SUBSCRIPTION_PREFETCH_SCANNING_WAL_FOR_ARG_NEXTREADSEARCHINDEX_ARG_MAXWALENTRIES_ARG_PREFETCHEDEVENTS_ARG_AA16EEA1 =
"Subscription prefetch scanning WAL for {}: nextReadSearchIndex={}, maxWalEntries={}, prefetchedEvents={}.";

public static final String
LOG_SUBSCRIPTION_PREFETCH_PREPARING_ENTRY_FOR_ARG_SEARCHINDEX_ARG_WRITERNODEID_ARG_LOCALSEQ_ARG_EE485CC7 =
"Subscription prefetch preparing entry for {}: searchIndex={}, writerNodeId={}, localSeq={}.";

public static final String
LOG_SUBSCRIPTION_PREFETCH_PREPARED_ENTRY_FOR_ARG_SEARCHINDEX_ARG_WRITERNODEID_ARG_LOCALSEQ_ARG_TABLETS_ARG_ESTIMATEDBYTES_ARG_DURATIONMS_ARG_E91BA0CD =
"Subscription prefetch prepared entry for {}: searchIndex={}, writerNodeId={}, localSeq={}, tablets={}, estimatedBytes={}, durationMs={}.";

public static final String
LOG_SUBSCRIPTION_PREFETCH_MEMORY_RESERVATION_REJECTED_FOR_ARG_ENTRYBYTES_ARG_REASON_ARG_QUOTABYTES_ARG_FREEBYTES_ARG_98903D3B =
"Subscription prefetch memory reservation rejected for {}: entryBytes={}, reason={}, quotaBytes={}, freeBytes={}.";

public static final String
LOG_SUBSCRIPTION_PREFETCH_TASK_ARG_SCHEDULING_AFTER_ROUND_RESULT_ARG_WAKEUPPENDING_ARG_ENQUEUENOW_ARG_DELAYMS_ARG_602EA4A4 =
"Subscription prefetch task {} scheduling after round: result={}, wakeupPending={}, enqueueNow={}, delayMs={}.";

public static final String
LOG_SUBSCRIPTION_MEMORY_OVERCOMMIT_ENTRYBYTES_ARG_BUDGETBYTES_ARG_OVERCOMMITBYTES_ARG_OTHER_QUEUES_MAY_BE_BLOCKED_UNTIL_RELEASE_DF9B914E =
"Subscription memory overcommit: entryBytes={}, budgetBytes={}, overcommitBytes={}; other queues may be blocked until release.";

public static final String
LOG_SUBSCRIPTION_PREFETCH_ROUND_TOOK_ARG_MS_FOR_ARG_DELIVERYIDLETIMEMS_ARG_MEMORYUSEDBYTES_ARG_MEMORYLIMITBYTES_ARG_INSPECT_WORKER_STACKS_WAL_I_O_AND_JVM_PAUSES_D399CEDD =
"Subscription prefetch round took {} ms for {}. deliveryIdleTimeMs={}, memoryUsedBytes={}, memoryLimitBytes={}; inspect worker stacks, WAL I/O and JVM pauses.";

public static final String LOG_FAILED_TO_RESOLVE_TRANSFER_EXCEPTION_A4F5397A =
"Failed to resolve transfer exception.";

Expand Down Expand Up @@ -2124,7 +2164,7 @@ private DataNodePipeMessages() {}
"ConsensusPrefetchingQueue {}: periodic stats, lag={}, pendingDelta={}, walDelta={}, "
+ "pendingTotal={}, walTotal={}, walGapSkippedEntries={}, pendingQueueSize={}, "
+ "prefetchingQueueSize={}, inFlightEventsSize={}, realtimeWriterCount={}, "
+ "walHasNext={}, isActive={}, subtaskScheduled={}";
+ "walNextBuffered={}, isActive={}, subtaskScheduled={}";
public static final String PIPE_LOG_CONSENSUSPREFETCHINGQUEUE_WAITING_MS_FOR_WAL_GAP_TO_BECOME_7D91C6C5 =
"ConsensusPrefetchingQueue {}: waiting {}ms for WAL gap [{}, {}) to become visible, "
+ "currentNextExpected={}, currentWalIndex={}, seekGeneration={}";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,46 @@

public final class DataNodePipeMessages {

public static final String
LOG_SUBSCRIPTION_PREFETCH_ROUND_STARTING_FOR_ARG_ACTIVE_ARG_INITIALIZED_ARG_CLOSED_ARG_PENDINGENTRIES_ARG_PREFETCHEDEVENTS_ARG_INFLIGHTEVENTS_ARG_NEXTREADSEARCHINDEX_ARG_F75FF2CD =
"订阅预取轮次开始,队列 {}:active={},initialized={},closed={},pendingEntries={},prefetchedEvents={},inFlightEvents={},nextReadSearchIndex={}。";

public static final String
LOG_SUBSCRIPTION_PREFETCH_ROUND_COMPLETED_FOR_ARG_DURATIONMS_ARG_RESULT_ARG_DELAYMS_ARG_READSEARCHINDEX_ARG_ARG_PENDINGACCEPTED_ARG_WALACCEPTED_ARG_PENDINGENTRIES_ARG_PREFETCHEDEVENTS_ARG_INFLIGHTEVENTS_ARG_MEMORYBLOCKREASON_ARG_ADMISSIONBLOCKREASON_ARG_0F0A3D57 =
"订阅预取轮次结束,队列 {}:durationMs={},result={},delayMs={},readSearchIndex={} -> {},pendingAccepted={},walAccepted={},pendingEntries={},prefetchedEvents={},inFlightEvents={},memoryBlockReason={},admissionBlockReason={}。";

public static final String
LOG_SUBSCRIPTION_PREFETCH_ACQUIRED_QUEUE_READ_LOCK_FOR_ARG_AFTER_ARG_MS_425E9A20 =
"订阅预取已获取队列 {} 的读锁,距离轮次开始已过 {} ms。";

public static final String
LOG_SUBSCRIPTION_PREFETCH_SCANNING_WAL_FOR_ARG_NEXTREADSEARCHINDEX_ARG_MAXWALENTRIES_ARG_PREFETCHEDEVENTS_ARG_AA16EEA1 =
"订阅预取开始扫描队列 {} 的 WAL:nextReadSearchIndex={},maxWalEntries={},prefetchedEvents={}。";

public static final String
LOG_SUBSCRIPTION_PREFETCH_PREPARING_ENTRY_FOR_ARG_SEARCHINDEX_ARG_WRITERNODEID_ARG_LOCALSEQ_ARG_EE485CC7 =
"订阅预取开始解析和转换队列 {} 的 entry:searchIndex={},writerNodeId={},localSeq={}。";

public static final String
LOG_SUBSCRIPTION_PREFETCH_PREPARED_ENTRY_FOR_ARG_SEARCHINDEX_ARG_WRITERNODEID_ARG_LOCALSEQ_ARG_TABLETS_ARG_ESTIMATEDBYTES_ARG_DURATIONMS_ARG_E91BA0CD =
"订阅预取完成队列 {} 的 entry 解析和转换:searchIndex={},writerNodeId={},localSeq={},tablets={},estimatedBytes={},durationMs={}。";

public static final String
LOG_SUBSCRIPTION_PREFETCH_MEMORY_RESERVATION_REJECTED_FOR_ARG_ENTRYBYTES_ARG_REASON_ARG_QUOTABYTES_ARG_FREEBYTES_ARG_98903D3B =
"订阅预取队列 {} 的内存预留被拒绝:entryBytes={},reason={},quotaBytes={},freeBytes={}。";

public static final String
LOG_SUBSCRIPTION_PREFETCH_TASK_ARG_SCHEDULING_AFTER_ROUND_RESULT_ARG_WAKEUPPENDING_ARG_ENQUEUENOW_ARG_DELAYMS_ARG_602EA4A4 =
"订阅预取任务 {} 的轮次后调度:result={},wakeupPending={},enqueueNow={},delayMs={}。";

public static final String
LOG_SUBSCRIPTION_MEMORY_OVERCOMMIT_ENTRYBYTES_ARG_BUDGETBYTES_ARG_OVERCOMMITBYTES_ARG_OTHER_QUEUES_MAY_BE_BLOCKED_UNTIL_RELEASE_DF9B914E =
"订阅内存超出预算:entryBytes={},budgetBytes={},overcommitBytes={};其它队列可能阻塞,直到该 entry 释放。";

public static final String
LOG_SUBSCRIPTION_PREFETCH_ROUND_TOOK_ARG_MS_FOR_ARG_DELIVERYIDLETIMEMS_ARG_MEMORYUSEDBYTES_ARG_MEMORYLIMITBYTES_ARG_INSPECT_WORKER_STACKS_WAL_I_O_AND_JVM_PAUSES_D399CEDD =
"订阅预取轮次耗时 {} ms,队列 {}。deliveryIdleTimeMs={},memoryUsedBytes={},memoryLimitBytes={};请检查工作线程栈、WAL I/O 和 JVM 停顿。";

public static final String LOG_FAILED_TO_RESOLVE_TRANSFER_EXCEPTION_A4F5397A =
"解析 transfer exception 失败。";

Expand Down Expand Up @@ -1970,7 +2010,7 @@ private DataNodePipeMessages() {}
public static final String PIPE_LOG_CONSENSUSPREFETCHINGQUEUE_PERIODIC_STATS_LAG_PENDINGDELTA_WALGAPSKIPPEDENTRIES_9A4E6608 =
"ConsensusPrefetchingQueue {}:周期统计,lag={},pendingDelta={},walDelta={},pendingTotal={},"
+ "walTotal={},walGapSkippedEntries={},pendingQueueSize={},prefetchingQueueSize={},"
+ "inFlightEventsSize={},realtimeWriterCount={},walHasNext={},isActive={},"
+ "inFlightEventsSize={},realtimeWriterCount={},walNextBuffered={},isActive={},"
+ "subtaskScheduled={}";
public static final String PIPE_LOG_CONSENSUSPREFETCHINGQUEUE_WAITING_MS_FOR_WAL_GAP_TO_BECOME_7D91C6C5 =
"ConsensusPrefetchingQueue {}:等待 {}ms,使 WAL 缺口 [{}, {}) 可见,currentNextExpected={},"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,9 @@ static InsertNode deserializeToInsertNode(final IndexedConsensusRequest indexedR
try {
if (req instanceof IoTConsensusRequest) {
// WAL entries read from file are wrapped as IoTConsensusRequest (ByteBuffer).
planNode = WALEntry.deserializeForConsensus(req.serializeToByteBuffer());
// Preserve the request's buffer position so memory backpressure can retry every
// fragment. duplicate() shares the bytes without retaining a second payload copy.
planNode = WALEntry.deserializeForConsensus(req.serializeToByteBuffer().duplicate());
} else if (req instanceof InsertNode) {
// In-memory entries that are not yet flushed to WAL file may already be PlanNode.
planNode = (PlanNode) req;
Expand Down
Loading
Loading