Преглед на файлове

Serialize ReplicationRequest reshard shardcount summary as VInt instead of Int (#135648)

This should always save at least 2 bytes of 4, and almost always 3.
Brendan Cully преди 1 седмица
родител
ревизия
1c11b94d27

+ 14 - 7
server/src/main/java/org/elasticsearch/action/support/replication/ReplicationRequest.java

@@ -38,7 +38,10 @@ public abstract class ReplicationRequest<Request extends ReplicationRequest<Requ
     implements
         IndicesRequest {
 
+    // superseded
     private static final TransportVersion INDEX_RESHARD_SHARDCOUNT_SUMMARY = TransportVersion.fromName("index_reshard_shardcount_summary");
+    // bumped to use VInt instead of Int
+    private static final TransportVersion INDEX_RESHARD_SHARDCOUNT_SMALL = TransportVersion.fromName("index_reshard_shardcount_small");
 
     public static final TimeValue DEFAULT_TIMEOUT = TimeValue.timeValueMinutes(1);
 
@@ -126,14 +129,16 @@ public abstract class ReplicationRequest<Request extends ReplicationRequest<Requ
             index = in.readString();
         }
         routedBasedOnClusterVersion = in.readVLong();
-        if (in.getTransportVersion().supports(INDEX_RESHARD_SHARDCOUNT_SUMMARY)) {
-            if (thinRead) {
-                this.reshardSplitShardCountSummary = reshardSplitShardCountSummary;
-            } else {
+        if (thinRead) {
+            this.reshardSplitShardCountSummary = reshardSplitShardCountSummary;
+        } else {
+            if (in.getTransportVersion().supports(INDEX_RESHARD_SHARDCOUNT_SMALL)) {
+                this.reshardSplitShardCountSummary = in.readVInt();
+            } else if (in.getTransportVersion().supports(INDEX_RESHARD_SHARDCOUNT_SUMMARY)) {
                 this.reshardSplitShardCountSummary = in.readInt();
+            } else {
+                this.reshardSplitShardCountSummary = 0;
             }
-        } else {
-            this.reshardSplitShardCountSummary = 0;
         }
     }
 
@@ -262,7 +267,9 @@ public abstract class ReplicationRequest<Request extends ReplicationRequest<Requ
         out.writeTimeValue(timeout);
         out.writeString(index);
         out.writeVLong(routedBasedOnClusterVersion);
-        if (out.getTransportVersion().supports(INDEX_RESHARD_SHARDCOUNT_SUMMARY)) {
+        if (out.getTransportVersion().supports(INDEX_RESHARD_SHARDCOUNT_SMALL)) {
+            out.writeVInt(reshardSplitShardCountSummary);
+        } else if (out.getTransportVersion().supports(INDEX_RESHARD_SHARDCOUNT_SUMMARY)) {
             out.writeInt(reshardSplitShardCountSummary);
         }
     }

+ 1 - 0
server/src/main/resources/transport/definitions/referable/index_reshard_shardcount_small.csv

@@ -0,0 +1 @@
+9181000

+ 1 - 1
server/src/main/resources/transport/upper_bounds/9.2.csv

@@ -1 +1 @@
-elastic_reranker_chunking_configuration,9180000
+index_reshard_shardcount_small,9181000