From cb2db60752b4c5abcc0772a1a6240531fb10bc6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Mej=C3=ADa?= Date: Sun, 17 May 2026 02:09:16 +0200 Subject: [PATCH 01/21] [SPARK-56896][SQL] Add bulk read paths for timestamp/date Parquet vector updaters --- .../parquet/ParquetVectorUpdaterBenchmark.scala | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala index a78593096d5c8..6cbd6ede522f5 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala @@ -48,7 +48,7 @@ import org.apache.spark.sql.types._ * `DowncastLong`. * C. Rebase Updaters -- date/timestamp legacy-calendar rebase variants. * `IntegerWithRebase` (DATE), `LongWithRebase` (TIMESTAMP_MICROS), - * `LongAsMicros`. + * `LongAsMicros`, `DateToTimestampNTZWithRebase`, `LongAsMicrosRebase`. * D. Unsigned Updaters -- `UnsignedInteger`, `UnsignedLong`. * E. Decimal Updaters -- `IntegerToDecimal`, `LongToDecimal`, * `BinaryToDecimal`, `FixedLenByteArrayToDecimal`. @@ -264,6 +264,10 @@ object ParquetVectorUpdaterBenchmark extends BenchmarkBase { TimestampNTZType, descriptor(PrimitiveTypeName.INT32, LogicalTypeAnnotation.dateType()), longVec, intBytes) + addReadValuesCase(benchmark, "LongAsNanosUpdater (TimeType)", + TimeType(), + descriptor(PrimitiveTypeName.INT64), + longVec, longBytes) // 32-bit-decimal target with INT64 source routes via canReadAsLongDecimal + // is32BitDecimalType, both TRUE here, hence DowncastLongUpdater. addReadValuesCase(benchmark, "DowncastLongUpdater (INT64 -> Decimal(9,2))", @@ -303,6 +307,17 @@ object ParquetVectorUpdaterBenchmark extends BenchmarkBase { descriptor(PrimitiveTypeName.INT64, LogicalTypeAnnotation.timestampType(true, LogicalTypeAnnotation.TimeUnit.MILLIS)), longVec, longBytes) + addReadValuesCase(benchmark, "DateToTimestampNTZWithRebaseUpdater (DATE legacy)", + TimestampNTZType, + descriptor(PrimitiveTypeName.INT32, LogicalTypeAnnotation.dateType()), + longVec, intBytes, + datetimeRebaseMode = "LEGACY") + addReadValuesCase(benchmark, "LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy)", + TimestampType, + descriptor(PrimitiveTypeName.INT64, + LogicalTypeAnnotation.timestampType(true, LogicalTypeAnnotation.TimeUnit.MILLIS)), + longVec, longBytes, + datetimeRebaseMode = "LEGACY") benchmark.run() } From 00bee3f90dd13928bb8be70e56fd491ea94b440f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Mej=C3=ADa?= Date: Wed, 10 Jun 2026 18:55:49 +0200 Subject: [PATCH 02/21] Address review: add LongAsNanos to Group B doc, use production timeType annotation --- .../datasources/parquet/ParquetVectorUpdaterBenchmark.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala index 6cbd6ede522f5..7bc8e1758b5f8 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala @@ -45,7 +45,7 @@ import org.apache.spark.sql.types._ * (Boolean, Byte, Short, Integer, Long, Float, Double, Binary). * B. Type-converting Updaters -- per-row read+convert+write loops. * `IntegerToLong`, `IntegerToDouble`, `FloatToDouble`, `DateToTimestampNTZ`, - * `DowncastLong`. + * `DowncastLong`, `LongAsNanos`. * C. Rebase Updaters -- date/timestamp legacy-calendar rebase variants. * `IntegerWithRebase` (DATE), `LongWithRebase` (TIMESTAMP_MICROS), * `LongAsMicros`, `DateToTimestampNTZWithRebase`, `LongAsMicrosRebase`. @@ -266,7 +266,7 @@ object ParquetVectorUpdaterBenchmark extends BenchmarkBase { longVec, intBytes) addReadValuesCase(benchmark, "LongAsNanosUpdater (TimeType)", TimeType(), - descriptor(PrimitiveTypeName.INT64), + descriptor(PrimitiveTypeName.INT64, LogicalTypeAnnotation.timeType(false, LogicalTypeAnnotation.TimeUnit.MICROS)), longVec, longBytes) // 32-bit-decimal target with INT64 source routes via canReadAsLongDecimal + // is32BitDecimalType, both TRUE here, hence DowncastLongUpdater. From d2a6a3100f75e22fd093135dd5f09bdc857a4604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Mej=C3=ADa?= Date: Wed, 10 Jun 2026 20:13:33 +0200 Subject: [PATCH 03/21] Add bulk read paths for LongAsMicros, LongAsNanos, LongAsMicrosRebase, DateToTimestampNTZWithRebase updaters --- .../parquet/ParquetVectorUpdaterFactory.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterFactory.java b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterFactory.java index c088f5f2844be..e1b0639b24bbd 100644 --- a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterFactory.java +++ b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterFactory.java @@ -470,8 +470,10 @@ public void readValues( int offset, WritableColumnVector values, VectorizedValuesReader valuesReader) { - for (int i = 0; i < total; ++i) { - readValue(offset + i, values, valuesReader); + valuesReader.readIntegersAsLongs(total, values, offset); + for (int i = 0; i < total; i++) { + int rebasedDays = rebaseDays((int) values.getLong(offset + i), failIfRebase); + values.putLong(offset + i, DateTimeUtils.daysToMicros(rebasedDays, ZoneOffset.UTC)); } } @@ -796,8 +798,9 @@ public void readValues( int offset, WritableColumnVector values, VectorizedValuesReader valuesReader) { - for (int i = 0; i < total; ++i) { - readValue(offset + i, values, valuesReader); + valuesReader.readLongs(total, values, offset); + for (int i = 0; i < total; i++) { + values.putLong(offset + i, DateTimeUtils.millisToMicros(values.getLong(offset + i))); } } @@ -840,8 +843,10 @@ public void readValues( int offset, WritableColumnVector values, VectorizedValuesReader valuesReader) { - for (int i = 0; i < total; ++i) { - readValue(offset + i, values, valuesReader); + valuesReader.readLongs(total, values, offset); + for (int i = 0; i < total; i++) { + long julianMicros = DateTimeUtils.millisToMicros(values.getLong(offset + i)); + values.putLong(offset + i, rebaseMicros(julianMicros, failIfRebase, timeZone)); } } @@ -878,8 +883,9 @@ public void readValues( int offset, WritableColumnVector values, VectorizedValuesReader valuesReader) { - for (int i = 0; i < total; ++i) { - readValue(offset + i, values, valuesReader); + valuesReader.readLongs(total, values, offset); + for (int i = 0; i < total; i++) { + values.putLong(offset + i, DateTimeUtils.microsToNanos(values.getLong(offset + i))); } } From 4069653c3d138155c8ddd72583854725f61dff54 Mon Sep 17 00:00:00 2001 From: iemejia Date: Wed, 10 Jun 2026 23:34:12 +0000 Subject: [PATCH 04/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 17, Scala 2.13, split 1 of 1) --- .../ParquetVectorUpdaterBenchmark-results.txt | 65 ++++++++++--------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt index 828e685788773..a39f857a63a3a 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt @@ -2,83 +2,86 @@ Identity Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure AMD EPYC 7763 64-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 14640.0 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3686.8 0.3 0.3X -ShortUpdater (INT32 -> Short) 1 1 0 2054.1 0.5 0.1X -IntegerUpdater 0 0 0 7759.1 0.1 0.5X -LongUpdater 0 0 0 3876.1 0.3 0.3X -FloatUpdater 0 0 0 7762.5 0.1 0.5X -DoubleUpdater 0 0 0 5123.2 0.2 0.3X -BinaryUpdater 15 15 0 70.1 14.3 0.0X +BooleanUpdater 0 0 0 20486.0 0.0 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3672.0 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 2054.6 0.5 0.1X +IntegerUpdater 0 0 0 10175.2 0.1 0.5X +LongUpdater 0 0 0 5055.6 0.2 0.2X +FloatUpdater 0 0 0 10222.9 0.1 0.5X +DoubleUpdater 0 0 0 5089.3 0.2 0.2X +BinaryUpdater 15 16 0 68.6 14.6 0.0X ================================================================================================ Type-converting Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure AMD EPYC 7763 64-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 1 1 0 1281.0 0.8 1.0X -IntegerToDoubleUpdater 1 1 0 1550.0 0.6 1.2X -FloatToDoubleUpdater 1 1 0 1419.0 0.7 1.1X -DateToTimestampNTZUpdater 2 2 0 605.2 1.7 0.5X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 1 1 0 1285.1 0.8 1.0X +IntegerToLongUpdater 1 1 0 1281.1 0.8 1.0X +IntegerToDoubleUpdater 1 1 0 1526.2 0.7 1.2X +FloatToDoubleUpdater 1 1 0 1417.8 0.7 1.1X +DateToTimestampNTZUpdater 2 2 0 605.3 1.7 0.5X +LongAsNanosUpdater (TimeType) 1 1 0 939.6 1.1 0.7X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 1 1 0 1286.4 0.8 1.0X ================================================================================================ Rebase Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure AMD EPYC 7763 64-Core Processor -Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative -------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 2662.8 0.4 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 2084.1 0.5 0.8X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 2 2 0 454.8 2.2 0.2X +Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative +----------------------------------------------------------------------------------------------------------------------------------- +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 2482.1 0.4 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 1968.5 0.5 0.8X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 942.4 1.1 0.4X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 434.3 2.3 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 887.7 1.1 0.4X ================================================================================================ Unsigned Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure AMD EPYC 7763 64-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 1 1 0 1094.1 0.9 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 17 0 61.0 16.4 0.1X +UnsignedIntegerUpdater (UINT32 -> Long) 1 1 0 1092.8 0.9 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 59.1 16.9 0.1X ================================================================================================ Decimal Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure AMD EPYC 7763 64-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 10261.0 0.1 1.0X -LongToDecimalUpdater 0 0 0 5118.9 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 21 21 0 51.0 19.6 0.0X +IntegerToDecimalUpdater 0 0 0 10180.2 0.1 1.0X +LongToDecimalUpdater 0 0 0 5065.4 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 21 21 0 51.1 19.6 0.0X ================================================================================================ FixedLenByteArray Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1013-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure AMD EPYC 7763 64-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 19 19 0 55.3 18.1 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 160.2 6.2 2.9X +FixedLenByteArrayUpdater (len=16 -> Binary) 19 20 1 55.0 18.2 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 160.1 6.2 2.9X FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 9 9 0 123.3 8.1 2.2X From 49848dad18ad0d2f1f80419bb83c10dc463a42fc Mon Sep 17 00:00:00 2001 From: iemejia Date: Wed, 10 Jun 2026 23:38:46 +0000 Subject: [PATCH 05/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 21, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk21-results.txt | 79 ++++++++++--------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt index 07373d576633d..4143f4f7b95c0 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt @@ -2,83 +2,86 @@ Identity Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 16990.6 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3765.0 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1682.9 0.6 0.1X -IntegerUpdater 0 0 0 7756.2 0.1 0.5X -LongUpdater 0 0 0 3870.4 0.3 0.2X -FloatUpdater 0 0 0 7758.5 0.1 0.5X -DoubleUpdater 0 0 0 3875.9 0.3 0.2X -BinaryUpdater 15 15 0 70.4 14.2 0.0X +BooleanUpdater 0 0 0 16217.3 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3623.2 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1505.5 0.7 0.1X +IntegerUpdater 0 0 0 8227.9 0.1 0.5X +LongUpdater 0 0 0 4064.3 0.2 0.3X +FloatUpdater 0 0 0 8268.8 0.1 0.5X +DoubleUpdater 0 0 0 4106.3 0.2 0.3X +BinaryUpdater 17 18 1 60.4 16.6 0.0X ================================================================================================ Type-converting Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 5133.8 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 6090.4 0.2 1.2X -FloatToDoubleUpdater 0 0 0 2527.1 0.4 0.5X -DateToTimestampNTZUpdater 1 1 0 934.8 1.1 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5108.5 0.2 1.0X +IntegerToLongUpdater 0 0 0 5533.2 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 5573.3 0.2 1.0X +FloatToDoubleUpdater 0 0 0 2387.3 0.4 0.4X +DateToTimestampNTZUpdater 1 1 0 804.1 1.2 0.1X +LongAsNanosUpdater (TimeType) 1 1 0 1046.3 1.0 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5506.2 0.2 1.0X ================================================================================================ Rebase Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor -Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative -------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3263.0 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2282.0 0.4 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 2 3 0 420.5 2.4 0.1X +OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor +Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative +----------------------------------------------------------------------------------------------------------------------------------- +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3130.2 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2207.4 0.5 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1047.1 1.0 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 603.0 1.7 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 877.9 1.1 0.3X ================================================================================================ Unsigned Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5112.2 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 16 17 0 63.9 15.7 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5513.7 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 16 16 0 64.0 15.6 0.0X ================================================================================================ Decimal Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 7750.4 0.1 1.0X -LongToDecimalUpdater 0 0 0 3866.5 0.3 0.5X -FixedLenByteArrayToDecimalUpdater 21 21 0 50.1 19.9 0.0X +IntegerToDecimalUpdater 0 0 0 8295.6 0.1 1.0X +LongToDecimalUpdater 0 0 0 4047.6 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 23 24 1 45.2 22.1 0.0X ================================================================================================ FixedLenByteArray Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 20 20 0 51.7 19.3 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 1 160.1 6.2 3.1X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 133.2 7.5 2.6X +FixedLenByteArrayUpdater (len=16 -> Binary) 22 23 1 47.1 21.2 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 163.6 6.1 3.5X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 126.6 7.9 2.7X From 80a1da2abfa8b7eb6e3beda3f85d7e8a4e2afa9c Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 08:46:54 +0000 Subject: [PATCH 06/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 25, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk25-results.txt | 79 ++++++++++--------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt index e03dae8c072ac..1940521174ac6 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt @@ -2,83 +2,86 @@ Identity Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17171.8 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3679.8 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1662.3 0.6 0.1X -IntegerUpdater 0 0 0 10261.9 0.1 0.6X -LongUpdater 0 0 0 5130.7 0.2 0.3X -FloatUpdater 0 0 0 10255.9 0.1 0.6X -DoubleUpdater 0 0 0 5127.2 0.2 0.3X -BinaryUpdater 15 16 0 67.7 14.8 0.0X +BooleanUpdater 0 0 0 17008.3 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3485.0 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1518.6 0.7 0.1X +IntegerUpdater 0 0 0 8196.5 0.1 0.5X +LongUpdater 0 0 0 4176.4 0.2 0.2X +FloatUpdater 0 0 0 8196.5 0.1 0.5X +DoubleUpdater 0 0 0 4173.9 0.2 0.2X +BinaryUpdater 18 18 0 59.5 16.8 0.0X ================================================================================================ Type-converting Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 6438.7 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 6441.2 0.2 1.0X -FloatToDoubleUpdater 0 0 0 3199.5 0.3 0.5X -DateToTimestampNTZUpdater 1 1 0 884.9 1.1 0.1X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 6713.8 0.1 1.0X +IntegerToLongUpdater 0 0 0 5453.0 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 5518.8 0.2 1.0X +FloatToDoubleUpdater 0 0 0 2843.8 0.4 0.5X +DateToTimestampNTZUpdater 1 1 0 773.9 1.3 0.1X +LongAsNanosUpdater (TimeType) 1 1 0 1050.0 1.0 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5308.9 0.2 1.0X ================================================================================================ Rebase Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor -Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative -------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3664.5 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2668.7 0.4 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 3 3 0 371.3 2.7 0.1X +OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor +Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative +----------------------------------------------------------------------------------------------------------------------------------- +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3114.8 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2202.8 0.5 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1049.6 1.0 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 633.8 1.6 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 967.5 1.0 0.3X ================================================================================================ Unsigned Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 6183.9 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 17 0 60.4 16.6 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5514.2 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.4 17.1 0.0X ================================================================================================ Decimal Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 10268.1 0.1 1.0X -LongToDecimalUpdater 0 0 0 5122.2 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 21 21 0 50.9 19.7 0.0X +IntegerToDecimalUpdater 0 0 0 8197.2 0.1 1.0X +LongToDecimalUpdater 0 0 0 4089.5 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 26 26 0 40.2 24.9 0.0X ================================================================================================ FixedLenByteArray Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1013-azure -AMD EPYC 7763 64-Core Processor +OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure +AMD EPYC 9V74 80-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 21 21 1 50.3 19.9 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 152.7 6.6 3.0X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 127.7 7.8 2.5X +FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 1 46.2 21.7 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 164.6 6.1 3.6X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 126.8 7.9 2.7X From f39a8f219d496d9ef93986cae7d6892f27d98bb4 Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 08:48:43 +0000 Subject: [PATCH 07/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 21, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk21-results.txt | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt index 4143f4f7b95c0..bf94406bc153a 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt @@ -3,17 +3,17 @@ Identity Updaters ================================================================================================ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 16217.3 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3623.2 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1505.5 0.7 0.1X -IntegerUpdater 0 0 0 8227.9 0.1 0.5X -LongUpdater 0 0 0 4064.3 0.2 0.3X -FloatUpdater 0 0 0 8268.8 0.1 0.5X -DoubleUpdater 0 0 0 4106.3 0.2 0.3X -BinaryUpdater 17 18 1 60.4 16.6 0.0X +BooleanUpdater 0 0 0 17001.6 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3762.8 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1683.1 0.6 0.1X +IntegerUpdater 0 0 0 7747.5 0.1 0.5X +LongUpdater 0 0 0 3856.2 0.3 0.2X +FloatUpdater 0 0 0 7732.1 0.1 0.5X +DoubleUpdater 0 0 0 3857.2 0.3 0.2X +BinaryUpdater 15 15 0 71.2 14.0 0.0X ================================================================================================ @@ -21,15 +21,15 @@ Type-converting Updaters ================================================================================================ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 5533.2 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 5573.3 0.2 1.0X -FloatToDoubleUpdater 0 0 0 2387.3 0.4 0.4X -DateToTimestampNTZUpdater 1 1 0 804.1 1.2 0.1X -LongAsNanosUpdater (TimeType) 1 1 0 1046.3 1.0 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5506.2 0.2 1.0X +IntegerToLongUpdater 0 0 0 6164.2 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 6197.0 0.2 1.0X +FloatToDoubleUpdater 0 0 0 2525.7 0.4 0.4X +DateToTimestampNTZUpdater 1 1 0 935.6 1.1 0.2X +LongAsNanosUpdater (TimeType) 1 1 0 1138.0 0.9 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5804.6 0.2 0.9X ================================================================================================ @@ -37,14 +37,14 @@ Rebase Updaters ================================================================================================ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3130.2 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2207.4 0.5 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1047.1 1.0 0.3X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 603.0 1.7 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 877.9 1.1 0.3X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3266.0 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2659.2 0.4 0.8X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1225.1 0.8 0.4X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 796.7 1.3 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 1096.7 0.9 0.3X ================================================================================================ @@ -52,11 +52,11 @@ Unsigned Updaters ================================================================================================ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5513.7 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 16 16 0 64.0 15.6 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5090.3 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 16 17 0 63.8 15.7 0.0X ================================================================================================ @@ -64,12 +64,12 @@ Decimal Updaters ================================================================================================ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 8295.6 0.1 1.0X -LongToDecimalUpdater 0 0 0 4047.6 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 23 24 1 45.2 22.1 0.0X +IntegerToDecimalUpdater 0 0 0 10030.9 0.1 1.0X +LongToDecimalUpdater 0 0 0 5124.2 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 21 21 0 50.3 19.9 0.0X ================================================================================================ @@ -77,11 +77,11 @@ FixedLenByteArray Updaters ================================================================================================ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 22 23 1 47.1 21.2 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 163.6 6.1 3.5X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 126.6 7.9 2.7X +FixedLenByteArrayUpdater (len=16 -> Binary) 20 20 0 52.8 18.9 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 160.2 6.2 3.0X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 133.3 7.5 2.5X From 918d57125b4e7f9b7212eb5c3607581af3ece118 Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 08:50:14 +0000 Subject: [PATCH 08/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 17, Scala 2.13, split 1 of 1) --- .../ParquetVectorUpdaterBenchmark-results.txt | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt index a39f857a63a3a..d26b01a61a8c0 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt @@ -2,48 +2,48 @@ Identity Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 20486.0 0.0 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3672.0 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 2054.6 0.5 0.1X -IntegerUpdater 0 0 0 10175.2 0.1 0.5X -LongUpdater 0 0 0 5055.6 0.2 0.2X -FloatUpdater 0 0 0 10222.9 0.1 0.5X -DoubleUpdater 0 0 0 5089.3 0.2 0.2X -BinaryUpdater 15 16 0 68.6 14.6 0.0X +BooleanUpdater 0 0 0 14650.4 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3680.4 0.3 0.3X +ShortUpdater (INT32 -> Short) 1 1 0 2053.7 0.5 0.1X +IntegerUpdater 0 0 0 10258.0 0.1 0.7X +LongUpdater 0 0 0 5140.6 0.2 0.4X +FloatUpdater 0 0 0 10249.9 0.1 0.7X +DoubleUpdater 0 0 0 5124.2 0.2 0.3X +BinaryUpdater 15 15 0 70.2 14.2 0.0X ================================================================================================ Type-converting Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 1 1 0 1281.1 0.8 1.0X -IntegerToDoubleUpdater 1 1 0 1526.2 0.7 1.2X -FloatToDoubleUpdater 1 1 0 1417.8 0.7 1.1X +IntegerToLongUpdater 1 1 0 1281.7 0.8 1.0X +IntegerToDoubleUpdater 1 1 0 1510.1 0.7 1.2X +FloatToDoubleUpdater 1 1 0 1418.9 0.7 1.1X DateToTimestampNTZUpdater 2 2 0 605.3 1.7 0.5X -LongAsNanosUpdater (TimeType) 1 1 0 939.6 1.1 0.7X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 1 1 0 1286.4 0.8 1.0X +LongAsNanosUpdater (TimeType) 1 1 0 1002.5 1.0 0.8X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 1 1 0 1287.4 0.8 1.0X ================================================================================================ Rebase Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 2482.1 0.4 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 1968.5 0.5 0.8X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 942.4 1.1 0.4X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 434.3 2.3 0.2X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 2408.3 0.4 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 2081.5 0.5 0.9X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 942.1 1.1 0.4X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 435.1 2.3 0.2X LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 887.7 1.1 0.4X @@ -51,37 +51,37 @@ LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 Unsigned Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 1 1 0 1092.8 0.9 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 59.1 16.9 0.1X +UnsignedIntegerUpdater (UINT32 -> Long) 1 1 0 1093.9 0.9 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 17 0 60.9 16.4 0.1X ================================================================================================ Decimal Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 10180.2 0.1 1.0X -LongToDecimalUpdater 0 0 0 5065.4 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 21 21 0 51.1 19.6 0.0X +IntegerToDecimalUpdater 0 0 0 10279.1 0.1 1.0X +LongToDecimalUpdater 0 0 0 5133.0 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 20 21 0 51.3 19.5 0.0X ================================================================================================ FixedLenByteArray Updaters ================================================================================================ -OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1015-azure +OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 19 20 1 55.0 18.2 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 160.1 6.2 2.9X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 9 9 0 123.3 8.1 2.2X +FixedLenByteArrayUpdater (len=16 -> Binary) 19 20 1 55.3 18.1 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 160.2 6.2 2.9X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 9 9 0 123.2 8.1 2.2X From fc8b1e2f343b400e7b9144c0104072a0176cc055 Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 09:04:43 +0000 Subject: [PATCH 09/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 25, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk25-results.txt | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt index 1940521174ac6..7eeffa45d33f8 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt @@ -3,17 +3,17 @@ Identity Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17008.3 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3485.0 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1518.6 0.7 0.1X -IntegerUpdater 0 0 0 8196.5 0.1 0.5X -LongUpdater 0 0 0 4176.4 0.2 0.2X -FloatUpdater 0 0 0 8196.5 0.1 0.5X -DoubleUpdater 0 0 0 4173.9 0.2 0.2X -BinaryUpdater 18 18 0 59.5 16.8 0.0X +BooleanUpdater 0 0 0 17160.2 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3686.1 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1660.3 0.6 0.1X +IntegerUpdater 0 0 0 10209.8 0.1 0.6X +LongUpdater 0 0 0 5100.9 0.2 0.3X +FloatUpdater 0 0 0 10273.9 0.1 0.6X +DoubleUpdater 0 0 0 5137.7 0.2 0.3X +BinaryUpdater 16 16 0 66.4 15.1 0.0X ================================================================================================ @@ -21,15 +21,15 @@ Type-converting Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 5453.0 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 5518.8 0.2 1.0X -FloatToDoubleUpdater 0 0 0 2843.8 0.4 0.5X -DateToTimestampNTZUpdater 1 1 0 773.9 1.3 0.1X -LongAsNanosUpdater (TimeType) 1 1 0 1050.0 1.0 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5308.9 0.2 1.0X +IntegerToLongUpdater 0 0 0 6482.1 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 6457.7 0.2 1.0X +FloatToDoubleUpdater 0 0 0 3188.3 0.3 0.5X +DateToTimestampNTZUpdater 1 1 0 883.2 1.1 0.1X +LongAsNanosUpdater (TimeType) 1 1 0 1147.8 0.9 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 6595.3 0.2 1.0X ================================================================================================ @@ -37,14 +37,14 @@ Rebase Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3114.8 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2202.8 0.5 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1049.6 1.0 0.3X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 633.8 1.6 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 967.5 1.0 0.3X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3637.5 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2677.7 0.4 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1228.4 0.8 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 719.9 1.4 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 1094.1 0.9 0.3X ================================================================================================ @@ -52,11 +52,11 @@ Unsigned Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5514.2 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.4 17.1 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 6125.5 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 17 0 60.4 16.6 0.0X ================================================================================================ @@ -64,12 +64,12 @@ Decimal Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 8197.2 0.1 1.0X -LongToDecimalUpdater 0 0 0 4089.5 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 26 26 0 40.2 24.9 0.0X +IntegerToDecimalUpdater 0 0 0 10247.8 0.1 1.0X +LongToDecimalUpdater 0 0 0 5110.4 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 21 21 0 50.8 19.7 0.0X ================================================================================================ @@ -77,11 +77,11 @@ FixedLenByteArray Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 1 46.2 21.7 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 164.6 6.1 3.6X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 126.8 7.9 2.7X +FixedLenByteArrayUpdater (len=16 -> Binary) 21 22 2 50.4 19.8 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 152.6 6.6 3.0X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 127.5 7.8 2.5X From 12e841b40839149a0d102d286cecb7bdf3088d56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Mej=C3=ADa?= Date: Fri, 12 Jun 2026 14:51:29 +0200 Subject: [PATCH 10/21] Fix scalastyle: wrap long line in benchmark descriptor Assisted-by: OpenCode:claude-opus-4.6 --- .../datasources/parquet/ParquetVectorUpdaterBenchmark.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala index 7bc8e1758b5f8..a0664fa5780c3 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterBenchmark.scala @@ -266,7 +266,8 @@ object ParquetVectorUpdaterBenchmark extends BenchmarkBase { longVec, intBytes) addReadValuesCase(benchmark, "LongAsNanosUpdater (TimeType)", TimeType(), - descriptor(PrimitiveTypeName.INT64, LogicalTypeAnnotation.timeType(false, LogicalTypeAnnotation.TimeUnit.MICROS)), + descriptor(PrimitiveTypeName.INT64, + LogicalTypeAnnotation.timeType(false, LogicalTypeAnnotation.TimeUnit.MICROS)), longVec, longBytes) // 32-bit-decimal target with INT64 source routes via canReadAsLongDecimal + // is32BitDecimalType, both TRUE here, hence DowncastLongUpdater. From db81c2d7e674dbba14d7b7e096e4f09c197d76af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Mej=C3=ADa?= Date: Fri, 12 Jun 2026 15:03:26 +0200 Subject: [PATCH 11/21] Migrate DateToTimestampNTZUpdater to two-pass pattern and remove readIntegersAsTimestampMicros Consolidate DateToTimestampNTZUpdater (CORRECTED mode, from SPARK-56804) to the same two-pass bulk-read pattern used by the other updaters in this PR: readIntegersAsLongs + in-place daysToMicros conversion. This eliminates the per-conversion interface method readIntegersAsTimestampMicros from VectorizedValuesReader, since the two-pass form uses the mandatory readIntegersAsLongs that every encoding already implements. All encodings now benefit from the bulk-read optimization without needing per-method overrides. Assisted-by: OpenCode:claude-opus-4.6 --- .../parquet/ParquetVectorUpdaterFactory.java | 6 +++- .../parquet/VectorizedPlainValuesReader.java | 15 ---------- .../parquet/VectorizedValuesReader.java | 28 ------------------- 3 files changed, 5 insertions(+), 44 deletions(-) diff --git a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterFactory.java b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterFactory.java index e1b0639b24bbd..90e4c3e04f814 100644 --- a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterFactory.java +++ b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterFactory.java @@ -429,7 +429,11 @@ public void readValues( int offset, WritableColumnVector values, VectorizedValuesReader valuesReader) { - valuesReader.readIntegersAsTimestampMicros(total, values, offset); + valuesReader.readIntegersAsLongs(total, values, offset); + for (int i = 0; i < total; i++) { + values.putLong(offset + i, + DateTimeUtils.daysToMicros((int) values.getLong(offset + i), ZoneOffset.UTC)); + } } @Override diff --git a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedPlainValuesReader.java b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedPlainValuesReader.java index 23207e7db3570..9249fab7915ca 100644 --- a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedPlainValuesReader.java +++ b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedPlainValuesReader.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import java.time.ZoneOffset; import org.apache.parquet.bytes.ByteBufferInputStream; import org.apache.parquet.column.values.ValuesReader; @@ -27,7 +26,6 @@ import org.apache.parquet.io.ParquetDecodingException; import org.apache.spark.SparkUnsupportedOperationException; -import org.apache.spark.sql.catalyst.util.DateTimeUtils; import org.apache.spark.sql.catalyst.util.RebaseDateTime; import org.apache.spark.sql.execution.datasources.DataSourceUtils; import org.apache.spark.sql.execution.vectorized.WritableColumnVector; @@ -206,19 +204,6 @@ public final void readLongsAsInts(int total, WritableColumnVector c, int rowId) } } - @Override - public final void readIntegersAsTimestampMicros( - int total, WritableColumnVector c, int rowId) { - int requiredBytes = total * 4; - ByteBuffer buffer = getBuffer(requiredBytes); - // Per-element conversion calls into `DateTimeUtils.daysToMicros`, which is `days * - // MICROS_PER_DAY` for UTC plus an overflow check via `Math.multiplyExact`. No - // `hasArray` bulk-copy path because source and target have different widths. - for (int i = 0; i < total; i += 1) { - c.putLong(rowId + i, DateTimeUtils.daysToMicros(buffer.getInt(), ZoneOffset.UTC)); - } - } - // A fork of `readIntegers` to rebase the date values. For performance reasons, this method // iterates the values twice: check if we need to rebase first, then go to the optimized branch // if rebase is not needed. diff --git a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedValuesReader.java b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedValuesReader.java index bf6a1c6a03886..c62f7bcec8c35 100644 --- a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedValuesReader.java +++ b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedValuesReader.java @@ -18,9 +18,7 @@ package org.apache.spark.sql.execution.datasources.parquet; import java.nio.ByteBuffer; -import java.time.ZoneOffset; -import org.apache.spark.sql.catalyst.util.DateTimeUtils; import org.apache.spark.sql.execution.vectorized.WritableColumnVector; import org.apache.parquet.io.api.Binary; @@ -138,32 +136,6 @@ default void readLongsAsInts(int total, WritableColumnVector c, int rowId) { } } - /** - * Reads {@code total} INT32 date-day values (days since 1970-01-01, Proleptic Gregorian), - * converts each to TimestampNTZ micros at UTC via - * {@link DateTimeUtils#daysToMicros(int, java.time.ZoneId)}, and writes them into - * {@code c} starting at {@code c[rowId]}. Used by the type-converting updater that - * reads parquet INT32 DATE columns into Spark {@code TimestampNTZType} targets in - * {@code CORRECTED} datetime-rebase mode. The {@code LEGACY}/{@code EXCEPTION} rebase - * variants are out of scope for this method. - * - *

The default implementation is a per-row loop that calls - * {@code DateTimeUtils.daysToMicros} per element; it is algorithmically equivalent to - * the legacy per-row Updater path but the per-element conversion call dominates the - * loop, so the speedup from overriding this method is more modest than for the pure - * primitive-cast siblings ({@link #readIntegersAsLongs}, {@link #readIntegersAsDoubles}). - * Subclasses backed by contiguous bulk storage (e.g. PLAIN encoding via - * {@link VectorizedPlainValuesReader}) should override to read source bytes once and run - * a tight in-method conversion loop, avoiding {@code total} virtual dispatches on - * {@link #readInteger()}. Readers without an override preserve correctness but gain no - * speedup. - */ - default void readIntegersAsTimestampMicros(int total, WritableColumnVector c, int rowId) { - for (int i = 0; i < total; i += 1) { - c.putLong(rowId + i, DateTimeUtils.daysToMicros(readInteger(), ZoneOffset.UTC)); - } - } - void readBinary(int total, WritableColumnVector c, int rowId); void readGeometry(int total, WritableColumnVector c, int rowId); void readGeography(int total, WritableColumnVector c, int rowId); From 3984f6bf771ca4ee7ce2860a67f8792b3b9d35ab Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 15:03:51 +0000 Subject: [PATCH 12/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 17, Scala 2.13, split 1 of 1) --- .../ParquetVectorUpdaterBenchmark-results.txt | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt index d26b01a61a8c0..c27d195888be1 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt @@ -3,17 +3,17 @@ Identity Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 14650.4 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3680.4 0.3 0.3X -ShortUpdater (INT32 -> Short) 1 1 0 2053.7 0.5 0.1X -IntegerUpdater 0 0 0 10258.0 0.1 0.7X -LongUpdater 0 0 0 5140.6 0.2 0.4X -FloatUpdater 0 0 0 10249.9 0.1 0.7X -DoubleUpdater 0 0 0 5124.2 0.2 0.3X -BinaryUpdater 15 15 0 70.2 14.2 0.0X +BooleanUpdater 0 0 0 14779.9 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3592.8 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1823.8 0.5 0.1X +IntegerUpdater 0 0 0 8268.2 0.1 0.6X +LongUpdater 0 0 0 4118.6 0.2 0.3X +FloatUpdater 0 0 0 8146.6 0.1 0.6X +DoubleUpdater 0 0 0 4103.0 0.2 0.3X +BinaryUpdater 18 18 0 58.8 17.0 0.0X ================================================================================================ @@ -21,15 +21,15 @@ Type-converting Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 1 1 0 1281.7 0.8 1.0X -IntegerToDoubleUpdater 1 1 0 1510.1 0.7 1.2X -FloatToDoubleUpdater 1 1 0 1418.9 0.7 1.1X -DateToTimestampNTZUpdater 2 2 0 605.3 1.7 0.5X -LongAsNanosUpdater (TimeType) 1 1 0 1002.5 1.0 0.8X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 1 1 0 1287.4 0.8 1.0X +IntegerToLongUpdater 1 1 0 1128.8 0.9 1.0X +IntegerToDoubleUpdater 1 1 0 1366.0 0.7 1.2X +FloatToDoubleUpdater 1 1 0 1283.2 0.8 1.1X +DateToTimestampNTZUpdater 2 2 0 516.9 1.9 0.5X +LongAsNanosUpdater (TimeType) 1 1 0 830.1 1.2 0.7X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 1 1 0 1137.8 0.9 1.0X ================================================================================================ @@ -37,14 +37,14 @@ Rebase Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 2408.3 0.4 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 2081.5 0.5 0.9X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 942.1 1.1 0.4X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 435.1 2.3 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 887.7 1.1 0.4X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 2181.6 0.5 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 1743.6 0.6 0.8X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 830.8 1.2 0.4X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 3 3 0 384.0 2.6 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 787.2 1.3 0.4X ================================================================================================ @@ -52,11 +52,11 @@ Unsigned Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 1 1 0 1093.9 0.9 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 17 0 60.9 16.4 0.1X +UnsignedIntegerUpdater (UINT32 -> Long) 1 1 0 963.9 1.0 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.0 17.2 0.1X ================================================================================================ @@ -64,12 +64,12 @@ Decimal Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 10279.1 0.1 1.0X -LongToDecimalUpdater 0 0 0 5133.0 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 20 21 0 51.3 19.5 0.0X +IntegerToDecimalUpdater 0 0 0 8248.0 0.1 1.0X +LongToDecimalUpdater 0 0 0 4103.8 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 24 24 0 44.3 22.6 0.0X ================================================================================================ @@ -77,11 +77,11 @@ FixedLenByteArray Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 19 20 1 55.3 18.1 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 160.2 6.2 2.9X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 9 9 0 123.2 8.1 2.2X +FixedLenByteArrayUpdater (len=16 -> Binary) 22 23 1 46.9 21.3 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 166.4 6.0 3.5X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 125.2 8.0 2.7X From 6e8d43df2fb85aaddf481fc4ba61bca77e5b3f0f Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 15:18:21 +0000 Subject: [PATCH 13/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 21, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk21-results.txt | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt index bf94406bc153a..ed39b7f69c7cf 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk21-results.txt @@ -6,14 +6,14 @@ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17001.6 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3762.8 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1683.1 0.6 0.1X -IntegerUpdater 0 0 0 7747.5 0.1 0.5X -LongUpdater 0 0 0 3856.2 0.3 0.2X -FloatUpdater 0 0 0 7732.1 0.1 0.5X -DoubleUpdater 0 0 0 3857.2 0.3 0.2X -BinaryUpdater 15 15 0 71.2 14.0 0.0X +BooleanUpdater 0 0 0 16982.4 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3744.9 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1675.0 0.6 0.1X +IntegerUpdater 0 0 0 10248.0 0.1 0.6X +LongUpdater 0 0 0 5141.4 0.2 0.3X +FloatUpdater 0 0 0 10286.2 0.1 0.6X +DoubleUpdater 0 0 0 5139.3 0.2 0.3X +BinaryUpdater 15 15 0 71.1 14.1 0.0X ================================================================================================ @@ -24,12 +24,12 @@ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 6164.2 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 6197.0 0.2 1.0X -FloatToDoubleUpdater 0 0 0 2525.7 0.4 0.4X -DateToTimestampNTZUpdater 1 1 0 935.6 1.1 0.2X -LongAsNanosUpdater (TimeType) 1 1 0 1138.0 0.9 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5804.6 0.2 0.9X +IntegerToLongUpdater 0 0 0 6158.1 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 6228.1 0.2 1.0X +FloatToDoubleUpdater 0 0 0 2525.4 0.4 0.4X +DateToTimestampNTZUpdater 1 1 0 932.9 1.1 0.2X +LongAsNanosUpdater (TimeType) 1 1 0 1228.5 0.8 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5861.5 0.2 1.0X ================================================================================================ @@ -40,11 +40,11 @@ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3266.0 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2659.2 0.4 0.8X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1225.1 0.8 0.4X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 796.7 1.3 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 1096.7 0.9 0.3X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3647.5 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2668.9 0.4 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1228.3 0.8 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 797.7 1.3 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 1099.3 0.9 0.3X ================================================================================================ @@ -55,8 +55,8 @@ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5090.3 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 16 17 0 63.8 15.7 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5894.2 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 18 1 60.3 16.6 0.0X ================================================================================================ @@ -67,9 +67,9 @@ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 10030.9 0.1 1.0X -LongToDecimalUpdater 0 0 0 5124.2 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 21 21 0 50.3 19.9 0.0X +IntegerToDecimalUpdater 0 0 0 10291.3 0.1 1.0X +LongToDecimalUpdater 0 0 0 5139.6 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 21 21 0 49.6 20.2 0.0X ================================================================================================ @@ -80,8 +80,8 @@ OpenJDK 64-Bit Server VM 21.0.11+10-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 20 20 0 52.8 18.9 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 160.2 6.2 3.0X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 133.3 7.5 2.5X +FixedLenByteArrayUpdater (len=16 -> Binary) 20 21 2 51.9 19.3 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 160.2 6.2 3.1X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 133.1 7.5 2.6X From 9c7d932247ccbc175551f878d54e4057d39e4d5d Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 15:44:23 +0000 Subject: [PATCH 14/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 25, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk25-results.txt | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt index 7eeffa45d33f8..1c801fe646eb7 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt @@ -6,14 +6,14 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17160.2 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3686.1 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1660.3 0.6 0.1X -IntegerUpdater 0 0 0 10209.8 0.1 0.6X -LongUpdater 0 0 0 5100.9 0.2 0.3X -FloatUpdater 0 0 0 10273.9 0.1 0.6X -DoubleUpdater 0 0 0 5137.7 0.2 0.3X -BinaryUpdater 16 16 0 66.4 15.1 0.0X +BooleanUpdater 0 0 0 17157.7 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3686.6 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1660.2 0.6 0.1X +IntegerUpdater 0 0 0 10261.9 0.1 0.6X +LongUpdater 0 0 0 5113.5 0.2 0.3X +FloatUpdater 0 0 0 10307.5 0.1 0.6X +DoubleUpdater 0 0 0 5149.7 0.2 0.3X +BinaryUpdater 15 15 1 69.9 14.3 0.0X ================================================================================================ @@ -24,12 +24,12 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 6482.1 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 6457.7 0.2 1.0X -FloatToDoubleUpdater 0 0 0 3188.3 0.3 0.5X -DateToTimestampNTZUpdater 1 1 0 883.2 1.1 0.1X -LongAsNanosUpdater (TimeType) 1 1 0 1147.8 0.9 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 6595.3 0.2 1.0X +IntegerToLongUpdater 0 0 0 6341.2 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 6439.1 0.2 1.0X +FloatToDoubleUpdater 0 0 0 2569.5 0.4 0.4X +DateToTimestampNTZUpdater 1 1 0 1286.4 0.8 0.2X +LongAsNanosUpdater (TimeType) 1 1 0 1230.7 0.8 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 6590.8 0.2 1.0X ================================================================================================ @@ -40,11 +40,11 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3637.5 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2677.7 0.4 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1228.4 0.8 0.3X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 719.9 1.4 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 1094.1 0.9 0.3X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3589.0 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2673.3 0.4 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1230.4 0.8 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 717.7 1.4 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 900.9 1.1 0.3X ================================================================================================ @@ -55,8 +55,8 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 6125.5 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 17 0 60.4 16.6 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 6292.1 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 18 0 60.3 16.6 0.0X ================================================================================================ @@ -67,9 +67,9 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 10247.8 0.1 1.0X -LongToDecimalUpdater 0 0 0 5110.4 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 21 21 0 50.8 19.7 0.0X +IntegerToDecimalUpdater 0 0 0 10305.4 0.1 1.0X +LongToDecimalUpdater 0 0 0 5148.4 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 21 21 0 50.5 19.8 0.0X ================================================================================================ @@ -80,8 +80,8 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 7763 64-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 21 22 2 50.4 19.8 1.0X +FixedLenByteArrayUpdater (len=16 -> Binary) 21 22 2 50.5 19.8 1.0X FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 152.6 6.6 3.0X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 127.5 7.8 2.5X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 127.7 7.8 2.5X From 4a17eb3c69c3367a95e57ec9057a01de70b2ccc3 Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 16:38:10 +0000 Subject: [PATCH 15/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 17, Scala 2.13, split 1 of 1) --- .../ParquetVectorUpdaterBenchmark-results.txt | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt index c27d195888be1..58d3ac10aa97f 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-results.txt @@ -3,17 +3,17 @@ Identity Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 14779.9 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3592.8 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1823.8 0.5 0.1X -IntegerUpdater 0 0 0 8268.2 0.1 0.6X -LongUpdater 0 0 0 4118.6 0.2 0.3X -FloatUpdater 0 0 0 8146.6 0.1 0.6X -DoubleUpdater 0 0 0 4103.0 0.2 0.3X -BinaryUpdater 18 18 0 58.8 17.0 0.0X +BooleanUpdater 0 0 0 15918.4 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3983.1 0.3 0.3X +ShortUpdater (INT32 -> Short) 0 1 0 2227.2 0.4 0.1X +IntegerUpdater 0 0 0 8412.7 0.1 0.5X +LongUpdater 0 0 0 5077.8 0.2 0.3X +FloatUpdater 0 0 0 8391.8 0.1 0.5X +DoubleUpdater 0 0 0 5568.9 0.2 0.3X +BinaryUpdater 15 16 0 70.8 14.1 0.0X ================================================================================================ @@ -21,15 +21,15 @@ Type-converting Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 1 1 0 1128.8 0.9 1.0X -IntegerToDoubleUpdater 1 1 0 1366.0 0.7 1.2X -FloatToDoubleUpdater 1 1 0 1283.2 0.8 1.1X -DateToTimestampNTZUpdater 2 2 0 516.9 1.9 0.5X -LongAsNanosUpdater (TimeType) 1 1 0 830.1 1.2 0.7X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 1 1 0 1137.8 0.9 1.0X +IntegerToLongUpdater 1 1 0 1386.0 0.7 1.0X +IntegerToDoubleUpdater 1 1 0 1554.5 0.6 1.1X +FloatToDoubleUpdater 1 1 0 1537.7 0.7 1.1X +DateToTimestampNTZUpdater 2 2 0 596.9 1.7 0.4X +LongAsNanosUpdater (TimeType) 1 1 0 942.2 1.1 0.7X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 1 1 0 1394.2 0.7 1.0X ================================================================================================ @@ -37,14 +37,14 @@ Rebase Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 2181.6 0.5 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 1743.6 0.6 0.8X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 830.8 1.2 0.4X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 3 3 0 384.0 2.6 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 787.2 1.3 0.4X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 2526.8 0.4 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 1995.7 0.5 0.8X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1087.7 0.9 0.4X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 470.9 2.1 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 961.7 1.0 0.4X ================================================================================================ @@ -52,11 +52,11 @@ Unsigned Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 1 1 0 963.9 1.0 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.0 17.2 0.1X +UnsignedIntegerUpdater (UINT32 -> Long) 1 1 0 1174.9 0.9 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 17 0 63.4 15.8 0.1X ================================================================================================ @@ -64,12 +64,12 @@ Decimal Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 8248.0 0.1 1.0X -LongToDecimalUpdater 0 0 0 4103.8 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 24 24 0 44.3 22.6 0.0X +IntegerToDecimalUpdater 0 0 0 10115.2 0.1 1.0X +LongToDecimalUpdater 0 0 0 5563.6 0.2 0.6X +FixedLenByteArrayToDecimalUpdater 20 20 0 53.6 18.6 0.0X ================================================================================================ @@ -77,11 +77,11 @@ FixedLenByteArray Updaters ================================================================================================ OpenJDK 64-Bit Server VM 17.0.19+10-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 22 23 1 46.9 21.3 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 166.4 6.0 3.5X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 125.2 8.0 2.7X +FixedLenByteArrayUpdater (len=16 -> Binary) 18 19 1 57.7 17.3 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 173.7 5.8 3.0X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 133.5 7.5 2.3X From 8e48656cdb1b2cf42624bb95ba7f95be1259356d Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 16:41:55 +0000 Subject: [PATCH 16/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 25, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk25-results.txt | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt index 1c801fe646eb7..b1dfe5b3d63d1 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt @@ -3,17 +3,17 @@ Identity Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17157.7 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3686.6 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1660.2 0.6 0.1X -IntegerUpdater 0 0 0 10261.9 0.1 0.6X -LongUpdater 0 0 0 5113.5 0.2 0.3X -FloatUpdater 0 0 0 10307.5 0.1 0.6X -DoubleUpdater 0 0 0 5149.7 0.2 0.3X -BinaryUpdater 15 15 1 69.9 14.3 0.0X +BooleanUpdater 0 0 0 17066.4 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3482.9 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1519.9 0.7 0.1X +IntegerUpdater 0 0 0 8526.2 0.1 0.5X +LongUpdater 0 0 0 4218.1 0.2 0.2X +FloatUpdater 0 0 0 8477.9 0.1 0.5X +DoubleUpdater 0 0 0 4203.7 0.2 0.2X +BinaryUpdater 17 18 0 60.0 16.7 0.0X ================================================================================================ @@ -21,15 +21,15 @@ Type-converting Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 6341.2 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 6439.1 0.2 1.0X -FloatToDoubleUpdater 0 0 0 2569.5 0.4 0.4X -DateToTimestampNTZUpdater 1 1 0 1286.4 0.8 0.2X -LongAsNanosUpdater (TimeType) 1 1 0 1230.7 0.8 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 6590.8 0.2 1.0X +IntegerToLongUpdater 0 0 0 5475.4 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 5590.3 0.2 1.0X +FloatToDoubleUpdater 0 0 0 2842.4 0.4 0.5X +DateToTimestampNTZUpdater 1 1 0 1118.3 0.9 0.2X +LongAsNanosUpdater (TimeType) 1 1 0 1065.1 0.9 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5293.6 0.2 1.0X ================================================================================================ @@ -37,14 +37,14 @@ Rebase Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3589.0 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2673.3 0.4 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1230.4 0.8 0.3X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 717.7 1.4 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 900.9 1.1 0.3X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3146.7 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2230.1 0.4 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1058.8 0.9 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 634.4 1.6 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 974.5 1.0 0.3X ================================================================================================ @@ -52,11 +52,11 @@ Unsigned Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 6292.1 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 18 0 60.3 16.6 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5462.6 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.0 17.2 0.0X ================================================================================================ @@ -64,12 +64,12 @@ Decimal Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 10305.4 0.1 1.0X -LongToDecimalUpdater 0 0 0 5148.4 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 21 21 0 50.5 19.8 0.0X +IntegerToDecimalUpdater 0 0 0 8542.2 0.1 1.0X +LongToDecimalUpdater 0 0 0 4200.5 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 24 25 1 43.1 23.2 0.0X ================================================================================================ @@ -77,11 +77,11 @@ FixedLenByteArray Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 7763 64-Core Processor +AMD EPYC 9V74 80-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 21 22 2 50.5 19.8 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 152.6 6.6 3.0X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 127.7 7.8 2.5X +FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 2 46.2 21.7 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 1 157.8 6.3 3.4X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 1 126.7 7.9 2.7X From 8c70c2a78f5ede97fe5b74f42a5d869e032f355d Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 17:40:49 +0000 Subject: [PATCH 17/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 25, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk25-results.txt | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt index b1dfe5b3d63d1..7d2132eb0d626 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt @@ -6,14 +6,14 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17066.4 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3482.9 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1519.9 0.7 0.1X -IntegerUpdater 0 0 0 8526.2 0.1 0.5X -LongUpdater 0 0 0 4218.1 0.2 0.2X -FloatUpdater 0 0 0 8477.9 0.1 0.5X -DoubleUpdater 0 0 0 4203.7 0.2 0.2X -BinaryUpdater 17 18 0 60.0 16.7 0.0X +BooleanUpdater 0 0 0 17030.4 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3477.9 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1516.8 0.7 0.1X +IntegerUpdater 0 0 0 8445.8 0.1 0.5X +LongUpdater 0 0 0 4161.8 0.2 0.2X +FloatUpdater 0 0 0 8361.5 0.1 0.5X +DoubleUpdater 0 0 0 4131.4 0.2 0.2X +BinaryUpdater 17 18 0 60.9 16.4 0.0X ================================================================================================ @@ -24,12 +24,12 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 5475.4 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 5590.3 0.2 1.0X -FloatToDoubleUpdater 0 0 0 2842.4 0.4 0.5X -DateToTimestampNTZUpdater 1 1 0 1118.3 0.9 0.2X -LongAsNanosUpdater (TimeType) 1 1 0 1065.1 0.9 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5293.6 0.2 1.0X +IntegerToLongUpdater 0 0 0 5432.0 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 5589.5 0.2 1.0X +FloatToDoubleUpdater 0 0 0 2843.9 0.4 0.5X +DateToTimestampNTZUpdater 1 1 0 1105.3 0.9 0.2X +LongAsNanosUpdater (TimeType) 1 1 0 1051.0 1.0 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5278.4 0.2 1.0X ================================================================================================ @@ -40,11 +40,11 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3146.7 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2230.1 0.4 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1058.8 0.9 0.3X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 634.4 1.6 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 974.5 1.0 0.3X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3151.4 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 1 0 2191.0 0.5 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1055.8 0.9 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 632.6 1.6 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 970.3 1.0 0.3X ================================================================================================ @@ -55,8 +55,8 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5462.6 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.0 17.2 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5474.3 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.4 17.1 0.0X ================================================================================================ @@ -67,9 +67,9 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 8542.2 0.1 1.0X -LongToDecimalUpdater 0 0 0 4200.5 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 24 25 1 43.1 23.2 0.0X +IntegerToDecimalUpdater 0 0 0 8380.2 0.1 1.0X +LongToDecimalUpdater 0 0 0 4160.6 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 24 24 0 43.2 23.1 0.0X ================================================================================================ @@ -80,8 +80,8 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 2 46.2 21.7 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 1 157.8 6.3 3.4X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 1 126.7 7.9 2.7X +FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 1 46.2 21.6 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 164.7 6.1 3.6X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 124.7 8.0 2.7X From 15c970386e97aa7508df5c8d857b314ae480d879 Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 18:11:44 +0000 Subject: [PATCH 18/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 25, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk25-results.txt | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt index 7d2132eb0d626..96ba7041a3624 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt @@ -6,14 +6,14 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17030.4 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3477.9 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1516.8 0.7 0.1X -IntegerUpdater 0 0 0 8445.8 0.1 0.5X -LongUpdater 0 0 0 4161.8 0.2 0.2X -FloatUpdater 0 0 0 8361.5 0.1 0.5X -DoubleUpdater 0 0 0 4131.4 0.2 0.2X -BinaryUpdater 17 18 0 60.9 16.4 0.0X +BooleanUpdater 0 0 0 17008.3 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3709.8 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1518.4 0.7 0.1X +IntegerUpdater 0 0 0 8489.7 0.1 0.5X +LongUpdater 0 0 0 4219.0 0.2 0.2X +FloatUpdater 0 0 0 8467.7 0.1 0.5X +DoubleUpdater 0 0 0 4211.2 0.2 0.2X +BinaryUpdater 17 17 0 62.4 16.0 0.0X ================================================================================================ @@ -24,12 +24,12 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 5432.0 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 5589.5 0.2 1.0X -FloatToDoubleUpdater 0 0 0 2843.9 0.4 0.5X -DateToTimestampNTZUpdater 1 1 0 1105.3 0.9 0.2X -LongAsNanosUpdater (TimeType) 1 1 0 1051.0 1.0 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5278.4 0.2 1.0X +IntegerToLongUpdater 0 0 0 5581.2 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 5528.1 0.2 1.0X +FloatToDoubleUpdater 0 0 0 2380.5 0.4 0.4X +DateToTimestampNTZUpdater 1 1 0 1120.9 0.9 0.2X +LongAsNanosUpdater (TimeType) 1 1 0 1057.8 0.9 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5368.3 0.2 1.0X ================================================================================================ @@ -40,11 +40,11 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3151.4 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 1 0 2191.0 0.5 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1055.8 0.9 0.3X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 632.6 1.6 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 970.3 1.0 0.3X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3155.9 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2236.2 0.4 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1057.5 0.9 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 636.3 1.6 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 785.5 1.3 0.2X ================================================================================================ @@ -55,8 +55,8 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5474.3 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.4 17.1 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5543.7 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 19 2 58.8 17.0 0.0X ================================================================================================ @@ -67,9 +67,9 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 8380.2 0.1 1.0X -LongToDecimalUpdater 0 0 0 4160.6 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 24 24 0 43.2 23.1 0.0X +IntegerToDecimalUpdater 0 0 0 8455.4 0.1 1.0X +LongToDecimalUpdater 0 0 0 4198.4 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 24 25 0 43.0 23.2 0.0X ================================================================================================ @@ -80,8 +80,8 @@ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure AMD EPYC 9V74 80-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 1 46.2 21.6 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 164.7 6.1 3.6X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 124.7 8.0 2.7X +FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 1 46.3 21.6 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 163.9 6.1 3.5X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 126.9 7.9 2.7X From dd406c6535afdfb34b2b13cc3699c70730bfd517 Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 18:40:33 +0000 Subject: [PATCH 19/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 25, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk25-results.txt | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt index 96ba7041a3624..a492817afd767 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt @@ -3,17 +3,17 @@ Identity Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17008.3 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3709.8 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1518.4 0.7 0.1X -IntegerUpdater 0 0 0 8489.7 0.1 0.5X -LongUpdater 0 0 0 4219.0 0.2 0.2X -FloatUpdater 0 0 0 8467.7 0.1 0.5X -DoubleUpdater 0 0 0 4211.2 0.2 0.2X -BinaryUpdater 17 17 0 62.4 16.0 0.0X +BooleanUpdater 0 0 0 17449.8 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 4400.8 0.2 0.3X +ShortUpdater (INT32 -> Short) 0 0 0 2151.1 0.5 0.1X +IntegerUpdater 0 0 0 3816.2 0.3 0.2X +LongUpdater 1 1 0 1906.0 0.5 0.1X +FloatUpdater 0 0 0 3826.2 0.3 0.2X +DoubleUpdater 1 1 0 1907.4 0.5 0.1X +BinaryUpdater 11 12 0 91.2 11.0 0.0X ================================================================================================ @@ -21,15 +21,15 @@ Type-converting Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 5581.2 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 5528.1 0.2 1.0X -FloatToDoubleUpdater 0 0 0 2380.5 0.4 0.4X -DateToTimestampNTZUpdater 1 1 0 1120.9 0.9 0.2X -LongAsNanosUpdater (TimeType) 1 1 0 1057.8 0.9 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5368.3 0.2 1.0X +IntegerToLongUpdater 0 0 0 2256.0 0.4 1.0X +IntegerToDoubleUpdater 0 0 0 2254.7 0.4 1.0X +FloatToDoubleUpdater 0 0 0 2152.2 0.5 1.0X +DateToTimestampNTZUpdater 1 1 0 969.0 1.0 0.4X +LongAsNanosUpdater (TimeType) 1 1 0 853.6 1.2 0.4X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 2277.4 0.4 1.0X ================================================================================================ @@ -37,14 +37,14 @@ Rebase Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3155.9 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2236.2 0.4 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1057.5 0.9 0.3X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 636.3 1.6 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 785.5 1.3 0.2X +IntegerWithRebaseUpdater (DATE legacy) 1 1 0 1689.4 0.6 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 1095.6 0.9 0.6X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 852.7 1.2 0.5X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 758.0 1.3 0.4X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 812.4 1.2 0.5X ================================================================================================ @@ -52,11 +52,11 @@ Unsigned Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5543.7 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 19 2 58.8 17.0 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 2256.1 0.4 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 16 16 0 65.7 15.2 0.0X ================================================================================================ @@ -64,12 +64,12 @@ Decimal Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 8455.4 0.1 1.0X -LongToDecimalUpdater 0 0 0 4198.4 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 24 25 0 43.0 23.2 0.0X +IntegerToDecimalUpdater 0 0 0 3805.6 0.3 1.0X +LongToDecimalUpdater 1 1 0 1900.7 0.5 0.5X +FixedLenByteArrayToDecimalUpdater 17 18 0 60.5 16.5 0.0X ================================================================================================ @@ -77,11 +77,11 @@ FixedLenByteArray Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 1 46.3 21.6 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 6 0 163.9 6.1 3.5X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 126.9 7.9 2.7X +FixedLenByteArrayUpdater (len=16 -> Binary) 16 17 1 63.7 15.7 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 7 0 164.7 6.1 2.6X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 132.4 7.6 2.1X From b7e2f118288fb0835da332b65c4eb840673e1295 Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 19:36:29 +0000 Subject: [PATCH 20/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 25, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk25-results.txt | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt index a492817afd767..b63b1ecb02d0a 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt @@ -3,17 +3,17 @@ Identity Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz +AMD EPYC 9V74 80-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17449.8 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 4400.8 0.2 0.3X -ShortUpdater (INT32 -> Short) 0 0 0 2151.1 0.5 0.1X -IntegerUpdater 0 0 0 3816.2 0.3 0.2X -LongUpdater 1 1 0 1906.0 0.5 0.1X -FloatUpdater 0 0 0 3826.2 0.3 0.2X -DoubleUpdater 1 1 0 1907.4 0.5 0.1X -BinaryUpdater 11 12 0 91.2 11.0 0.0X +BooleanUpdater 0 0 0 17016.5 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3475.3 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1517.2 0.7 0.1X +IntegerUpdater 0 0 0 8192.7 0.1 0.5X +LongUpdater 0 0 0 4091.7 0.2 0.2X +FloatUpdater 0 0 0 8311.7 0.1 0.5X +DoubleUpdater 0 0 0 4120.2 0.2 0.2X +BinaryUpdater 18 18 0 59.8 16.7 0.0X ================================================================================================ @@ -21,15 +21,15 @@ Type-converting Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz +AMD EPYC 9V74 80-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 2256.0 0.4 1.0X -IntegerToDoubleUpdater 0 0 0 2254.7 0.4 1.0X -FloatToDoubleUpdater 0 0 0 2152.2 0.5 1.0X -DateToTimestampNTZUpdater 1 1 0 969.0 1.0 0.4X -LongAsNanosUpdater (TimeType) 1 1 0 853.6 1.2 0.4X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 2277.4 0.4 1.0X +IntegerToLongUpdater 0 0 0 5488.4 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 5558.9 0.2 1.0X +FloatToDoubleUpdater 0 0 0 2840.0 0.4 0.5X +DateToTimestampNTZUpdater 1 1 0 1114.1 0.9 0.2X +LongAsNanosUpdater (TimeType) 1 1 0 1051.0 1.0 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5367.4 0.2 1.0X ================================================================================================ @@ -37,14 +37,14 @@ Rebase Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz +AMD EPYC 9V74 80-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 1 1 0 1689.4 0.6 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 1 1 0 1095.6 0.9 0.6X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 852.7 1.2 0.5X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 758.0 1.3 0.4X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 812.4 1.2 0.5X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3110.0 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2211.4 0.5 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1049.5 1.0 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 634.5 1.6 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 967.6 1.0 0.3X ================================================================================================ @@ -52,11 +52,11 @@ Unsigned Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz +AMD EPYC 9V74 80-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 2256.1 0.4 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 16 16 0 65.7 15.2 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5465.8 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.4 17.1 0.0X ================================================================================================ @@ -64,12 +64,12 @@ Decimal Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz +AMD EPYC 9V74 80-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 3805.6 0.3 1.0X -LongToDecimalUpdater 1 1 0 1900.7 0.5 0.5X -FixedLenByteArrayToDecimalUpdater 17 18 0 60.5 16.5 0.0X +IntegerToDecimalUpdater 0 0 0 8191.4 0.1 1.0X +LongToDecimalUpdater 0 0 0 4085.8 0.2 0.5X +FixedLenByteArrayToDecimalUpdater 24 24 0 43.3 23.1 0.0X ================================================================================================ @@ -77,11 +77,11 @@ FixedLenByteArray Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz +AMD EPYC 9V74 80-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 16 17 1 63.7 15.7 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 7 0 164.7 6.1 2.6X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 132.4 7.6 2.1X +FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 1 46.2 21.7 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 7 0 163.4 6.1 3.5X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 127.2 7.9 2.8X From 88cfb7fd2ff33bf5dbbe8cc39b95f7713b07f96f Mon Sep 17 00:00:00 2001 From: iemejia Date: Fri, 12 Jun 2026 20:28:26 +0000 Subject: [PATCH 21/21] Benchmark results for *ParquetVectorUpdaterBenchmark (JDK 25, Scala 2.13, split 1 of 1) --- ...etVectorUpdaterBenchmark-jdk25-results.txt | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt index b63b1ecb02d0a..16ff18ac2e9d1 100644 --- a/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt +++ b/sql/core/benchmarks/ParquetVectorUpdaterBenchmark-jdk25-results.txt @@ -3,17 +3,17 @@ Identity Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Identity Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -BooleanUpdater 0 0 0 17016.5 0.1 1.0X -ByteUpdater (INT32 -> Byte) 0 0 0 3475.3 0.3 0.2X -ShortUpdater (INT32 -> Short) 1 1 0 1517.2 0.7 0.1X -IntegerUpdater 0 0 0 8192.7 0.1 0.5X -LongUpdater 0 0 0 4091.7 0.2 0.2X -FloatUpdater 0 0 0 8311.7 0.1 0.5X -DoubleUpdater 0 0 0 4120.2 0.2 0.2X -BinaryUpdater 18 18 0 59.8 16.7 0.0X +BooleanUpdater 0 0 0 17151.8 0.1 1.0X +ByteUpdater (INT32 -> Byte) 0 0 0 3702.7 0.3 0.2X +ShortUpdater (INT32 -> Short) 1 1 0 1662.6 0.6 0.1X +IntegerUpdater 0 0 0 7747.5 0.1 0.5X +LongUpdater 0 0 0 5099.0 0.2 0.3X +FloatUpdater 0 0 0 7751.0 0.1 0.5X +DoubleUpdater 0 0 0 3795.5 0.3 0.2X +BinaryUpdater 16 16 0 66.4 15.1 0.0X ================================================================================================ @@ -21,15 +21,15 @@ Type-converting Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Type-converting Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- -IntegerToLongUpdater 0 0 0 5488.4 0.2 1.0X -IntegerToDoubleUpdater 0 0 0 5558.9 0.2 1.0X -FloatToDoubleUpdater 0 0 0 2840.0 0.4 0.5X -DateToTimestampNTZUpdater 1 1 0 1114.1 0.9 0.2X -LongAsNanosUpdater (TimeType) 1 1 0 1051.0 1.0 0.2X -DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 5367.4 0.2 1.0X +IntegerToLongUpdater 0 0 0 4994.1 0.2 1.0X +IntegerToDoubleUpdater 0 0 0 6589.1 0.2 1.3X +FloatToDoubleUpdater 0 0 0 3199.0 0.3 0.6X +DateToTimestampNTZUpdater 1 1 0 1213.3 0.8 0.2X +LongAsNanosUpdater (TimeType) 1 1 0 1115.4 0.9 0.2X +DowncastLongUpdater (INT64 -> Decimal(9,2)) 0 0 0 4930.3 0.2 1.0X ================================================================================================ @@ -37,14 +37,14 @@ Rebase Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Rebase Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------------- -IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3110.0 0.3 1.0X -LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2211.4 0.5 0.7X -LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1049.5 1.0 0.3X -DateToTimestampNTZWithRebaseUpdater (DATE legacy) 2 2 0 634.5 1.6 0.2X -LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 967.6 1.0 0.3X +IntegerWithRebaseUpdater (DATE legacy) 0 0 0 3665.1 0.3 1.0X +LongWithRebaseUpdater (TIMESTAMP_MICROS legacy) 0 0 0 2667.6 0.4 0.7X +LongAsMicrosUpdater (TIMESTAMP_MILLIS) 1 1 0 1228.5 0.8 0.3X +DateToTimestampNTZWithRebaseUpdater (DATE legacy) 1 1 0 719.8 1.4 0.2X +LongAsMicrosRebaseUpdater (TIMESTAMP_MILLIS legacy) 1 1 0 1092.7 0.9 0.3X ================================================================================================ @@ -52,11 +52,11 @@ Unsigned Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Unsigned Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- -UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 5465.8 0.2 1.0X -UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 18 18 0 58.4 17.1 0.0X +UnsignedIntegerUpdater (UINT32 -> Long) 0 0 0 4931.9 0.2 1.0X +UnsignedLongUpdater (UINT64 -> Decimal(20,0)) 17 17 0 60.4 16.6 0.0X ================================================================================================ @@ -64,12 +64,12 @@ Decimal Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor Decimal Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ -IntegerToDecimalUpdater 0 0 0 8191.4 0.1 1.0X -LongToDecimalUpdater 0 0 0 4085.8 0.2 0.5X -FixedLenByteArrayToDecimalUpdater 24 24 0 43.3 23.1 0.0X +IntegerToDecimalUpdater 0 0 0 7752.7 0.1 1.0X +LongToDecimalUpdater 0 0 0 5144.8 0.2 0.7X +FixedLenByteArrayToDecimalUpdater 21 21 3 50.7 19.7 0.0X ================================================================================================ @@ -77,11 +77,11 @@ FixedLenByteArray Updaters ================================================================================================ OpenJDK 64-Bit Server VM 25.0.3+9-LTS on Linux 6.17.0-1018-azure -AMD EPYC 9V74 80-Core Processor +AMD EPYC 7763 64-Core Processor FixedLenByteArray Updaters: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------------------- -FixedLenByteArrayUpdater (len=16 -> Binary) 23 23 1 46.2 21.7 1.0X -FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 6 7 0 163.4 6.1 3.5X -FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 127.2 7.9 2.8X +FixedLenByteArrayUpdater (len=16 -> Binary) 21 21 1 50.2 19.9 1.0X +FixedLenByteArrayAsIntUpdater (len=4 -> Decimal(9,2)) 7 7 0 152.6 6.6 3.0X +FixedLenByteArrayAsLongUpdater (len=8 -> Decimal(18,4)) 8 8 0 127.6 7.8 2.5X