This is an automated email from the ASF dual-hosted git repository.
Jackie-Jiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 732f921f6f4 Fix the serialized size of off-heap distinct count sets
(#20203)
732f921f6f4 is described below
commit 732f921f6f4d3f522a1a81edc8b151bb37fd178a
Author: Xiaotian (Jackie) Jiang <[email protected]>
AuthorDate: Tue Nov 10 20:44:56 2026 -0800
Fix the serialized size of off-heap distinct count sets (#20203)
---
.../aggregation/function/distinct/OffHeap128BitSet.java | 2 +-
.../query/aggregation/function/distinct/OffHeap32BitSet.java | 2 +-
.../query/aggregation/function/distinct/OffHeap64BitSet.java | 2 +-
.../query/aggregation/function/distinct/OffHeapSetTest.java | 12 +++++++++---
4 files changed, 12 insertions(+), 6 deletions(-)
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap128BitSet.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap128BitSet.java
index eee8440e20e..5e6d73e5517 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap128BitSet.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap128BitSet.java
@@ -186,7 +186,7 @@ public class OffHeap128BitSet extends BaseOffHeapSet {
@Override
public byte[] serialize() {
int size = size();
- byte[] bytes = new byte[Integer.BYTES + size << 4];
+ byte[] bytes = new byte[Integer.BYTES + (size << 4)];
ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
byteBuffer.putInt(size);
Value buffer = new Value();
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap32BitSet.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap32BitSet.java
index d17dd0072a8..e2728cf64ac 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap32BitSet.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap32BitSet.java
@@ -144,7 +144,7 @@ public class OffHeap32BitSet extends BaseOffHeapSet {
@Override
public byte[] serialize() {
int size = size();
- byte[] bytes = new byte[Integer.BYTES + size << 2];
+ byte[] bytes = new byte[Integer.BYTES + (size << 2)];
ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
byteBuffer.putInt(size);
IntIterator iterator = iterator();
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap64BitSet.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap64BitSet.java
index 1d0a7c435e6..69f0ae7c2db 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap64BitSet.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeap64BitSet.java
@@ -143,7 +143,7 @@ public class OffHeap64BitSet extends BaseOffHeapSet {
@Override
public byte[] serialize() {
int size = size();
- byte[] bytes = new byte[Integer.BYTES + size << 3];
+ byte[] bytes = new byte[Integer.BYTES + (size << 3)];
ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
byteBuffer.putInt(size);
LongIterator iterator = iterator();
diff --git
a/pinot-core/src/test/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeapSetTest.java
b/pinot-core/src/test/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeapSetTest.java
index c94e06d7fdb..7d950dddf03 100644
---
a/pinot-core/src/test/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeapSetTest.java
+++
b/pinot-core/src/test/java/org/apache/pinot/core/query/aggregation/function/distinct/OffHeapSetTest.java
@@ -65,7 +65,9 @@ public class OffHeapSetTest {
}
verify(offHeapSet, onHeapSet);
- try (OffHeap32BitSet offHeapSet2 =
OffHeap32BitSet.deserialize(ByteBuffer.wrap(offHeapSet.serialize()))) {
+ byte[] bytes = offHeapSet.serialize();
+ assertEquals(bytes.length, Integer.BYTES + offHeapSet.size() *
Integer.BYTES);
+ try (OffHeap32BitSet offHeapSet2 =
OffHeap32BitSet.deserialize(ByteBuffer.wrap(bytes))) {
verify(offHeapSet2, onHeapSet);
}
@@ -115,7 +117,9 @@ public class OffHeapSetTest {
}
verify(offHeapSet, onHeapSet);
- try (OffHeap64BitSet offHeapSet2 =
OffHeap64BitSet.deserialize(ByteBuffer.wrap(offHeapSet.serialize()))) {
+ byte[] bytes = offHeapSet.serialize();
+ assertEquals(bytes.length, Integer.BYTES + offHeapSet.size() *
Long.BYTES);
+ try (OffHeap64BitSet offHeapSet2 =
OffHeap64BitSet.deserialize(ByteBuffer.wrap(bytes))) {
verify(offHeapSet2, onHeapSet);
}
@@ -167,7 +171,9 @@ public class OffHeapSetTest {
}
verify(offHeapSet, onHeapSet);
- try (OffHeap128BitSet offHeapSet2 =
OffHeap128BitSet.deserialize(ByteBuffer.wrap(offHeapSet.serialize()))) {
+ byte[] bytes = offHeapSet.serialize();
+ assertEquals(bytes.length, Integer.BYTES + offHeapSet.size() * 2 *
Long.BYTES);
+ try (OffHeap128BitSet offHeapSet2 =
OffHeap128BitSet.deserialize(ByteBuffer.wrap(bytes))) {
verify(offHeapSet2, onHeapSet);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]