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

   ## What changed
   
   - Sum the lengths of the positional-delete Arrow chunks before creating the 
set.
   - Use that total as the initial map capacity.
   - Keep the existing validation and insertion logic unchanged.
   - Keep nil chunks safe and add coverage for duplicates across chunks.
   - Add a focused benchmark for 1K, 100K, and 1M positions.
   
   ## Benchmark
   
   Ran on an Apple M1 Pro (`darwin/arm64`) with Go `go1.26.3`.
   
   ```text
   go test ./table -run '^$' -bench '^BenchmarkCollectPosDeletePositions$' 
-benchmem -count=5 -benchtime=1s
   ```
   
   Median of 5 runs:
   
   | Input | ns/op before | ns/op after | B/op before -> after | allocs/op 
before -> after |
   | --- | ---: | ---: | ---: | ---: |
   | 1K positions, 1 chunk | 39215 | 11898 | 74456 -> 36992 | 22 -> 6 |
   | 100K positions, 4 chunks | 3427952 | 1500532 | 4729533 -> 2364594 | 532 -> 
258 |
   | 1M positions, 16 chunks | 58026680 | 45005787 | 75615856 -> 37832769 | 
8210 -> 4098 |
   
   ## Checks
   
   - `go test ./...`
   - `go vet ./...`
   - `go test -race ./table`
   


-- 
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