You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by ji...@apache.org on 2023/03/06 01:20:57 UTC

[rocketmq] branch develop updated: [ISSUE #5883] DLedger commit log should override the getData (#5879)

This is an automated email from the ASF dual-hosted git repository.

jinrongtong pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new cc8823cf6 [ISSUE #5883] DLedger commit log should override the getData (#5879)
cc8823cf6 is described below

commit cc8823cf62a7137784bbe01562cd68118f3eac89
Author: Vincent Lee <co...@gmail.com>
AuthorDate: Mon Mar 6 09:20:41 2023 +0800

    [ISSUE #5883] DLedger commit log should override the getData (#5879)
    
    * fix: dledger commit log should override the getData
    
    Change-Id: I665c5b9d7e96c5b7ccd035b32272be7223d7f454
    
    * fix: adjust timer test case for dledger
    
    * test: remove some test case to speed up unit test
    
    Change-Id: I5aa348ab17977ce1f0e080f7801b28797ef82af9
    
    * test: remove other timer dledger test
    
    * Revert TimerMessageStoreTest
    
    ---------
    
    Co-authored-by: liwen.2022 <li...@bytedance.com>
    Co-authored-by: RongtongJin <ji...@mails.ucas.ac.cn>
---
 .../apache/rocketmq/store/dledger/DLedgerCommitLog.java | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java b/store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java
index 626402779..39906eae0 100644
--- a/store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java
+++ b/store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java
@@ -264,6 +264,23 @@ public class DLedgerCommitLog extends CommitLog {
 
         return null;
     }
+     
+    @Override
+    public boolean getData(final long offset, final int size, final ByteBuffer byteBuffer) {
+        if (offset < dividedCommitlogOffset) {
+            return super.getData(offset, size, byteBuffer);
+        }
+        if (offset >= dLedgerFileStore.getCommittedPos()) {
+            return false;
+        }
+        int mappedFileSize = this.dLedgerServer.getdLedgerConfig().getMappedFileSizeForEntryData();
+        MmapFile mappedFile = this.dLedgerFileList.findMappedFileByOffset(offset, offset == 0);
+        if (mappedFile != null) {
+            int pos = (int) (offset % mappedFileSize);
+            return mappedFile.getData(pos, size, byteBuffer);
+        }
+        return false;
+    }
 
     private void recover(long maxPhyOffsetOfConsumeQueue) {
         dLedgerFileStore.load();