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

yuzhou pushed a commit to branch revert-7694-dev/mem_copy
in repository https://gitbox.apache.org/repos/asf/rocketmq.git

commit 060d897e3e50ea42db05bb1bb8701376a23ef19d
Author: yuz10 <845238...@qq.com>
AuthorDate: Mon May 27 09:16:55 2024 +0800

    Revert "[ISSUE #7757] Use `CompositeByteBuf` to prevent memory copy. 
(#7694)"
    
    This reverts commit 7a36d4d736ae8d6d92658e3bdb18f1cd5c0afdb0.
---
 .../rocketmq/remoting/netty/FileRegionEncoder.java   | 20 ++++----------------
 .../remoting/netty/FileRegionEncoderTest.java        |  5 ++---
 2 files changed, 6 insertions(+), 19 deletions(-)

diff --git 
a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/FileRegionEncoder.java
 
b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/FileRegionEncoder.java
index 3522c7965c..7373a56070 100644
--- 
a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/FileRegionEncoder.java
+++ 
b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/FileRegionEncoder.java
@@ -18,9 +18,6 @@
 package org.apache.rocketmq.remoting.netty;
 
 import io.netty.buffer.ByteBuf;
-import io.netty.buffer.ByteBufAllocator;
-import io.netty.buffer.CompositeByteBuf;
-import io.netty.buffer.Unpooled;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.FileRegion;
 import io.netty.handler.codec.MessageToByteEncoder;
@@ -54,12 +51,9 @@ public class FileRegionEncoder extends 
MessageToByteEncoder<FileRegion> {
         WritableByteChannel writableByteChannel = new WritableByteChannel() {
             @Override
             public int write(ByteBuffer src) {
-                // To prevent mem_copy.
-                CompositeByteBuf b = (CompositeByteBuf) out;
-                // Have to increase writerIndex manually.
-                ByteBuf unpooled = Unpooled.wrappedBuffer(src);
-                b.addComponent(true, unpooled);
-                return unpooled.readableBytes();
+                int prev = out.writerIndex();
+                out.writeBytes(src);
+                return out.writerIndex() - prev;
             }
 
             @Override
@@ -82,10 +76,4 @@ public class FileRegionEncoder extends 
MessageToByteEncoder<FileRegion> {
             msg.transferTo(writableByteChannel, transferred);
         }
     }
-
-    @Override
-    protected ByteBuf allocateBuffer(ChannelHandlerContext ctx, FileRegion 
msg, boolean preferDirect) throws Exception {
-        ByteBufAllocator allocator = ctx.alloc();
-        return preferDirect ? allocator.compositeDirectBuffer() : 
allocator.compositeHeapBuffer();
-    }
-}
\ No newline at end of file
+}
diff --git 
a/remoting/src/test/java/org/apache/rocketmq/remoting/netty/FileRegionEncoderTest.java
 
b/remoting/src/test/java/org/apache/rocketmq/remoting/netty/FileRegionEncoderTest.java
index 0cbe627d80..6c7327f258 100644
--- 
a/remoting/src/test/java/org/apache/rocketmq/remoting/netty/FileRegionEncoderTest.java
+++ 
b/remoting/src/test/java/org/apache/rocketmq/remoting/netty/FileRegionEncoderTest.java
@@ -21,15 +21,14 @@ import io.netty.buffer.ByteBuf;
 import io.netty.channel.DefaultFileRegion;
 import io.netty.channel.FileRegion;
 import io.netty.channel.embedded.EmbeddedChannel;
-import org.junit.Assert;
-import org.junit.Test;
-
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.Random;
 import java.util.UUID;
+import org.junit.Assert;
+import org.junit.Test;
 
 public class FileRegionEncoderTest {
 

Reply via email to