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

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


The following commit(s) were added to refs/heads/master by this push:
     new 29fdcefb8f20 [SPARK-57036][SQL] Use intrinsic bulk-fill APIs for 
constant-value WritableColumnVector methods
29fdcefb8f20 is described below

commit 29fdcefb8f2035386d9b5d58d531543f57c43963
Author: Liang-Chi Hsieh <[email protected]>
AuthorDate: Mon May 25 00:12:13 2026 -0700

    [SPARK-57036][SQL] Use intrinsic bulk-fill APIs for constant-value 
WritableColumnVector methods
    
    ### What changes were proposed in this pull request?
    
    Six bulk-fill methods on the column vectors implement constant-value
    fills with degenerate per-element loops. This PR replaces them with
    intrinsic substitutions:
    
    | Method | Substitution |
    | --- | --- |
    | `OnHeapColumnVector.putBooleans(rowId, count, value)` | 
`Arrays.fill(byte[], ..., (byte) v)` |
    | `OnHeapColumnVector.putBytes(rowId, count, value)` | `Arrays.fill(byte[], 
...)` |
    | `OnHeapColumnVector.putShorts(rowId, count, value)` | 
`Arrays.fill(short[], ...)` |
    | `OnHeapColumnVector.putLongs(rowId, count, value)` | `Arrays.fill(long[], 
...)` |
    | `OffHeapColumnVector.putBooleans(rowId, count, value)` | 
`Platform.setMemory` with small-count fallback |
    | `OffHeapColumnVector.putBytes(rowId, count, value)` | 
`Platform.setMemory` with small-count fallback |
    
    The two OffHeap methods share a `SET_MEMORY_THRESHOLD = 128` constant.
    Below the threshold, an inline byte loop avoids the JNI fixed cost of
    `Unsafe.setMemory`; at or above, `setMemory` dominates and the gain
    accelerates rapidly.
    
    This PR also adds `WritableColumnVectorBulkFillBenchmark` to measure
    these constant-value bulk-fill APIs across a count sweep covering both
    the small-count (call-overhead dominated) and large-count (memory
    bandwidth dominated) regimes.
    
    ### Why are the changes needed?
    
    The bulk-fill APIs on `WritableColumnVector` are the natural call to
    make from any column writer, but their implementations were per-element
    loops. Switching to intrinsics:
    
    - `Arrays.fill` is backed by HotSpot's `_jbyte_fill` / `_jshort_fill` /
      `_jlong_fill` intrinsic stubs.
    - `Unsafe.setMemory` lowers to a native `memset`. For OffHeap byte
      fills the original per-byte `Platform.putByte` loop cannot be
      vectorized through the JNI call, so the gain is dramatic at large
      counts.
    
    #### Benchmark numbers (GitHub Actions, JDK 17, Scala 2.13)
    
    Measured by running `WritableColumnVectorBulkFillBenchmark` via the
    `Run benchmarks` workflow on both the baseline (#56084) and this PR's
    branch, so the two runs use identical hardware and JDK. Rate (M
    elements/s):
    
    **OffHeap byte fills (`putBytes` / `putBooleans`)** — the headline win:
    
    | count   | baseline | patched | delta |
    | ------: | -------: | ------: | -----: |
    | 1       | ~290     | ~240    | within run-to-run noise (~30%) |
    | 8       | ~1,390   | ~1,280  | within run-to-run noise (~10%) |
    | 64      | ~2,550   | ~2,450  | parity |
    | 512     | ~2,700   | ~19,500 | **+7.2x** |
    | 4,096   | ~2,770   | ~39,200 | **+14.1x** |
    | 65,536  | ~2,780   | ~44,500 | **+16.0x** |
    
    (Numbers averaged across `putBytes` and `putBooleans` since they share
    the same code path.)
    
    At and above the 128-element threshold, `setMemory` produces a 7-16x
    improvement that grows with run length, consistent with `memset` being
    amortized cleanly over long fills. Below the threshold, both runs use
    the same inline byte loop, so the small differences at `count=1` and
    `count=8` are GHA run-to-run variance rather than a structural change.
    
    **OnHeap fills**: on the GHA runner (Linux + Zulu JDK 17) the C2
    compiler already auto-vectorizes the original byte loop near the byte
    memory-bandwidth ceiling, so `Arrays.fill` is at parity (~2,790 M/s,
    unchanged across `putBooleans` / `putBytes` / `putShorts` / `putLongs`,
    all counts, both baseline and patched). On Apple M4 Max + OpenJDK 21
    the same change yields +5-33% in the small/medium count range. The
    OnHeap changes are kept for consistency with the OffHeap fixes and to
    avoid future divergence between platforms.
    
    OffHeap multi-byte fills (`putShorts` / `putInts` / `putLongs` /
    `putFloats` / `putDoubles`) are out of scope: `Platform.setMemory` is
    byte-only and a value=0 short-circuit alternative was tried and showed
    no measurable gain.
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    Existing tests; no behavior change. Ran locally:
    
    - `VectorizedRleValuesReaderSuite`
    - `ColumnVectorSuite`
    - `ColumnarBatchSuite`
    - `ParquetIOSuite`
    
    237 tests, all pass.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    Generated-by: Claude Code (Claude Opus 4.7)
    
    Closes #56082 from viirya/SPARK-57036.
    
    Authored-by: Liang-Chi Hsieh <[email protected]>
    Signed-off-by: Liang-Chi Hsieh <[email protected]>
---
 ...ColumnVectorBulkFillBenchmark-jdk21-results.txt | 216 ++++++++++-----------
 ...ColumnVectorBulkFillBenchmark-jdk25-results.txt | 216 ++++++++++-----------
 ...itableColumnVectorBulkFillBenchmark-results.txt | 216 ++++++++++-----------
 .../execution/vectorized/OffHeapColumnVector.java  |  26 ++-
 .../execution/vectorized/OnHeapColumnVector.java   |  18 +-
 5 files changed, 350 insertions(+), 342 deletions(-)

diff --git 
a/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-jdk21-results.txt 
b/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-jdk21-results.txt
index 83539c0e629e..8a0736239ca0 100644
--- 
a/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-jdk21-results.txt
+++ 
b/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-jdk21-results.txt
@@ -3,255 +3,255 @@ WritableColumnVector bulk fill
 
================================================================================================
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBooleans (boolean) count=1:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0         79.2          12.6       1.0X
-OffHeap                                               0              0         
  0        124.4           8.0       1.6X
+OnHeap                                                0              0         
  0        410.6           2.4       1.0X
+OffHeap                                               0              0         
  0        462.7           2.2       1.1X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBooleans (boolean) count=8:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        634.0           1.6       1.0X
-OffHeap                                               0              0         
  0        897.3           1.1       1.4X
+OnHeap                                                0              0         
  0       1520.7           0.7       1.0X
+OffHeap                                               0              0         
  0       1147.3           0.9       0.8X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBooleans (boolean) count=64:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       7687.5           0.1       1.0X
-OffHeap                                               0              0         
  0       1642.6           0.6       0.2X
+OnHeap                                                0              0         
  0       2562.2           0.4       1.0X
+OffHeap                                               0              0         
  0       1391.7           0.7       0.5X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBooleans (boolean) count=512:          Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0      48232.6           0.0       1.0X
-OffHeap                                               0              0         
  0       1701.0           0.6       0.0X
+OnHeap                                                0              0         
  0       2696.6           0.4       1.0X
+OffHeap                                               0              0         
  0      19703.4           0.1       7.3X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBooleans (boolean) count=4096:         Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0     128770.2           0.0       1.0X
-OffHeap                                               2              2         
  0       1715.8           0.6       0.0X
+OnHeap                                                2              2         
  0       2775.4           0.4       1.0X
+OffHeap                                               0              0         
  0      39447.6           0.0      14.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBooleans (boolean) count=65536:        Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                1              1         
  0      62765.7           0.0       1.0X
-OffHeap                                              39             39         
  0       1718.0           0.6       0.0X
+OnHeap                                               24             24         
  0       2788.3           0.4       1.0X
+OffHeap                                               2              2         
  0      44456.3           0.0      15.9X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBytes (byte) count=1:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0         72.6          13.8       1.0X
-OffHeap                                               0              0         
  0        108.9           9.2       1.5X
+OnHeap                                                0              0         
  0        185.2           5.4       1.0X
+OffHeap                                               0              0         
  0        122.9           8.1       0.7X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBytes (byte) count=8:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        581.1           1.7       1.0X
-OffHeap                                               0              0         
  0        774.5           1.3       1.3X
+OnHeap                                                0              0         
  0       1144.1           0.9       1.0X
+OffHeap                                               0              0         
  0        954.6           1.0       0.8X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBytes (byte) count=64:                 Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       6559.5           0.2       1.0X
-OffHeap                                               0              0         
  0       2591.9           0.4       0.4X
+OnHeap                                                0              0         
  0       2416.5           0.4       1.0X
+OffHeap                                               0              0         
  0       2294.5           0.4       0.9X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBytes (byte) count=512:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0      30826.0           0.0       1.0X
-OffHeap                                               0              0         
  0       2978.3           0.3       0.1X
+OnHeap                                                0              0         
  0       2671.7           0.4       1.0X
+OffHeap                                               0              0         
  0      17075.0           0.1       6.4X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBytes (byte) count=4096:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0     125147.1           0.0       1.0X
-OffHeap                                               2              2         
  0       2668.8           0.4       0.0X
+OnHeap                                                2              2         
  0       2773.4           0.4       1.0X
+OffHeap                                               0              0         
  0      37922.5           0.0      13.7X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putBytes (byte) count=65536:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                1              1         
  0      62489.2           0.0       1.0X
-OffHeap                                              26             26         
  0       2585.6           0.4       0.0X
+OnHeap                                               24             24         
  0       2790.7           0.4       1.0X
+OffHeap                                               2              2         
  0      44412.4           0.0      15.9X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putShorts (short) count=1:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0         69.7          14.3       1.0X
-OffHeap                                               0              0         
  0         85.0          11.8       1.2X
+OnHeap                                                0              0         
  0        130.1           7.7       1.0X
+OffHeap                                               0              0         
  0        102.4           9.8       0.8X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putShorts (short) count=8:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        547.0           1.8       1.0X
-OffHeap                                               0              0         
  0        606.2           1.6       1.1X
+OnHeap                                                0              0         
  0        763.1           1.3       1.0X
+OffHeap                                               0              0         
  0        588.5           1.7       0.8X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putShorts (short) count=64:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       5312.2           0.2       1.0X
-OffHeap                                               0              0         
  0       2135.1           0.5       0.4X
+OnHeap                                                0              0         
  0       2186.4           0.5       1.0X
+OffHeap                                               0              0         
  0       1216.6           0.8       0.6X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putShorts (short) count=512:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0      25588.8           0.0       1.0X
-OffHeap                                               0              0         
  0       2371.7           0.4       0.1X
+OnHeap                                                0              0         
  0       2631.3           0.4       1.0X
+OffHeap                                               0              0         
  0       1377.5           0.7       0.5X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putShorts (short) count=4096:             Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0      73393.7           0.0       1.0X
-OffHeap                                               2              2         
  0       2481.8           0.4       0.0X
+OnHeap                                                2              2         
  0       2775.6           0.4       1.0X
+OffHeap                                               3              3         
  0       1407.7           0.7       0.5X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putShorts (short) count=65536:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0      32274.4           0.0       1.0X
-OffHeap                                              27             27         
  0       2486.3           0.4       0.1X
+OnHeap                                               24             24         
  0       2795.6           0.4       1.0X
+OffHeap                                              48             48         
  0       1410.0           0.7       0.5X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putInts (int) count=1:                    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0         68.4          14.6       1.0X
-OffHeap                                               0              0         
  0         81.1          12.3       1.2X
+OnHeap                                                0              0         
  0         99.0          10.1       1.0X
+OffHeap                                               0              0         
  0         75.6          13.2       0.8X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putInts (int) count=8:                    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        680.3           1.5       1.0X
-OffHeap                                               0              0         
  0        581.0           1.7       0.9X
+OnHeap                                                0              0         
  0        790.4           1.3       1.0X
+OffHeap                                               0              0         
  0        294.3           3.4       0.4X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putInts (int) count=64:                   Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       3917.3           0.3       1.0X
-OffHeap                                               0              0         
  0       2126.1           0.5       0.5X
+OnHeap                                                0              0         
  0       2212.3           0.5       1.0X
+OffHeap                                               0              0         
  0        440.6           2.3       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putInts (int) count=512:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0      19192.0           0.1       1.0X
-OffHeap                                               0              0         
  0       2567.1           0.4       0.1X
+OnHeap                                                0              0         
  0       2638.3           0.4       1.0X
+OffHeap                                               1              1         
  0        402.2           2.5       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putInts (int) count=4096:                 Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0      43419.7           0.0       1.0X
-OffHeap                                               2              2         
  0       2507.4           0.4       0.1X
+OnHeap                                                2              2         
  0       2768.3           0.4       1.0X
+OffHeap                                               9              9         
  0        474.0           2.1       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putInts (int) count=65536:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                4              4         
  0      16570.7           0.1       1.0X
-OffHeap                                              27             27         
  1       2516.9           0.4       0.2X
+OnHeap                                               24             24         
  0       2787.8           0.4       1.0X
+OffHeap                                             142            142         
  0        473.8           2.1       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putLongs (long) count=1:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0         94.2          10.6       1.0X
-OffHeap                                               0              0         
  0         81.0          12.3       0.9X
+OnHeap                                                0              0         
  0        101.6           9.8       1.0X
+OffHeap                                               0              0         
  0         82.0          12.2       0.8X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putLongs (long) count=8:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        680.2           1.5       1.0X
-OffHeap                                               0              0         
  0        347.1           2.9       0.5X
+OnHeap                                                0              0         
  0        604.2           1.7       1.0X
+OffHeap                                               0              0         
  0        302.1           3.3       0.5X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putLongs (long) count=64:                 Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2302.3           0.4       1.0X
-OffHeap                                               0              0         
  0        451.2           2.2       0.2X
+OnHeap                                                0              0         
  0       1954.0           0.5       1.0X
+OffHeap                                               0              0         
  0        443.8           2.3       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putLongs (long) count=512:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2974.8           0.3       1.0X
-OffHeap                                               1              1         
  0        536.8           1.9       0.2X
+OnHeap                                                0              0         
  0       2596.3           0.4       1.0X
+OffHeap                                               1              1         
  0        467.6           2.1       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putLongs (long) count=4096:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                1              1         
  0       3128.9           0.3       1.0X
-OffHeap                                               8              8         
  0        539.5           1.9       0.2X
+OnHeap                                                2              2         
  0       2744.3           0.4       1.0X
+OffHeap                                               9              9         
  0        473.2           2.1       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putLongs (long) count=65536:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               21             21         
  0       3143.8           0.3       1.0X
-OffHeap                                             124            124         
  0        541.2           1.8       0.2X
+OnHeap                                               24             24         
  0       2790.2           0.4       1.0X
+OffHeap                                             142            142         
  0        472.1           2.1       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putNulls ((no value)) count=1:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0         69.8          14.3       1.0X
-OffHeap                                               0              0         
  0         64.5          15.5       0.9X
+OnHeap                                                0              0         
  0         98.7          10.1       1.0X
+OffHeap                                               0              0         
  0         54.2          18.5       0.5X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putNulls ((no value)) count=8:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        547.0           1.8       1.0X
-OffHeap                                               0              0         
  0        296.9           3.4       0.5X
+OnHeap                                                0              0         
  0        600.6           1.7       1.0X
+OffHeap                                               0              0         
  0        252.3           4.0       0.4X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putNulls ((no value)) count=64:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       5188.5           0.2       1.0X
-OffHeap                                               0              0         
  0        481.8           2.1       0.1X
+OnHeap                                                0              0         
  0       1933.3           0.5       1.0X
+OffHeap                                               0              0         
  0        382.0           2.6       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putNulls ((no value)) count=512:          Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0      34184.5           0.0       1.0X
-OffHeap                                               1              1         
  0        527.6           1.9       0.0X
+OnHeap                                                0              0         
  0       2585.9           0.4       1.0X
+OffHeap                                               1              1         
  0        402.4           2.5       0.2X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putNulls ((no value)) count=4096:         Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0     104460.6           0.0       1.0X
-OffHeap                                               8              8         
  0        519.2           1.9       0.0X
+OnHeap                                                2              2         
  0       2769.8           0.4       1.0X
+OffHeap                                              10             10         
  0        406.4           2.5       0.1X
 
 OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure
-Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
+AMD EPYC 9V74 80-Core Processor
 putNulls ((no value)) count=65536:        Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                1              1         
  0      61798.5           0.0       1.0X
-OffHeap                                             135            135         
  0        497.2           2.0       0.0X
+OnHeap                                               24             24         
  0       2793.3           0.4       1.0X
+OffHeap                                             165            165         
  0        406.2           2.5       0.1X
 
 
diff --git 
a/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-jdk25-results.txt 
b/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-jdk25-results.txt
index 71e1c7251ffe..144f864c3653 100644
--- 
a/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-jdk25-results.txt
+++ 
b/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-jdk25-results.txt
@@ -3,255 +3,255 @@ WritableColumnVector bulk fill
 
================================================================================================
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=1:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        414.1           2.4       1.0X
-OffHeap                                               0              0         
  0        448.5           2.2       1.1X
+OnHeap                                                0              0         
  0        422.4           2.4       1.0X
+OffHeap                                               0              0         
  0        448.3           2.2       1.1X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=8:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       1147.3           0.9       1.0X
-OffHeap                                               0              0         
  0       1902.5           0.5       1.7X
+OnHeap                                                0              0         
  0       1523.0           0.7       1.0X
+OffHeap                                               0              0         
  0       1854.2           0.5       1.2X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=64:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       1391.7           0.7       1.0X
-OffHeap                                               0              0         
  0       2661.1           0.4       1.9X
+OnHeap                                                0              0         
  0       2842.8           0.4       1.0X
+OffHeap                                               0              0         
  0       2880.3           0.3       1.0X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=512:          Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2731.7           0.4       1.0X
-OffHeap                                               0              0         
  0       2731.7           0.4       1.0X
+OnHeap                                                0              0         
  0       3069.8           0.3       1.0X
+OffHeap                                               0              0         
  0      25540.1           0.0       8.3X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=4096:         Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2783.1           0.4       1.0X
-OffHeap                                               2              2         
  0       2780.2           0.4       1.0X
+OnHeap                                                1              1         
  0       3133.9           0.3       1.0X
+OffHeap                                               0              0         
  0      45804.3           0.0      14.6X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=65536:        Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  0       2790.6           0.4       1.0X
-OffHeap                                              24             24         
  0       2789.0           0.4       1.0X
+OnHeap                                               21             21         
  0       3152.6           0.3       1.0X
+OffHeap                                               1              1         
  0      50577.0           0.0      16.0X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=1:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        143.0           7.0       1.0X
-OffHeap                                               0              0         
  0        285.6           3.5       2.0X
+OnHeap                                                0              0         
  0        160.2           6.2       1.0X
+OffHeap                                               0              0         
  0        195.4           5.1       1.2X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=8:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        954.6           1.0       1.0X
-OffHeap                                               0              0         
  0       1274.2           0.8       1.3X
+OnHeap                                                0              0         
  0       1126.4           0.9       1.0X
+OffHeap                                               0              0         
  0        864.4           1.2       0.8X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=64:                 Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2415.6           0.4       1.0X
-OffHeap                                               0              0         
  0       2515.9           0.4       1.0X
+OnHeap                                                0              0         
  0       2626.1           0.4       1.0X
+OffHeap                                               0              0         
  0       1421.8           0.7       0.5X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=512:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2667.3           0.4       1.0X
-OffHeap                                               0              0         
  0       2716.5           0.4       1.0X
+OnHeap                                                0              0         
  0       3036.3           0.3       1.0X
+OffHeap                                               0              0         
  0      29634.2           0.0       9.8X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=4096:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2771.6           0.4       1.0X
-OffHeap                                               2              2         
  0       2777.6           0.4       1.0X
+OnHeap                                                1              1         
  0       3131.8           0.3       1.0X
+OffHeap                                               0              0         
  0      47278.4           0.0      15.1X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=65536:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  0       2788.5           0.4       1.0X
-OffHeap                                              24             24         
  0       2788.4           0.4       1.0X
+OnHeap                                               21             21         
  0       3148.1           0.3       1.0X
+OffHeap                                               1              1         
  0      49712.8           0.0      15.8X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=1:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        119.3           8.4       1.0X
-OffHeap                                               0              0         
  0        106.2           9.4       0.9X
+OnHeap                                                0              0         
  0        129.6           7.7       1.0X
+OffHeap                                               0              0         
  0        111.7           9.0       0.9X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=8:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        764.5           1.3       1.0X
-OffHeap                                               0              0         
  0        332.6           3.0       0.4X
+OnHeap                                                0              0         
  0        785.5           1.3       1.0X
+OffHeap                                               0              0         
  0        632.9           1.6       0.8X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=64:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2167.5           0.5       1.0X
-OffHeap                                               0              0         
  0        453.6           2.2       0.2X
+OnHeap                                                0              0         
  0       2331.2           0.4       1.0X
+OffHeap                                               0              0         
  0       1339.4           0.7       0.6X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=512:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2652.6           0.4       1.0X
-OffHeap                                               1              1         
  0        468.6           2.1       0.2X
+OnHeap                                                0              0         
  0       2964.6           0.3       1.0X
+OffHeap                                               0              0         
  0       1556.5           0.6       0.5X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=4096:             Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2772.0           0.4       1.0X
-OffHeap                                               9              9         
  0        474.1           2.1       0.2X
+OnHeap                                                1              1         
  0       3106.0           0.3       1.0X
+OffHeap                                               3              3         
  0       1590.0           0.6       0.5X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=65536:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  0       2790.0           0.4       1.0X
-OffHeap                                             142            143         
  4        473.6           2.1       0.2X
+OnHeap                                               21             21         
  0       3154.1           0.3       1.0X
+OffHeap                                              42             42         
  0       1593.6           0.6       0.5X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=1:                    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0         95.6          10.5       1.0X
-OffHeap                                               0              0         
  0         84.4          11.8       0.9X
+OnHeap                                                0              0         
  0        147.1           6.8       1.0X
+OffHeap                                               0              0         
  0         85.4          11.7       0.6X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=8:                    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        764.5           1.3       1.0X
-OffHeap                                               0              0         
  0        587.2           1.7       0.8X
+OnHeap                                                0              0         
  0        861.6           1.2       1.0X
+OffHeap                                               0              0         
  0        341.3           2.9       0.4X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=64:                   Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2198.1           0.5       1.0X
-OffHeap                                               0              0         
  0       1624.6           0.6       0.7X
+OnHeap                                                0              0         
  0       2412.9           0.4       1.0X
+OffHeap                                               0              0         
  0        472.9           2.1       0.2X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=512:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2638.2           0.4       1.0X
-OffHeap                                               0              0         
  0       1927.9           0.5       0.7X
+OnHeap                                                0              0         
  0       2933.5           0.3       1.0X
+OffHeap                                               1              1         
  0        530.7           1.9       0.2X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=4096:                 Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2767.5           0.4       1.0X
-OffHeap                                               2              2         
  0       1974.3           0.5       0.7X
+OnHeap                                                1              1         
  0       3095.4           0.3       1.0X
+OffHeap                                               8              8         
  0        526.8           1.9       0.2X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=65536:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  0       2787.1           0.4       1.0X
-OffHeap                                              33             34         
  1       2006.8           0.5       0.7X
+OnHeap                                               21             21         
  0       3143.6           0.3       1.0X
+OffHeap                                             126            126         
  0        531.7           1.9       0.2X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=1:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0         95.7          10.4       1.0X
-OffHeap                                               0              0         
  0         84.4          11.8       0.9X
+OnHeap                                                0              0         
  0        108.1           9.3       1.0X
+OffHeap                                               0              0         
  0         92.7          10.8       0.9X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=8:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        638.0           1.6       1.0X
-OffHeap                                               0              0         
  0        314.4           3.2       0.5X
+OnHeap                                                0              0         
  0        671.4           1.5       1.0X
+OffHeap                                               0              0         
  0        518.8           1.9       0.8X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=64:                 Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       1874.5           0.5       1.0X
-OffHeap                                               0              0         
  0        449.2           2.2       0.2X
+OnHeap                                                0              0         
  0       2117.7           0.5       1.0X
+OffHeap                                               0              0         
  0       1265.8           0.8       0.6X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=512:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2605.6           0.4       1.0X
-OffHeap                                               1              1         
  0        467.0           2.1       0.2X
+OnHeap                                                0              0         
  0       2923.4           0.3       1.0X
+OffHeap                                               0              0         
  0       1549.3           0.6       0.5X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=4096:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2727.4           0.4       1.0X
-OffHeap                                               9              9         
  1        473.4           2.1       0.2X
+OnHeap                                                1              1         
  0       3062.8           0.3       1.0X
+OffHeap                                               3              3         
  0       1580.4           0.6       0.5X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=65536:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  1       2784.2           0.4       1.0X
-OffHeap                                             142            142         
  1        472.6           2.1       0.2X
+OnHeap                                               21             22         
  0       3126.5           0.3       1.0X
+OffHeap                                              42             42         
  0       1587.4           0.6       0.5X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=1:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0         95.6          10.5       1.0X
-OffHeap                                               0              0         
  0         57.4          17.4       0.6X
+OnHeap                                                0              0         
  0        100.2          10.0       1.0X
+OffHeap                                               0              0         
  0         75.4          13.3       0.8X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=8:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        609.5           1.6       1.0X
-OffHeap                                               0              0         
  0        255.1           3.9       0.4X
+OnHeap                                                0              0         
  0        647.9           1.5       1.0X
+OffHeap                                               0              0         
  0        308.8           3.2       0.5X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=64:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       1933.2           0.5       1.0X
-OffHeap                                               0              0         
  0        429.3           2.3       0.2X
+OnHeap                                                0              0         
  0       2117.0           0.5       1.0X
+OffHeap                                               0              0         
  0        467.5           2.1       0.2X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=512:          Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2595.6           0.4       1.0X
-OffHeap                                               1              1         
  0        465.4           2.1       0.2X
+OnHeap                                                0              0         
  0       2918.5           0.3       1.0X
+OffHeap                                               1              1         
  0        529.5           1.9       0.2X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=4096:         Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2763.6           0.4       1.0X
-OffHeap                                               9              9         
  0        473.9           2.1       0.2X
+OnHeap                                                1              1         
  0       3083.6           0.3       1.0X
+OffHeap                                               8              8         
  0        525.8           1.9       0.2X
 
 OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=65536:        Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  1       2791.0           0.4       1.0X
-OffHeap                                             142            143         
  1        472.8           2.1       0.2X
+OnHeap                                               21             21         
  0       3152.7           0.3       1.0X
+OffHeap                                             125            126         
  0        534.9           1.9       0.2X
 
 
diff --git 
a/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-results.txt 
b/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-results.txt
index 39fcdba9d097..ca4dbb491539 100644
--- a/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-results.txt
+++ b/sql/core/benchmarks/WritableColumnVectorBulkFillBenchmark-results.txt
@@ -3,255 +3,255 @@ WritableColumnVector bulk fill
 
================================================================================================
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=1:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        420.7           2.4       1.0X
-OffHeap                                               0              0         
  0        291.2           3.4       0.7X
+OnHeap                                                0              0         
  0        410.6           2.4       1.0X
+OffHeap                                               0              0         
  0        276.2           3.6       0.7X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=8:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       1526.1           0.7       1.0X
-OffHeap                                               0              0         
  0       1430.2           0.7       0.9X
+OnHeap                                                0              0         
  0       1434.7           0.7       1.0X
+OffHeap                                               0              0         
  0       1616.1           0.6       1.1X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=64:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2569.1           0.4       1.0X
-OffHeap                                               0              0         
  0       2585.5           0.4       1.0X
+OnHeap                                                0              0         
  0       2803.9           0.4       1.0X
+OffHeap                                               0              0         
  0       2842.8           0.4       1.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=512:          Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2706.4           0.4       1.0X
-OffHeap                                               0              0         
  0       2681.7           0.4       1.0X
+OnHeap                                                0              0         
  0       3041.4           0.3       1.0X
+OffHeap                                               0              0         
  0      20236.5           0.0       6.7X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=4096:         Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2777.3           0.4       1.0X
-OffHeap                                               2              2         
  0       2763.5           0.4       1.0X
+OnHeap                                                1              1         
  0       3133.4           0.3       1.0X
+OffHeap                                               0              0         
  0      40173.8           0.0      12.8X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBooleans (boolean) count=65536:        Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  0       2789.6           0.4       1.0X
-OffHeap                                              24             24         
  0       2777.8           0.4       1.0X
+OnHeap                                               21             21         
  0       3145.6           0.3       1.0X
+OffHeap                                               1              1         
  0      50338.2           0.0      16.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=1:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        177.5           5.6       1.0X
-OffHeap                                               0              0         
  0        285.6           3.5       1.6X
+OnHeap                                                0              0         
  0        168.7           5.9       1.0X
+OffHeap                                               0              0         
  0        189.3           5.3       1.1X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=8:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       1144.1           0.9       1.0X
-OffHeap                                               0              0         
  0       1347.6           0.7       1.2X
+OnHeap                                                0              0         
  0       1080.2           0.9       1.0X
+OffHeap                                               0              0         
  0        864.4           1.2       0.8X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=64:                 Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2448.1           0.4       1.0X
-OffHeap                                               0              0         
  0       2515.9           0.4       1.0X
+OnHeap                                                0              0         
  0       2593.8           0.4       1.0X
+OffHeap                                               0              0         
  0       1421.8           0.7       0.5X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=512:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2686.4           0.4       1.0X
-OffHeap                                               0              0         
  0       2711.6           0.4       1.0X
+OnHeap                                                0              0         
  0       2997.7           0.3       1.0X
+OffHeap                                               0              0         
  0      18259.6           0.1       6.1X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=4096:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2774.5           0.4       1.0X
-OffHeap                                               2              2         
  0       2774.8           0.4       1.0X
+OnHeap                                                3              3         
  0       1591.4           0.6       1.0X
+OffHeap                                               0              0         
  0      40100.4           0.0      25.2X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putBytes (byte) count=65536:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  0       2791.3           0.4       1.0X
-OffHeap                                              24             24         
  0       2786.4           0.4       1.0X
+OnHeap                                               42             42         
  0       1593.2           0.6       1.0X
+OffHeap                                               1              1         
  0      50028.8           0.0      31.4X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=1:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        110.9           9.0       1.0X
-OffHeap                                               0              0         
  0        116.1           8.6       1.0X
+OnHeap                                                0              0         
  0        147.1           6.8       1.0X
+OffHeap                                               0              0         
  0        129.6           7.7       0.9X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=8:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        818.8           1.2       1.0X
-OffHeap                                               0              0         
  0        818.0           1.2       1.0X
+OnHeap                                                0              0         
  0        857.1           1.2       1.0X
+OffHeap                                               0              0         
  0        836.1           1.2       1.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=64:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2212.3           0.5       1.0X
-OffHeap                                               0              0         
  0       2135.7           0.5       1.0X
+OnHeap                                                0              0         
  0       2413.0           0.4       1.0X
+OffHeap                                               0              0         
  0       2331.2           0.4       1.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=512:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2657.5           0.4       1.0X
-OffHeap                                               0              0         
  0       2623.8           0.4       1.0X
+OnHeap                                                0              0         
  0       2973.5           0.3       1.0X
+OffHeap                                               0              0         
  0       2957.7           0.3       1.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=4096:             Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2773.7           0.4       1.0X
-OffHeap                                               2              2         
  0       2770.3           0.4       1.0X
+OnHeap                                                1              1         
  0       3107.5           0.3       1.0X
+OffHeap                                               1              1         
  0       3105.3           0.3       1.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putShorts (short) count=65536:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  1       2792.9           0.4       1.0X
-OffHeap                                              24             24         
  0       2792.1           0.4       1.0X
+OnHeap                                               21             22         
  1       3154.3           0.3       1.0X
+OffHeap                                              21             21         
  0       3145.2           0.3       1.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=1:                    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        111.3           9.0       1.0X
-OffHeap                                               0              0         
  0         87.0          11.5       0.8X
+OnHeap                                                0              0         
  0        153.9           6.5       1.0X
+OffHeap                                               0              0         
  0         92.7          10.8       0.6X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=8:                    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        847.7           1.2       1.0X
-OffHeap                                               0              0         
  0        604.1           1.7       0.7X
+OnHeap                                                0              0         
  0        893.7           1.1       1.0X
+OffHeap                                               0              0         
  0        618.1           1.6       0.7X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=64:                   Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2212.3           0.5       1.0X
-OffHeap                                               0              0         
  0       2504.3           0.4       1.1X
+OnHeap                                                0              0         
  0       2413.0           0.4       1.0X
+OffHeap                                               0              0         
  0       2695.3           0.4       1.1X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=512:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2609.3           0.4       1.0X
-OffHeap                                               0              0         
  0       4753.5           0.2       1.8X
+OnHeap                                                0              0         
  0       2940.0           0.3       1.0X
+OffHeap                                               0              0         
  0       5336.1           0.2       1.8X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=4096:                 Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2762.7           0.4       1.0X
-OffHeap                                               1              1         
  0       5596.9           0.2       2.0X
+OnHeap                                                1              1         
  0       3097.0           0.3       1.0X
+OffHeap                                               1              1         
  0       6240.5           0.2       2.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putInts (int) count=65536:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  1       2785.7           0.4       1.0X
-OffHeap                                              12             12         
  0       5649.9           0.2       2.0X
+OnHeap                                               21             21         
  0       3144.7           0.3       1.0X
+OffHeap                                              11             11         
  1       6387.9           0.2       2.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=1:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        111.1           9.0       1.0X
-OffHeap                                               0              0         
  0         95.6          10.5       0.9X
+OnHeap                                                0              0         
  0        145.6           6.9       1.0X
+OffHeap                                               0              0         
  0         95.4          10.5       0.7X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=8:                  Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        818.8           1.2       1.0X
-OffHeap                                               0              0         
  0        604.1           1.7       0.7X
+OnHeap                                                0              0         
  0        863.5           1.2       1.0X
+OffHeap                                               0              0         
  0        632.9           1.6       0.7X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=64:                 Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2213.0           0.5       1.0X
-OffHeap                                               0              0         
  0       1625.0           0.6       0.7X
+OnHeap                                                0              0         
  0       2413.0           0.4       1.0X
+OffHeap                                               0              0         
  0       2075.4           0.5       0.9X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=512:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2614.6           0.4       1.0X
-OffHeap                                               0              0         
  0       1771.5           0.6       0.7X
+OnHeap                                                0              0         
  0       2939.0           0.3       1.0X
+OffHeap                                               0              0         
  0       2923.1           0.3       1.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=4096:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2738.5           0.4       1.0X
-OffHeap                                               2              2         
  0       1778.7           0.6       0.6X
+OnHeap                                                1              1         
  0       3066.8           0.3       1.0X
+OffHeap                                               1              1         
  0       3063.4           0.3       1.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putLongs (long) count=65536:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  0       2785.5           0.4       1.0X
-OffHeap                                              38             38         
  1       1789.2           0.6       0.6X
+OnHeap                                               21             22         
  0       3125.9           0.3       1.0X
+OffHeap                                              22             22         
  0       3116.3           0.3       1.0X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=1:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        103.9           9.6       1.0X
-OffHeap                                               0              0         
  0         82.0          12.2       0.8X
+OnHeap                                                0              0         
  0        128.6           7.8       1.0X
+OffHeap                                               0              0         
  0         92.7          10.8       0.7X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=8:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0        739.6           1.4       1.0X
-OffHeap                                               0              0         
  0        499.1           2.0       0.7X
+OnHeap                                                0              0         
  0        762.8           1.3       1.0X
+OffHeap                                               0              0         
  0        518.8           1.9       0.7X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=64:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2186.4           0.5       1.0X
-OffHeap                                               0              0         
  0       1141.0           0.9       0.5X
+OnHeap                                                0              0         
  0       2305.8           0.4       1.0X
+OffHeap                                               0              0         
  0       1258.2           0.8       0.5X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=512:          Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                0              0         
  0       2607.9           0.4       1.0X
-OffHeap                                               0              0         
  0       1368.5           0.7       0.5X
+OnHeap                                                0              0         
  0       2928.8           0.3       1.0X
+OffHeap                                               0              0         
  0       1543.5           0.6       0.5X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=4096:         Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                                2              2         
  0       2767.9           0.4       1.0X
-OffHeap                                               3              3         
  0       1406.1           0.7       0.5X
+OnHeap                                                1              1         
  0       3106.4           0.3       1.0X
+OffHeap                                               3              3         
  0       1587.6           0.6       0.5X
 
 OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure
-AMD EPYC 9V74 80-Core Processor
+AMD EPYC 7763 64-Core Processor
 putNulls ((no value)) count=65536:        Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
 
------------------------------------------------------------------------------------------------------------------------
-OnHeap                                               24             24         
  0       2791.6           0.4       1.0X
-OffHeap                                              48             48         
  0       1410.1           0.7       0.5X
+OnHeap                                               21             21         
  0       3150.1           0.3       1.0X
+OffHeap                                              42             42         
  0       1593.1           0.6       0.5X
 
 
diff --git 
a/sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OffHeapColumnVector.java
 
b/sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OffHeapColumnVector.java
index ba740602b4c2..03a645acedf5 100644
--- 
a/sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OffHeapColumnVector.java
+++ 
b/sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OffHeapColumnVector.java
@@ -33,6 +33,14 @@ public final class OffHeapColumnVector extends 
WritableColumnVector {
   private static final boolean bigEndianPlatform =
     ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN);
 
+  // Below this count, byte-fill methods (putBytes / putBooleans) write bytes 
in an inline
+  // loop. At or above this count, they call Platform.setMemory which lowers 
to a native
+  // memset. The JNI fixed cost of setMemory dominates for very short fills; 
on the
+  // benchmarked hardware (Apple M4 Max + OpenJDK 21) the crossover sits 
between 64 and
+  // 512, so 128 is a conservative choice that avoids regression at small 
counts while
+  // retaining the bulk of the asymptotic gain.
+  private static final int SET_MEMORY_THRESHOLD = 128;
+
   /**
    * Allocates columns to store elements of each field of the schema off heap.
    * Capacity is the initial capacity of the vector and it will grow as 
necessary. Capacity is
@@ -151,9 +159,13 @@ public final class OffHeapColumnVector extends 
WritableColumnVector {
 
   @Override
   public void putBooleans(int rowId, int count, boolean value) {
-    byte v = (byte)((value) ? 1 : 0);
-    for (int i = 0; i < count; ++i) {
-      Platform.putByte(null, data + rowId + i, v);
+    byte v = (byte) (value ? 1 : 0);
+    if (count < SET_MEMORY_THRESHOLD) {
+      for (int i = 0; i < count; ++i) {
+        Platform.putByte(null, data + rowId + i, v);
+      }
+    } else {
+      Platform.setMemory(data + rowId, v, count);
     }
   }
 
@@ -193,8 +205,12 @@ public final class OffHeapColumnVector extends 
WritableColumnVector {
 
   @Override
   public void putBytes(int rowId, int count, byte value) {
-    for (int i = 0; i < count; ++i) {
-      Platform.putByte(null, data + rowId + i, value);
+    if (count < SET_MEMORY_THRESHOLD) {
+      for (int i = 0; i < count; ++i) {
+        Platform.putByte(null, data + rowId + i, value);
+      }
+    } else {
+      Platform.setMemory(data + rowId, value, count);
     }
   }
 
diff --git 
a/sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OnHeapColumnVector.java
 
b/sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OnHeapColumnVector.java
index 3e1f4d7a4f83..784c9053ca81 100644
--- 
a/sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OnHeapColumnVector.java
+++ 
b/sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OnHeapColumnVector.java
@@ -146,10 +146,8 @@ public final class OnHeapColumnVector extends 
WritableColumnVector {
 
   @Override
   public void putBooleans(int rowId, int count, boolean value) {
-    byte v = (byte)((value) ? 1 : 0);
-    for (int i = 0; i < count; ++i) {
-      byteData[i + rowId] = v;
-    }
+    byte v = (byte) (value ? 1 : 0);
+    Arrays.fill(byteData, rowId, rowId + count, v);
   }
 
   @Override
@@ -191,9 +189,7 @@ public final class OnHeapColumnVector extends 
WritableColumnVector {
 
   @Override
   public void putBytes(int rowId, int count, byte value) {
-    for (int i = 0; i < count; ++i) {
-      byteData[i + rowId] = value;
-    }
+    Arrays.fill(byteData, rowId, rowId + count, value);
   }
 
   @Override
@@ -253,9 +249,7 @@ public final class OnHeapColumnVector extends 
WritableColumnVector {
 
   @Override
   public void putShorts(int rowId, int count, short value) {
-    for (int i = 0; i < count; ++i) {
-      shortData[i + rowId] = value;
-    }
+    Arrays.fill(shortData, rowId, rowId + count, value);
   }
 
   @Override
@@ -395,9 +389,7 @@ public final class OnHeapColumnVector extends 
WritableColumnVector {
 
   @Override
   public void putLongs(int rowId, int count, long value) {
-    for (int i = 0; i < count; ++i) {
-      longData[i + rowId] = value;
-    }
+    Arrays.fill(longData, rowId, rowId + count, value);
   }
 
   @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to