fallintoplace opened a new pull request, #2119:
URL: https://github.com/apache/iceberg-go/pull/2119

   ## What
   - Remove unused partition metadata allocations in the REST scan decoder.
   
   ## Why
   - `NewDataFileBuilder` ignores fixed-size metadata.
   - Primitive and null partition values do not need logical-type metadata.
   
   ## Implementation
   - Pass `nil` for fixed sizes and create the logical-type map only when 
needed.
   - Keep partition values and logical types for data and delete files.
   - Add a primitive partition benchmark and coverage for null, fixed, date, 
decimal, UUID and unpartitioned values.
   
   **Benchmarks:** 1,024 data tasks per operation. Mixed partitions use 
integer/date/fixed; primitive partitions use integer/string/fixed.
   
   | Partitions | ns/op, base → head | B/op, base → head | allocs/op, base → 
head |
   | --- | ---: | ---: | ---: |
   | Mixed | 4,278,023 → 4,173,623 | 5,161,315 → 5,112,099 | 37,894 → 36,870 |
   | Primitive | 4,030,529 → 3,434,114 | 4,768,080 → 4,620,560 | 35,846 → 
32,774 |
   
   **1,024 fewer allocations** for mixed partitions; **3,072 fewer** for 
primitive partitions. Times varied between samples; allocation counts were 
stable.
   
   Go 1.26.3, darwin/arm64, Apple M1 Pro. Median of 7 samples, 1s each, CPU=1. 
Base `fa5309b3624d5798bde69722b279366bb7f39846`, head 
`f37470c6e5996fa40274154d272eaaa67f7a0f0e`. The same benchmark file was used on 
both revisions.
   
   ```sh
   go test ./catalog/rest -run '^$' -bench 
'^(BenchmarkDecodeScanTasks|BenchmarkDecodeScanTasksPrimitivePartitions)$/^1024_tasks$'
 -benchmem -benchtime=1s -count=7 -cpu=1
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to