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

terrymanu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new b9911545bc8 Add high-frequency invocation annotations for Firebird 
BLOB operations (#40148)
b9911545bc8 is described below

commit b9911545bc85e2ea1576c844b04e62551f255961
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Oct 10 23:59:21 2026 +0800

    Add high-frequency invocation annotations for Firebird BLOB operations 
(#40148)
---
 .../protocol/firebird/constant/buffer/FirebirdParameterBuffer.java   | 2 ++
 .../constant/buffer/type/FirebirdBlobParameterBufferType.java        | 4 ++++
 .../packet/command/query/blob/FirebirdCreateBlobCommandPacket.java   | 2 ++
 .../firebird/command/query/blob/FirebirdOpenBlobCommandExecutor.java | 2 ++
 .../firebird/command/query/blob/FirebirdSeekBlobCommandExecutor.java | 2 ++
 .../firebird/command/query/blob/cache/FirebirdBlobReadCache.java     | 5 +++++
 .../firebird/command/query/blob/cache/FirebirdBlobWriteCache.java    | 2 ++
 .../firebird/command/query/info/FirebirdBlobInfoExecutor.java        | 2 ++
 8 files changed, 21 insertions(+)

diff --git 
a/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/constant/buffer/FirebirdParameterBuffer.java
 
b/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/constant/buffer/FirebirdParameterBuffer.java
index 5ad66bee4d7..95f24f58c64 100644
--- 
a/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/constant/buffer/FirebirdParameterBuffer.java
+++ 
b/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/constant/buffer/FirebirdParameterBuffer.java
@@ -21,6 +21,7 @@ import io.netty.buffer.ByteBuf;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.database.exception.core.exception.protocol.DatabaseProtocolException;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 
 import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
@@ -77,6 +78,7 @@ public final class FirebirdParameterBuffer {
         }
     }
     
+    @HighFrequencyInvocation
     private int readSizedIntValue(final ByteBuf parameterBuffer, final int 
length) {
         int result = 0;
         for (int i = 0; i < length; i++) {
diff --git 
a/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/constant/buffer/type/FirebirdBlobParameterBufferType.java
 
b/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/constant/buffer/type/FirebirdBlobParameterBufferType.java
index 5b0ec3ca23a..987fea6de1e 100644
--- 
a/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/constant/buffer/type/FirebirdBlobParameterBufferType.java
+++ 
b/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/constant/buffer/type/FirebirdBlobParameterBufferType.java
@@ -23,6 +23,7 @@ import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.database.protocol.firebird.constant.FirebirdValueFormat;
 import 
org.apache.shardingsphere.database.protocol.firebird.constant.buffer.FirebirdParameterBuffer;
 import 
org.apache.shardingsphere.database.protocol.firebird.constant.buffer.FirebirdParameterBufferType;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -64,6 +65,7 @@ public enum FirebirdBlobParameterBufferType implements 
FirebirdParameterBufferTy
      * @param code bpb type code
      * @return Firebird bpb type
      */
+    @HighFrequencyInvocation
     public static FirebirdBlobParameterBufferType valueOf(final int code) {
         FirebirdBlobParameterBufferType result = 
FIREBIRD_BPB_TYPE_CACHE.get(code);
         Preconditions.checkNotNull(result, "Cannot find code '%d' in bpb 
type", code);
@@ -76,6 +78,7 @@ public enum FirebirdBlobParameterBufferType implements 
FirebirdParameterBufferTy
      * @param version version of parameter buffer
      * @return is traditional type
      */
+    @HighFrequencyInvocation
     public static boolean isTraditionalType(final int version) {
         return 1 == version;
     }
@@ -85,6 +88,7 @@ public enum FirebirdBlobParameterBufferType implements 
FirebirdParameterBufferTy
      *
      * @return Firebird blob parameter buffer
      */
+    @HighFrequencyInvocation
     public static FirebirdParameterBuffer createBuffer() {
         return new 
FirebirdParameterBuffer(FirebirdBlobParameterBufferType::valueOf, 
FirebirdBlobParameterBufferType::isTraditionalType);
     }
diff --git 
a/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/blob/FirebirdCreateBlobCommandPacket.java
 
b/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/blob/FirebirdCreateBlobCommandPacket.java
index c45d3d03186..57af43064af 100644
--- 
a/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/blob/FirebirdCreateBlobCommandPacket.java
+++ 
b/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/blob/FirebirdCreateBlobCommandPacket.java
@@ -24,6 +24,7 @@ import 
org.apache.shardingsphere.database.protocol.firebird.constant.buffer.type
 import 
org.apache.shardingsphere.database.protocol.firebird.packet.command.FirebirdCommandPacket;
 import 
org.apache.shardingsphere.database.protocol.firebird.packet.command.FirebirdCommandPacketType;
 import 
org.apache.shardingsphere.database.protocol.firebird.payload.FirebirdPacketPayload;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 
 /**
  * Firebird create blob command packet.
@@ -58,6 +59,7 @@ public final class FirebirdCreateBlobCommandPacket extends 
FirebirdCommandPacket
      *
      * @return stream blob or not
      */
+    @HighFrequencyInvocation
     public boolean isStreamBlob() {
         Integer blobType = bpb.getValue(FirebirdBlobParameterBufferType.TYPE);
         return null != blobType && BLOB_TYPE_STREAM == blobType;
diff --git 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/FirebirdOpenBlobCommandExecutor.java
 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/FirebirdOpenBlobCommandExecutor.java
index 127eda03f10..a8c8edd06a7 100644
--- 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/FirebirdOpenBlobCommandExecutor.java
+++ 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/FirebirdOpenBlobCommandExecutor.java
@@ -23,6 +23,7 @@ import 
org.apache.shardingsphere.database.protocol.firebird.packet.command.query
 import 
org.apache.shardingsphere.database.protocol.firebird.packet.command.query.statement.execute.protocol.FirebirdBlobBinaryProtocolValue;
 import 
org.apache.shardingsphere.database.protocol.firebird.packet.generic.FirebirdGenericResponsePacket;
 import org.apache.shardingsphere.database.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import 
org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
@@ -82,6 +83,7 @@ public final class FirebirdOpenBlobCommandExecutor implements 
CommandExecutor {
         return blobData.get();
     }
     
+    @HighFrequencyInvocation
     private boolean isStreamBlob(final long blobId) {
         if (0L == blobId) {
             return false;
diff --git 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/FirebirdSeekBlobCommandExecutor.java
 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/FirebirdSeekBlobCommandExecutor.java
index 923a75b0da0..ecf05d55358 100644
--- 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/FirebirdSeekBlobCommandExecutor.java
+++ 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/FirebirdSeekBlobCommandExecutor.java
@@ -23,6 +23,7 @@ import 
org.apache.shardingsphere.database.exception.firebird.exception.protocol.
 import 
org.apache.shardingsphere.database.protocol.firebird.packet.command.query.blob.FirebirdSeekBlobCommandPacket;
 import 
org.apache.shardingsphere.database.protocol.firebird.packet.generic.FirebirdGenericResponsePacket;
 import org.apache.shardingsphere.database.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import 
org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
@@ -50,6 +51,7 @@ public final class FirebirdSeekBlobCommandExecutor implements 
CommandExecutor {
     private final ConnectionSession connectionSession;
     
     @Override
+    @HighFrequencyInvocation
     public Collection<DatabasePacket> execute() {
         int connectionId = connectionSession.getConnectionId();
         int blobHandle = 
FirebirdBlobHandleGenerator.getInstance().resolveBlobHandle(connectionId, 
packet.getBlobHandle());
diff --git 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/cache/FirebirdBlobReadCache.java
 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/cache/FirebirdBlobReadCache.java
index 5adae1f9641..f6615562040 100644
--- 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/cache/FirebirdBlobReadCache.java
+++ 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/cache/FirebirdBlobReadCache.java
@@ -21,6 +21,7 @@ import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 
 import java.util.Arrays;
 import java.util.Map;
@@ -109,6 +110,7 @@ public final class FirebirdBlobReadCache {
      * @param blobHandle blob handle
      * @return optional total BLOB size
      */
+    @HighFrequencyInvocation
     public OptionalInt getTotalSize(final int connectionId, final int 
blobHandle) {
         BlobReadCursor cursor = getCursorMap(connectionId).get(blobHandle);
         return null == cursor ? OptionalInt.empty() : 
OptionalInt.of(cursor.content.length);
@@ -121,6 +123,7 @@ public final class FirebirdBlobReadCache {
      * @param blobHandle blob handle
      * @return optional stream BLOB state
      */
+    @HighFrequencyInvocation
     public Optional<Boolean> isStreamBlob(final int connectionId, final int 
blobHandle) {
         BlobReadCursor cursor = getCursorMap(connectionId).get(blobHandle);
         return null == cursor ? Optional.empty() : 
Optional.of(cursor.streamBlob);
@@ -138,6 +141,7 @@ public final class FirebirdBlobReadCache {
      * @param offset offset to position by
      * @return optional resulting position
      */
+    @HighFrequencyInvocation
     public OptionalInt seek(final int connectionId, final int blobHandle, 
final int seekMode, final int offset) {
         BlobReadCursor cursor = getCursorMap(connectionId).get(blobHandle);
         return null == cursor ? OptionalInt.empty() : 
OptionalInt.of(cursor.seek(seekMode, offset));
@@ -171,6 +175,7 @@ public final class FirebirdBlobReadCache {
             return content.length - offset;
         }
         
+        @HighFrequencyInvocation
         private int seek(final int seekMode, final int seekOffset) {
             int position = getSeekPosition(seekMode, seekOffset);
             offset = Math.min(Math.max(position, 0), content.length);
diff --git 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/cache/FirebirdBlobWriteCache.java
 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/cache/FirebirdBlobWriteCache.java
index 39993633d3d..b093b3a78b7 100644
--- 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/cache/FirebirdBlobWriteCache.java
+++ 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/blob/cache/FirebirdBlobWriteCache.java
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.proxy.frontend.firebird.command.query.blob.cac
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 
 import java.util.Map;
 import java.util.Optional;
@@ -179,6 +180,7 @@ public final class FirebirdBlobWriteCache {
      * @param blobId blob id
      * @return whether the BLOB is a stream BLOB
      */
+    @HighFrequencyInvocation
     public boolean isStreamBlob(final int connectionId, final long blobId) {
         FirebirdBlobWrite write = getIdMap(connectionId).get(blobId);
         return null != write && write.isStreamBlob();
diff --git 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/info/FirebirdBlobInfoExecutor.java
 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/info/FirebirdBlobInfoExecutor.java
index 42e206c2c8f..72c36f877f3 100644
--- 
a/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/info/FirebirdBlobInfoExecutor.java
+++ 
b/proxy/frontend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/info/FirebirdBlobInfoExecutor.java
@@ -22,6 +22,7 @@ import 
org.apache.shardingsphere.database.protocol.firebird.packet.command.query
 import 
org.apache.shardingsphere.database.protocol.firebird.packet.command.query.info.type.blob.FirebirdBlobInfoReturnPacket;
 import 
org.apache.shardingsphere.database.protocol.firebird.packet.generic.FirebirdGenericResponsePacket;
 import org.apache.shardingsphere.database.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import 
org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
 import 
org.apache.shardingsphere.proxy.frontend.firebird.command.query.blob.cache.FirebirdBlobReadCache;
@@ -58,6 +59,7 @@ public final class FirebirdBlobInfoExecutor implements 
CommandExecutor {
         return 
FirebirdBlobWriteCache.getInstance().getBlobSizeByHandle(connectionId, 
blobHandle).orElse(0);
     }
     
+    @HighFrequencyInvocation
     private boolean isStreamBlob(final int connectionId, final int blobHandle) 
{
         return FirebirdBlobReadCache.getInstance().isStreamBlob(connectionId, 
blobHandle).orElse(false);
     }

Reply via email to