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

rpuch pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 3995a15fc3 IGNITE-23630 Store catalog object IDs as varints (#4777)
3995a15fc3 is described below

commit 3995a15fc37686bc4f4046cede39ccfc37d6988a
Author: Roman Puchkovskiy <[email protected]>
AuthorDate: Sat Nov 23 11:23:02 2024 +0400

    IGNITE-23630 Store catalog object IDs as varints (#4777)
    
    Also, collection/array lengths, tokens and other ints/longs that will most 
probably be small are switched to varint encoding to save space
---
 .../descriptors/CatalogHashIndexDescriptor.java    | 12 ++++-----
 .../descriptors/CatalogSchemaDescriptor.java       |  8 +++---
 .../descriptors/CatalogSortedIndexDescriptor.java  | 12 ++++-----
 .../descriptors/CatalogSystemViewDescriptor.java   | 12 ++++-----
 .../descriptors/CatalogTableColumnDescriptor.java  | 16 ++++++------
 .../descriptors/CatalogTableDescriptor.java        | 30 +++++++++++-----------
 .../descriptors/CatalogTableSchemaVersions.java    |  4 +--
 .../catalog/descriptors/CatalogZoneDescriptor.java | 28 ++++++++++----------
 .../internal/catalog/storage/AlterColumnEntry.java |  4 +--
 .../internal/catalog/storage/DropColumnsEntry.java |  4 +--
 .../internal/catalog/storage/DropIndexEntry.java   |  4 +--
 .../internal/catalog/storage/DropTableEntry.java   |  4 +--
 .../internal/catalog/storage/DropZoneEntry.java    |  4 +--
 .../catalog/storage/MakeIndexAvailableEntry.java   |  4 +--
 .../internal/catalog/storage/NewColumnsEntry.java  |  4 +--
 .../catalog/storage/ObjectIdGenUpdateEntry.java    |  4 +--
 .../internal/catalog/storage/RemoveIndexEntry.java |  4 +--
 .../internal/catalog/storage/RenameIndexEntry.java |  4 +--
 .../internal/catalog/storage/RenameTableEntry.java |  4 +--
 .../catalog/storage/SetDefaultZoneEntry.java       |  4 +--
 .../internal/catalog/storage/SnapshotEntry.java    | 12 ++++-----
 .../catalog/storage/StartBuildingIndexEntry.java   |  4 +--
 .../internal/catalog/storage/VersionedUpdate.java  | 16 ++++++------
 .../serialization/CatalogSerializationUtils.java   | 19 +++++++-------
 .../catalog/storage/UpdateLogImplTest.java         |  4 +--
 25 files changed, 113 insertions(+), 112 deletions(-)

diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogHashIndexDescriptor.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogHashIndexDescriptor.java
index 4df0614392..cacf0c7637 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogHashIndexDescriptor.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogHashIndexDescriptor.java
@@ -118,10 +118,10 @@ public class CatalogHashIndexDescriptor extends 
CatalogIndexDescriptor {
     private static class HashIndexDescriptorSerializer implements 
CatalogObjectSerializer<CatalogHashIndexDescriptor> {
         @Override
         public CatalogHashIndexDescriptor readFrom(IgniteDataInput input) 
throws IOException {
-            int id = input.readInt();
+            int id = input.readVarIntAsInt();
             String name = input.readUTF();
-            long updateToken = input.readLong();
-            int tableId = input.readInt();
+            long updateToken = input.readVarInt();
+            int tableId = input.readVarIntAsInt();
             boolean unique = input.readBoolean();
             CatalogIndexStatus status = 
CatalogIndexStatus.forId(input.readByte());
             boolean isCreatedWithTable = input.readBoolean();
@@ -132,10 +132,10 @@ public class CatalogHashIndexDescriptor extends 
CatalogIndexDescriptor {
 
         @Override
         public void writeTo(CatalogHashIndexDescriptor descriptor, 
IgniteDataOutput output) throws IOException {
-            output.writeInt(descriptor.id());
+            output.writeVarInt(descriptor.id());
             output.writeUTF(descriptor.name());
-            output.writeLong(descriptor.updateToken());
-            output.writeInt(descriptor.tableId());
+            output.writeVarInt(descriptor.updateToken());
+            output.writeVarInt(descriptor.tableId());
             output.writeBoolean(descriptor.unique());
             output.writeByte(descriptor.status().id());
             output.writeBoolean(descriptor.isCreatedWithTable());
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSchemaDescriptor.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSchemaDescriptor.java
index 76c6f228a1..ec3567bcdd 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSchemaDescriptor.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSchemaDescriptor.java
@@ -119,9 +119,9 @@ public class CatalogSchemaDescriptor extends 
CatalogObjectDescriptor {
     private static class SchemaDescriptorSerializer implements 
CatalogObjectSerializer<CatalogSchemaDescriptor> {
         @Override
         public CatalogSchemaDescriptor readFrom(IgniteDataInput input) throws 
IOException {
-            int id = input.readInt();
+            int id = input.readVarIntAsInt();
             String name = input.readUTF();
-            long updateToken = input.readLong();
+            long updateToken = input.readVarInt();
             CatalogTableDescriptor[] tables = 
readArray(CatalogTableDescriptor.SERIALIZER, input, 
CatalogTableDescriptor.class);
             CatalogIndexDescriptor[] indexes = 
readArray(CatalogSerializationUtils.IDX_SERIALIZER, input, 
CatalogIndexDescriptor.class);
             CatalogSystemViewDescriptor[] systemViews =
@@ -132,9 +132,9 @@ public class CatalogSchemaDescriptor extends 
CatalogObjectDescriptor {
 
         @Override
         public void writeTo(CatalogSchemaDescriptor descriptor, 
IgniteDataOutput output) throws IOException {
-            output.writeInt(descriptor.id());
+            output.writeVarInt(descriptor.id());
             output.writeUTF(descriptor.name());
-            output.writeLong(descriptor.updateToken());
+            output.writeVarInt(descriptor.updateToken());
             writeArray(descriptor.tables(), CatalogTableDescriptor.SERIALIZER, 
output);
             writeArray(descriptor.indexes(), 
CatalogSerializationUtils.IDX_SERIALIZER, output);
             writeArray(descriptor.systemViews(), 
CatalogSystemViewDescriptor.SERIALIZER, output);
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSortedIndexDescriptor.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSortedIndexDescriptor.java
index aac9af8d06..c3f894222c 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSortedIndexDescriptor.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSortedIndexDescriptor.java
@@ -125,10 +125,10 @@ public class CatalogSortedIndexDescriptor extends 
CatalogIndexDescriptor {
     private static class SortedIndexDescriptorSerializer implements 
CatalogObjectSerializer<CatalogSortedIndexDescriptor> {
         @Override
         public CatalogSortedIndexDescriptor readFrom(IgniteDataInput input) 
throws IOException {
-            int id = input.readInt();
+            int id = input.readVarIntAsInt();
             String name = input.readUTF();
-            long updateToken = input.readLong();
-            int tableId = input.readInt();
+            long updateToken = input.readVarInt();
+            int tableId = input.readVarIntAsInt();
             boolean unique = input.readBoolean();
             CatalogIndexStatus status = 
CatalogIndexStatus.forId(input.readByte());
             boolean isCreatedWithTable = input.readBoolean();
@@ -139,10 +139,10 @@ public class CatalogSortedIndexDescriptor extends 
CatalogIndexDescriptor {
 
         @Override
         public void writeTo(CatalogSortedIndexDescriptor descriptor, 
IgniteDataOutput output) throws IOException {
-            output.writeInt(descriptor.id());
+            output.writeVarInt(descriptor.id());
             output.writeUTF(descriptor.name());
-            output.writeLong(descriptor.updateToken());
-            output.writeInt(descriptor.tableId());
+            output.writeVarInt(descriptor.updateToken());
+            output.writeVarInt(descriptor.tableId());
             output.writeBoolean(descriptor.unique());
             output.writeByte(descriptor.status().id());
             output.writeBoolean(descriptor.isCreatedWithTable());
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSystemViewDescriptor.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSystemViewDescriptor.java
index edbb46b650..61155728d1 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSystemViewDescriptor.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogSystemViewDescriptor.java
@@ -186,10 +186,10 @@ public class CatalogSystemViewDescriptor extends 
CatalogObjectDescriptor {
     private static class SystemViewDescriptorSerializer implements 
CatalogObjectSerializer<CatalogSystemViewDescriptor> {
         @Override
         public CatalogSystemViewDescriptor readFrom(IgniteDataInput input) 
throws IOException {
-            int id = input.readInt();
-            int schemaId = input.readInt();
+            int id = input.readVarIntAsInt();
+            int schemaId = input.readVarIntAsInt();
             String name = input.readUTF();
-            long updateToken = input.readLong();
+            long updateToken = input.readVarInt();
             List<CatalogTableColumnDescriptor> columns = 
readList(CatalogTableColumnDescriptor.SERIALIZER, input);
 
             byte sysViewTypeId = input.readByte();
@@ -200,10 +200,10 @@ public class CatalogSystemViewDescriptor extends 
CatalogObjectDescriptor {
 
         @Override
         public void writeTo(CatalogSystemViewDescriptor descriptor, 
IgniteDataOutput output) throws IOException {
-            output.writeInt(descriptor.id());
-            output.writeInt(descriptor.schemaId);
+            output.writeVarInt(descriptor.id());
+            output.writeVarInt(descriptor.schemaId);
             output.writeUTF(descriptor.name());
-            output.writeLong(descriptor.updateToken());
+            output.writeVarInt(descriptor.updateToken());
             writeList(descriptor.columns(), 
CatalogTableColumnDescriptor.SERIALIZER, output);
             output.writeByte(descriptor.systemViewType().id());
         }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableColumnDescriptor.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableColumnDescriptor.java
index a6ce2dc4a7..72529637c8 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableColumnDescriptor.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableColumnDescriptor.java
@@ -146,15 +146,15 @@ public class CatalogTableColumnDescriptor {
         @Override
         public CatalogTableColumnDescriptor readFrom(IgniteDataInput input) 
throws IOException {
             String name = input.readUTF();
-            int typeId = input.readInt();
+            int typeId = input.readVarIntAsInt();
             ColumnType type = ColumnType.getById(typeId);
 
             assert type != null : "Unknown column type: " + typeId;
 
             boolean nullable = input.readBoolean();
-            int precision = input.readInt();
-            int scale = input.readInt();
-            int length = input.readInt();
+            int precision = input.readVarIntAsInt();
+            int scale = input.readVarIntAsInt();
+            int length = input.readVarIntAsInt();
 
             DefaultValue defaultValue = DefaultValue.readFrom(input);
 
@@ -164,11 +164,11 @@ public class CatalogTableColumnDescriptor {
         @Override
         public void writeTo(CatalogTableColumnDescriptor descriptor, 
IgniteDataOutput output) throws IOException {
             output.writeUTF(descriptor.name());
-            output.writeInt(descriptor.type().id());
+            output.writeVarInt(descriptor.type().id());
             output.writeBoolean(descriptor.nullable());
-            output.writeInt(descriptor.precision());
-            output.writeInt(descriptor.scale());
-            output.writeInt(descriptor.length());
+            output.writeVarInt(descriptor.precision());
+            output.writeVarInt(descriptor.scale());
+            output.writeVarInt(descriptor.length());
 
             DefaultValue.writeTo(descriptor.defaultValue(), output);
         }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableDescriptor.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableDescriptor.java
index 1de7901f85..e035380494 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableDescriptor.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableDescriptor.java
@@ -291,19 +291,19 @@ public class CatalogTableDescriptor extends 
CatalogObjectDescriptor {
     private static class TableDescriptorSerializer implements 
CatalogObjectSerializer<CatalogTableDescriptor> {
         @Override
         public CatalogTableDescriptor readFrom(IgniteDataInput input) throws 
IOException {
-            int id = input.readInt();
+            int id = input.readVarIntAsInt();
             String name = input.readUTF();
-            long updateToken = input.readLong();
+            long updateToken = input.readVarInt();
 
             CatalogTableSchemaVersions schemaVersions = 
CatalogTableSchemaVersions.SERIALIZER.readFrom(input);
             List<CatalogTableColumnDescriptor> columns = 
readList(CatalogTableColumnDescriptor.SERIALIZER, input);
             String storageProfile = input.readUTF();
 
-            int schemaId = input.readInt();
-            int pkIndexId = input.readInt();
-            int zoneId = input.readInt();
+            int schemaId = input.readVarIntAsInt();
+            int pkIndexId = input.readVarIntAsInt();
+            int zoneId = input.readVarIntAsInt();
 
-            int pkKeysLen = input.readInt();
+            int pkKeysLen = input.readVarIntAsInt();
             int[] pkColumnIndexes = input.readIntArray(pkKeysLen);
             List<String> primaryKeyColumns = new 
ArrayList<>(pkColumnIndexes.length);
 
@@ -311,7 +311,7 @@ public class CatalogTableDescriptor extends 
CatalogObjectDescriptor {
                 primaryKeyColumns.add(columns.get(idx).name());
             }
 
-            int colocationColumnsLen = input.readInt();
+            int colocationColumnsLen = input.readVarIntAsInt();
 
             List<String> colocationColumns;
 
@@ -344,28 +344,28 @@ public class CatalogTableDescriptor extends 
CatalogObjectDescriptor {
 
         @Override
         public void writeTo(CatalogTableDescriptor descriptor, 
IgniteDataOutput output) throws IOException {
-            output.writeInt(descriptor.id());
+            output.writeVarInt(descriptor.id());
             output.writeUTF(descriptor.name());
-            output.writeLong(descriptor.updateToken());
+            output.writeVarInt(descriptor.updateToken());
             
CatalogTableSchemaVersions.SERIALIZER.writeTo(descriptor.schemaVersions(), 
output);
             writeList(descriptor.columns(), 
CatalogTableColumnDescriptor.SERIALIZER, output);
             output.writeUTF(descriptor.storageProfile());
 
-            output.writeInt(descriptor.schemaId());
-            output.writeInt(descriptor.primaryKeyIndexId());
-            output.writeInt(descriptor.zoneId());
+            output.writeVarInt(descriptor.schemaId());
+            output.writeVarInt(descriptor.primaryKeyIndexId());
+            output.writeVarInt(descriptor.zoneId());
 
             int[] pkIndexes = resolvePkColumnIndexes(descriptor);
 
-            output.writeInt(pkIndexes.length);
+            output.writeVarInt(pkIndexes.length);
             output.writeIntArray(pkIndexes);
 
             if (descriptor.colocationColumns() == 
descriptor.primaryKeyColumns()) {
-                output.writeInt(-1);
+                output.writeVarInt(-1);
             } else {
                 int[] colocationIndexes = 
resolveColocationColumnIndexes(pkIndexes, descriptor);
 
-                output.writeInt(colocationIndexes.length);
+                output.writeVarInt(colocationIndexes.length);
                 output.writeIntArray(colocationIndexes);
             }
         }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableSchemaVersions.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableSchemaVersions.java
index d45de8c45d..c310e97fb9 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableSchemaVersions.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableSchemaVersions.java
@@ -110,7 +110,7 @@ public class CatalogTableSchemaVersions {
         @Override
         public CatalogTableSchemaVersions readFrom(IgniteDataInput input) 
throws IOException {
             TableVersion[] versions = 
readArray(TableVersionSerializer.INSTANCE, input, TableVersion.class);
-            int base = input.readInt();
+            int base = input.readVarIntAsInt();
 
             return new CatalogTableSchemaVersions(base, versions);
         }
@@ -118,7 +118,7 @@ public class CatalogTableSchemaVersions {
         @Override
         public void writeTo(CatalogTableSchemaVersions tabVersions, 
IgniteDataOutput output) throws IOException {
             writeArray(tabVersions.versions, TableVersionSerializer.INSTANCE, 
output);
-            output.writeInt(tabVersions.base);
+            output.writeVarInt(tabVersions.base);
         }
     }
 
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogZoneDescriptor.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogZoneDescriptor.java
index 6af1345473..b3b739cd45 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogZoneDescriptor.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogZoneDescriptor.java
@@ -198,17 +198,17 @@ public class CatalogZoneDescriptor extends 
CatalogObjectDescriptor {
     private static class ZoneDescriptorSerializer implements 
CatalogObjectSerializer<CatalogZoneDescriptor> {
         @Override
         public CatalogZoneDescriptor readFrom(IgniteDataInput input) throws 
IOException {
-            int id = input.readInt();
+            int id = input.readVarIntAsInt();
             String name = input.readUTF();
-            long updateToken = input.readLong();
+            long updateToken = input.readVarInt();
 
             CatalogStorageProfilesDescriptor catalogStorageProfilesDescriptor 
= CatalogStorageProfilesDescriptor.SERIALIZER.readFrom(input);
 
-            int partitions = input.readInt();
-            int replicas = input.readInt();
-            int dataNodesAutoAdjust = input.readInt();
-            int dataNodesAutoAdjustScaleUp = input.readInt();
-            int dataNodesAutoAdjustScaleDown = input.readInt();
+            int partitions = input.readVarIntAsInt();
+            int replicas = input.readVarIntAsInt();
+            int dataNodesAutoAdjust = input.readVarIntAsInt();
+            int dataNodesAutoAdjustScaleUp = input.readVarIntAsInt();
+            int dataNodesAutoAdjustScaleDown = input.readVarIntAsInt();
             String filter = input.readUTF();
             ConsistencyMode consistencyMode = 
ConsistencyMode.forId(input.readByte());
 
@@ -229,17 +229,17 @@ public class CatalogZoneDescriptor extends 
CatalogObjectDescriptor {
 
         @Override
         public void writeTo(CatalogZoneDescriptor descriptor, IgniteDataOutput 
output) throws IOException {
-            output.writeInt(descriptor.id());
+            output.writeVarInt(descriptor.id());
             output.writeUTF(descriptor.name());
-            output.writeLong(descriptor.updateToken());
+            output.writeVarInt(descriptor.updateToken());
 
             
CatalogStorageProfilesDescriptor.SERIALIZER.writeTo(descriptor.storageProfiles(),
 output);
 
-            output.writeInt(descriptor.partitions());
-            output.writeInt(descriptor.replicas());
-            output.writeInt(descriptor.dataNodesAutoAdjust());
-            output.writeInt(descriptor.dataNodesAutoAdjustScaleUp());
-            output.writeInt(descriptor.dataNodesAutoAdjustScaleDown());
+            output.writeVarInt(descriptor.partitions());
+            output.writeVarInt(descriptor.replicas());
+            output.writeVarInt(descriptor.dataNodesAutoAdjust());
+            output.writeVarInt(descriptor.dataNodesAutoAdjustScaleUp());
+            output.writeVarInt(descriptor.dataNodesAutoAdjustScaleDown());
             output.writeUTF(descriptor.filter());
             output.writeByte(descriptor.consistencyMode().id());
         }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/AlterColumnEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/AlterColumnEntry.java
index 0d08df2bb9..5d4fdbe559 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/AlterColumnEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/AlterColumnEntry.java
@@ -121,7 +121,7 @@ public class AlterColumnEntry implements UpdateEntry, 
Fireable {
         @Override
         public AlterColumnEntry readFrom(IgniteDataInput input) throws 
IOException {
             CatalogTableColumnDescriptor descriptor = 
CatalogTableColumnDescriptor.SERIALIZER.readFrom(input);
-            int tableId = input.readInt();
+            int tableId = input.readVarIntAsInt();
 
             return new AlterColumnEntry(tableId, descriptor);
         }
@@ -130,7 +130,7 @@ public class AlterColumnEntry implements UpdateEntry, 
Fireable {
         public void writeTo(AlterColumnEntry value, IgniteDataOutput output) 
throws IOException {
             
CatalogTableColumnDescriptor.SERIALIZER.writeTo(value.descriptor(), output);
 
-            output.writeInt(value.tableId);
+            output.writeVarInt(value.tableId);
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropColumnsEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropColumnsEntry.java
index c31f5fcd12..3da4eb80b4 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropColumnsEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropColumnsEntry.java
@@ -123,7 +123,7 @@ public class DropColumnsEntry implements UpdateEntry, 
Fireable {
     private static class DropColumnEntrySerializer implements 
CatalogObjectSerializer<DropColumnsEntry> {
         @Override
         public DropColumnsEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int tableId = input.readInt();
+            int tableId = input.readVarIntAsInt();
             Set<String> columns = 
CatalogSerializationUtils.readStringCollection(input, size -> new 
HashSet<>(capacity(size)));
 
             return new DropColumnsEntry(tableId, columns);
@@ -131,7 +131,7 @@ public class DropColumnsEntry implements UpdateEntry, 
Fireable {
 
         @Override
         public void writeTo(DropColumnsEntry object, IgniteDataOutput output) 
throws IOException {
-            output.writeInt(object.tableId());
+            output.writeVarInt(object.tableId());
             writeStringCollection(object.columns(), output);
         }
     }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropIndexEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropIndexEntry.java
index 4241dee915..431a6d6123 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropIndexEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropIndexEntry.java
@@ -75,14 +75,14 @@ public class DropIndexEntry extends 
AbstractChangeIndexStatusEntry implements Fi
     private static class DropIndexEntrySerializer implements 
CatalogObjectSerializer<DropIndexEntry> {
         @Override
         public DropIndexEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int indexId = input.readInt();
+            int indexId = input.readVarIntAsInt();
 
             return new DropIndexEntry(indexId);
         }
 
         @Override
         public void writeTo(DropIndexEntry entry, IgniteDataOutput out) throws 
IOException {
-            out.writeInt(entry.indexId());
+            out.writeVarInt(entry.indexId());
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropTableEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropTableEntry.java
index 06ccd5aee3..d4384b6f2a 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropTableEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropTableEntry.java
@@ -106,14 +106,14 @@ public class DropTableEntry implements UpdateEntry, 
Fireable {
     private static class DropTableEntrySerializer implements 
CatalogObjectSerializer<DropTableEntry> {
         @Override
         public DropTableEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int tableId = input.readInt();
+            int tableId = input.readVarIntAsInt();
 
             return new DropTableEntry(tableId);
         }
 
         @Override
         public void writeTo(DropTableEntry entry, IgniteDataOutput out) throws 
IOException {
-            out.writeInt(entry.tableId());
+            out.writeVarInt(entry.tableId());
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropZoneEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropZoneEntry.java
index eaeec8558a..0cba32ebe9 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropZoneEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropZoneEntry.java
@@ -91,14 +91,14 @@ public class DropZoneEntry implements UpdateEntry, Fireable 
{
     private static class DropZoneEntrySerializer implements 
CatalogObjectSerializer<DropZoneEntry> {
         @Override
         public DropZoneEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int zoneId = input.readInt();
+            int zoneId = input.readVarIntAsInt();
 
             return new DropZoneEntry(zoneId);
         }
 
         @Override
         public void writeTo(DropZoneEntry entry, IgniteDataOutput output) 
throws IOException {
-            output.writeInt(entry.zoneId());
+            output.writeVarInt(entry.zoneId());
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/MakeIndexAvailableEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/MakeIndexAvailableEntry.java
index efb3625e6a..3ddd39a393 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/MakeIndexAvailableEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/MakeIndexAvailableEntry.java
@@ -59,14 +59,14 @@ public class MakeIndexAvailableEntry extends 
AbstractChangeIndexStatusEntry impl
     private static class MakeIndexAvailableEntrySerializer implements 
CatalogObjectSerializer<MakeIndexAvailableEntry> {
         @Override
         public MakeIndexAvailableEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int indexId = input.readInt();
+            int indexId = input.readVarIntAsInt();
 
             return new MakeIndexAvailableEntry(indexId);
         }
 
         @Override
         public void writeTo(MakeIndexAvailableEntry object, IgniteDataOutput 
output) throws IOException {
-            output.writeInt(object.indexId);
+            output.writeVarInt(object.indexId);
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/NewColumnsEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/NewColumnsEntry.java
index 9e29a5f971..c1d30c778b 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/NewColumnsEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/NewColumnsEntry.java
@@ -121,7 +121,7 @@ public class NewColumnsEntry implements UpdateEntry, 
Fireable {
         @Override
         public NewColumnsEntry readFrom(IgniteDataInput in) throws IOException 
{
             List<CatalogTableColumnDescriptor> columns = 
readList(CatalogTableColumnDescriptor.SERIALIZER, in);
-            int tableId = in.readInt();
+            int tableId = in.readVarIntAsInt();
 
             return new NewColumnsEntry(tableId, columns);
         }
@@ -129,7 +129,7 @@ public class NewColumnsEntry implements UpdateEntry, 
Fireable {
         @Override
         public void writeTo(NewColumnsEntry entry, IgniteDataOutput out) 
throws IOException {
             writeList(entry.descriptors(), 
CatalogTableColumnDescriptor.SERIALIZER, out);
-            out.writeInt(entry.tableId());
+            out.writeVarInt(entry.tableId());
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/ObjectIdGenUpdateEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/ObjectIdGenUpdateEntry.java
index 7fe128d803..9e714e97fa 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/ObjectIdGenUpdateEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/ObjectIdGenUpdateEntry.java
@@ -77,14 +77,14 @@ public class ObjectIdGenUpdateEntry implements UpdateEntry {
     private static class ObjectIdGenUpdateEntrySerializer implements 
CatalogObjectSerializer<ObjectIdGenUpdateEntry> {
         @Override
         public ObjectIdGenUpdateEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int delta = input.readInt();
+            int delta = input.readVarIntAsInt();
 
             return new ObjectIdGenUpdateEntry(delta);
         }
 
         @Override
         public void writeTo(ObjectIdGenUpdateEntry entry, IgniteDataOutput 
output) throws IOException {
-            output.writeInt(entry.delta());
+            output.writeVarInt(entry.delta());
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RemoveIndexEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RemoveIndexEntry.java
index a660e69874..1b373ed119 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RemoveIndexEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RemoveIndexEntry.java
@@ -99,14 +99,14 @@ public class RemoveIndexEntry implements UpdateEntry, 
Fireable {
     private static class RemoveIndexEntrySerializer implements 
CatalogObjectSerializer<RemoveIndexEntry> {
         @Override
         public RemoveIndexEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int indexId = input.readInt();
+            int indexId = input.readVarIntAsInt();
 
             return new RemoveIndexEntry(indexId);
         }
 
         @Override
         public void writeTo(RemoveIndexEntry entry, IgniteDataOutput out) 
throws IOException {
-            out.writeInt(entry.indexId);
+            out.writeVarInt(entry.indexId);
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RenameIndexEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RenameIndexEntry.java
index 803cbd8c30..c4da89cd8b 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RenameIndexEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RenameIndexEntry.java
@@ -125,7 +125,7 @@ public class RenameIndexEntry implements UpdateEntry {
     private static class RenameIndexEntrySerializer implements 
CatalogObjectSerializer<RenameIndexEntry> {
         @Override
         public RenameIndexEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int indexId = input.readInt();
+            int indexId = input.readVarIntAsInt();
 
             String newIndexName = input.readUTF();
 
@@ -134,7 +134,7 @@ public class RenameIndexEntry implements UpdateEntry {
 
         @Override
         public void writeTo(RenameIndexEntry entry, IgniteDataOutput out) 
throws IOException {
-            out.writeInt(entry.indexId);
+            out.writeVarInt(entry.indexId);
             out.writeUTF(entry.newIndexName);
         }
     }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RenameTableEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RenameTableEntry.java
index 69c3cdb135..83e636820c 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RenameTableEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/RenameTableEntry.java
@@ -92,7 +92,7 @@ public class RenameTableEntry implements UpdateEntry, 
Fireable {
     private static class RenameTableEntrySerializer implements 
CatalogObjectSerializer<RenameTableEntry> {
         @Override
         public RenameTableEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int tableId = input.readInt();
+            int tableId = input.readVarIntAsInt();
             String newTableName = input.readUTF();
 
             return new RenameTableEntry(tableId, newTableName);
@@ -100,7 +100,7 @@ public class RenameTableEntry implements UpdateEntry, 
Fireable {
 
         @Override
         public void writeTo(RenameTableEntry entry, IgniteDataOutput output) 
throws IOException {
-            output.writeInt(entry.tableId);
+            output.writeVarInt(entry.tableId);
             output.writeUTF(entry.newTableName);
         }
     }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/SetDefaultZoneEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/SetDefaultZoneEntry.java
index c089dfc87d..6066e828d3 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/SetDefaultZoneEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/SetDefaultZoneEntry.java
@@ -87,14 +87,14 @@ public class SetDefaultZoneEntry implements UpdateEntry, 
Fireable {
     private static class SetDefaultZoneEntrySerializer implements 
CatalogObjectSerializer<SetDefaultZoneEntry> {
         @Override
         public SetDefaultZoneEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int zoneId = input.readInt();
+            int zoneId = input.readVarIntAsInt();
 
             return new SetDefaultZoneEntry(zoneId);
         }
 
         @Override
         public void writeTo(SetDefaultZoneEntry entry, IgniteDataOutput 
output) throws IOException {
-            output.writeInt(entry.zoneId());
+            output.writeVarInt(entry.zoneId());
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/SnapshotEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/SnapshotEntry.java
index f9134be6d4..0937441f58 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/SnapshotEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/SnapshotEntry.java
@@ -130,9 +130,9 @@ public class SnapshotEntry implements UpdateLogEvent {
     private static class SnapshotEntrySerializer implements 
CatalogObjectSerializer<SnapshotEntry> {
         @Override
         public SnapshotEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int catalogVersion = input.readInt();
+            int catalogVersion = input.readVarIntAsInt();
             long activationTime = input.readLong();
-            int objectIdGenState = input.readInt();
+            int objectIdGenState = input.readVarIntAsInt();
 
             CatalogZoneDescriptor[] zones =
                     
CatalogSerializationUtils.readArray(CatalogZoneDescriptor.SERIALIZER, input, 
CatalogZoneDescriptor.class);
@@ -142,7 +142,7 @@ public class SnapshotEntry implements UpdateLogEvent {
 
             Integer defaultZoneId = null;
             if (input.readBoolean()) {
-                defaultZoneId = input.readInt();
+                defaultZoneId = input.readVarIntAsInt();
             }
 
             return new SnapshotEntry(catalogVersion, activationTime, 
objectIdGenState, zones, schemas, defaultZoneId);
@@ -150,16 +150,16 @@ public class SnapshotEntry implements UpdateLogEvent {
 
         @Override
         public void writeTo(SnapshotEntry entry, IgniteDataOutput output) 
throws IOException {
-            output.writeInt(entry.version);
+            output.writeVarInt(entry.version);
             output.writeLong(entry.activationTime);
-            output.writeInt(entry.objectIdGenState);
+            output.writeVarInt(entry.objectIdGenState);
 
             CatalogSerializationUtils.writeArray(entry.zones, 
CatalogZoneDescriptor.SERIALIZER, output);
             CatalogSerializationUtils.writeArray(entry.schemas, 
CatalogSchemaDescriptor.SERIALIZER, output);
 
             output.writeBoolean(entry.defaultZoneId != null);
             if (entry.defaultZoneId != null) {
-                output.writeInt(entry.defaultZoneId);
+                output.writeVarInt(entry.defaultZoneId);
             }
         }
     }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/StartBuildingIndexEntry.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/StartBuildingIndexEntry.java
index 63e2537b05..082e1d7a7f 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/StartBuildingIndexEntry.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/StartBuildingIndexEntry.java
@@ -59,14 +59,14 @@ public class StartBuildingIndexEntry extends 
AbstractChangeIndexStatusEntry impl
     private static class StartBuildingIndexEntrySerializer implements 
CatalogObjectSerializer<StartBuildingIndexEntry> {
         @Override
         public StartBuildingIndexEntry readFrom(IgniteDataInput input) throws 
IOException {
-            int indexId = input.readInt();
+            int indexId = input.readVarIntAsInt();
 
             return new StartBuildingIndexEntry(indexId);
         }
 
         @Override
         public void writeTo(StartBuildingIndexEntry object, IgniteDataOutput 
output) throws IOException {
-            output.writeInt(object.indexId);
+            output.writeVarInt(object.indexId);
         }
     }
 }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/VersionedUpdate.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/VersionedUpdate.java
index fe59ab66c5..f06ce94ce9 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/VersionedUpdate.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/VersionedUpdate.java
@@ -111,14 +111,14 @@ public class VersionedUpdate implements UpdateLogEvent {
 
         @Override
         public VersionedUpdate readFrom(IgniteDataInput input) throws 
IOException {
-            int ver = input.readInt();
-            long delayDurationMs = input.readLong();
+            int ver = input.readVarIntAsInt();
+            long delayDurationMs = input.readVarInt();
 
-            int size = input.readInt();
+            int size = input.readVarIntAsInt();
             List<UpdateEntry> entries = new ArrayList<>(size);
 
             for (int i = 0; i < size; i++) {
-                short entryTypeId = input.readShort();
+                short entryTypeId = (short) input.readVarIntAsInt();
 
                 CatalogObjectSerializer<MarshallableEntry> serializer = 
serializers.get(entryTypeId);
 
@@ -130,12 +130,12 @@ public class VersionedUpdate implements UpdateLogEvent {
 
         @Override
         public void writeTo(VersionedUpdate update, IgniteDataOutput output) 
throws IOException {
-            output.writeInt(update.version());
-            output.writeLong(update.delayDurationMs());
+            output.writeVarInt(update.version());
+            output.writeVarInt(update.delayDurationMs());
 
-            output.writeInt(update.entries().size());
+            output.writeVarInt(update.entries().size());
             for (UpdateEntry entry : update.entries()) {
-                output.writeShort(entry.typeId());
+                output.writeVarInt(entry.typeId());
 
                 serializers.get(entry.typeId()).writeTo(entry, output);
             }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/serialization/CatalogSerializationUtils.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/serialization/CatalogSerializationUtils.java
index d4e9a9f358..2a300253c1 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/serialization/CatalogSerializationUtils.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/serialization/CatalogSerializationUtils.java
@@ -58,14 +58,14 @@ public class CatalogSerializationUtils {
     }
 
     /** Writes collection containing strings. */
-    public static void writeStringCollection(@Nullable Collection<String> 
list, DataOutput out) throws IOException {
+    public static void writeStringCollection(@Nullable Collection<String> 
list, IgniteDataOutput out) throws IOException {
         if (list == null) {
-            out.writeInt(-1);
+            out.writeVarInt(-1);
 
             return;
         }
 
-        out.writeInt(list.size());
+        out.writeVarInt(list.size());
 
         for (String item : list) {
             out.writeUTF(item);
@@ -73,8 +73,9 @@ public class CatalogSerializationUtils {
     }
 
     /** Reads collection containing strings. */
-    public static <T extends Collection<String>> @Nullable T 
readStringCollection(DataInput in, IntFunction<T> factory) throws IOException {
-        int size = in.readInt();
+    public static <T extends Collection<String>> @Nullable T 
readStringCollection(IgniteDataInput in, IntFunction<T> factory)
+            throws IOException {
+        int size = in.readVarIntAsInt();
 
         if (size == -1) {
             return null;
@@ -92,7 +93,7 @@ public class CatalogSerializationUtils {
     /** Reads array of objects. */
     public static <T> T[] readArray(CatalogObjectSerializer<T> serializer, 
IgniteDataInput input, Class<T> clazz)
             throws IOException {
-        int len = input.readInt();
+        int len = input.readVarIntAsInt();
 
         T[] arr = (T[]) Array.newInstance(clazz, len);
 
@@ -106,7 +107,7 @@ public class CatalogSerializationUtils {
     /** Writes array of objects. */
     public static <T> void writeArray(T[] items, CatalogObjectSerializer<T> 
serializer, IgniteDataOutput output)
             throws IOException {
-        output.writeInt(items.length);
+        output.writeVarInt(items.length);
 
         for (T item : items) {
             serializer.writeTo(item, output);
@@ -115,7 +116,7 @@ public class CatalogSerializationUtils {
 
     /** Reads list of objects. */
     public static <T> List<T> readList(CatalogObjectSerializer<T> serializer, 
IgniteDataInput input) throws IOException {
-        int len = input.readInt();
+        int len = input.readVarIntAsInt();
 
         List<T> entries = new ArrayList<>(len);
 
@@ -131,7 +132,7 @@ public class CatalogSerializationUtils {
     /** Writes list of objects. */
     public static <T> void writeList(List<T> items, CatalogObjectSerializer<T> 
serializer, IgniteDataOutput output)
             throws IOException {
-        output.writeInt(items.size());
+        output.writeVarInt(items.size());
 
         for (T item : items) {
             serializer.writeTo(item, output);
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
index 1b12e81868..ec06adec01 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
@@ -422,7 +422,7 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
                 serializer = new CatalogObjectSerializer<>() {
                     @Override
                     public MarshallableEntry readFrom(IgniteDataInput input) 
throws IOException {
-                        int length = input.readInt();
+                        int length = input.readVarIntAsInt();
                         byte[] data = input.readByteArray(length);
 
                         return ByteUtils.fromBytes(data);
@@ -432,7 +432,7 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
                     public void writeTo(MarshallableEntry value, 
IgniteDataOutput output) throws IOException {
                         byte[] bytes = ByteUtils.toBytes(value);
 
-                        output.writeInt(bytes.length);
+                        output.writeVarInt(bytes.length);
                         output.writeByteArray(bytes);
                     }
                 };


Reply via email to