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 {