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

   **What**
   - Use a typed string map for binary partition keys.
   
   **Why**
   - Avoid interface-key hashing in repeated binary partition lookups.
   
   **Implementation**
   - Lazily create the binary map and copy keys on insert. Keep generic keys 
for other types.
   
   **Benchmark**
   - Go 1.26.3, Apple M1 Pro, `-cpu=1`; 7 alternating samples. Base `4fdbf65e`, 
head `0180d21f`.
   - 8 binary fields, 1,024 partitions: 201.9 → 129.4 ns/op (-35.9%); 0 B/op 
and 0 allocs/op both.
   - 100K files, 100 partitions, 32 binary fields: 190.5 → 151.1 ms/op (-20.7%, 
p=0.007); 2.756 → 2.727 MiB/op; 33.81K → 30.51K allocs/op.
   - Int32 control, 100K files and 8 fields: 24.80 → 25.25 ms/op (no 
significant change).
   - Lookup command per sample: `go test ./table -run '^$' -bench 
'^BenchmarkInspectPartitionBinaryLookup$' -benchmem -benchtime=1s -count=1 
-cpu=1`. The same harness was used on base and head.
   - Aggregation command per sample: `go test ./table -run '^$' -bench 
'^BenchmarkInspectPartitionAggregation/(binary|int32)$' -benchmem 
-benchtime=200ms -count=1 -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