You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ib...@apache.org on 2024/04/17 14:22:30 UTC
(ignite-3) branch main updated: IGNITE-22041 Correct inline size calculation for indexes (#3622)
This is an automated email from the ASF dual-hosted git repository.
ibessonov 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 958b4a06fc IGNITE-22041 Correct inline size calculation for indexes (#3622)
958b4a06fc is described below
commit 958b4a06fc83c797194de84b7b21c64867351827
Author: Ivan Bessonov <be...@gmail.com>
AuthorDate: Wed Apr 17 17:22:24 2024 +0300
IGNITE-22041 Correct inline size calculation for indexes (#3622)
---
.../apache/ignite/internal/storage/pagememory/index/InlineUtils.java | 2 ++
.../internal/storage/pagememory/index/hash/io/HashIndexTreeIo.java | 2 +-
.../storage/pagememory/index/sorted/io/SortedIndexTreeIo.java | 2 +-
.../ignite/internal/storage/pagememory/index/InlineUtilsTest.java | 4 ++--
4 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/InlineUtils.java b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/InlineUtils.java
index e6eb2f5e6e..515c1071ff 100644
--- a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/InlineUtils.java
+++ b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/InlineUtils.java
@@ -83,6 +83,8 @@ public class InlineUtils {
return Math.min(MAX_VARLEN_INLINE_SIZE, ((VarlenNativeType) nativeType).length());
case DECIMAL:
+ return Short.BYTES + BIG_NUMBER_INLINE_SIZE;
+
case NUMBER:
return BIG_NUMBER_INLINE_SIZE;
diff --git a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/hash/io/HashIndexTreeIo.java b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/hash/io/HashIndexTreeIo.java
index a6fe0fffb5..afba7d74f4 100644
--- a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/hash/io/HashIndexTreeIo.java
+++ b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/hash/io/HashIndexTreeIo.java
@@ -64,7 +64,7 @@ import org.apache.ignite.internal.storage.pagememory.index.hash.HashIndexRowKey;
public interface HashIndexTreeIo {
/** Item size without index columns in bytes. */
int ITEM_SIZE_WITHOUT_COLUMNS = Integer.BYTES // Index columns hash.
- + Short.SIZE // Inlined index columns size.
+ + Short.BYTES // Inlined index columns size.
+ PARTITIONLESS_LINK_SIZE_BYTES // Index columns link.
+ 2 * Long.BYTES; // Row ID.
diff --git a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/sorted/io/SortedIndexTreeIo.java b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/sorted/io/SortedIndexTreeIo.java
index 89bcbd92a8..f677d8aeb7 100644
--- a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/sorted/io/SortedIndexTreeIo.java
+++ b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/sorted/io/SortedIndexTreeIo.java
@@ -56,7 +56,7 @@ import org.apache.ignite.internal.storage.pagememory.index.sorted.SortedIndexRow
*/
public interface SortedIndexTreeIo {
/** Item size without index columns in bytes. */
- int ITEM_SIZE_WITHOUT_COLUMNS = Short.SIZE // Inlined index columns size.
+ int ITEM_SIZE_WITHOUT_COLUMNS = Short.BYTES // Inlined index columns size.
+ PARTITIONLESS_LINK_SIZE_BYTES // Index columns link.
+ 2 * Long.BYTES; // Row ID.
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/InlineUtilsTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/InlineUtilsTest.java
index ee9215584e..08060da9be 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/InlineUtilsTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/InlineUtilsTest.java
@@ -99,10 +99,10 @@ public class InlineUtilsTest extends BaseIgniteAbstractTest {
// Variable length type checking.
- assertEquals(BIG_NUMBER_INLINE_SIZE, inlineSize(nativeType = NativeTypes.decimalOf(1, 1)));
+ assertEquals(2 + BIG_NUMBER_INLINE_SIZE, inlineSize(nativeType = NativeTypes.decimalOf(1, 1)));
nativeTypeSpecs.remove(nativeType.spec());
- assertEquals(BIG_NUMBER_INLINE_SIZE, inlineSize(nativeType = NativeTypes.decimalOf(100, 1)));
+ assertEquals(2 + BIG_NUMBER_INLINE_SIZE, inlineSize(nativeType = NativeTypes.decimalOf(100, 1)));
nativeTypeSpecs.remove(nativeType.spec());
assertEquals(7, inlineSize(nativeType = NativeTypes.stringOf(7)));