Crearns commented on issue #1876: Broker flush when END_OF_FILE URL: https://github.com/apache/rocketmq/issues/1876#issuecomment-602360807 Thanks for your reply, but sorry i am newbie, I can not understand it, I retell my understanding. when ```(msgLen + END_FILE_MIN_BLANK_LENGTH) > maxBlank``` it will mark some data to mark the blank and return an END_OF_FILE result ```java if ((msgLen + END_FILE_MIN_BLANK_LENGTH) > maxBlank) { this.resetByteBuffer(this.msgStoreItemMemory, maxBlank); // 1 TOTALSIZE this.msgStoreItemMemory.putInt(maxBlank); // 2 MAGICCODE this.msgStoreItemMemory.putInt(CommitLog.BLANK_MAGIC_CODE); // 3 The remaining space may be any value // Here the length of the specially set maxBlank final long beginTimeMills = CommitLog.this.defaultMessageStore.now(); byteBuffer.put(this.msgStoreItemMemory.array(), 0, maxBlank); return new AppendMessageResult(AppendMessageStatus.END_OF_FILE, wroteOffset, maxBlank, msgId, msgInner.getStoreTimestamp(), queueOffset, CommitLog.this.defaultMessageStore.now() - beginTimeMills); } ``` and in the switch statement ```java case END_OF_FILE: unlockMappedFile = mappedFile; // Create a new file, re-write the message mappedFile = this.mappedFileQueue.getLastMappedFile(0); if (null == mappedFile) { // XXX: warn and notify me log.error("create mapped file2 error, topic: " + msg.getTopic() + " clientAddr: " + msg.getBornHostString()); beginTimeInLock = 0; return new PutMessageResult(PutMessageStatus.CREATE_MAPEDFILE_FAILED, result); } result = mappedFile.appendMessage(msg, this.appendMessageCallback); break; ``` when the result is END_OF_FILE, it will call ```result = mappedFile.appendMessage(msg, this.appendMessageCallback);``` to put the message to a new file, it will return a new result and break.Still in memory so far, and it will call ```handleDiskFlush(result, putMessageResult, msg);``` to flush, but it only flush the new file data, the old data that mark the blank can not flush Don't know if i'm right
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
