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

   ## What
   
   - **Cache decoded manifest lists per table** and reuse them across fresh 
scans.
   - **Share concurrent first reads** so only one manifest-list read runs for a 
snapshot.
   - **Keep data and delete manifest groups** ready for planning paths that 
need one type.
   - **Reset the cache on Refresh** so a new metadata snapshot never reuses 
stale descriptors.
   - Apply the cache to local scans, incremental append scans, table 
inspection, and AllManifests.
   
   ## Benchmark
   
   Apple M1 Pro, 1 manifest, 10 repeated scans per benchmark iteration:
   
   - **Manifest-list opens:** 10 → 1
   - **Time:** 4.26 ms → 2.36 ms
   - **Memory:** 4.74 MB → 2.78 MB
   - **Allocations:** 37,048 → 23,519
   
   With 10,000 manifests, manifest-list opens still drop from 10 to 1. Total 
planning time stays close because opening the 10,000 manifest files dominates 
that workload.
   
   ## Checks
   
   - go test ./table/... -count=1
   - go test -race ./table/... -count=1
   - go test ./... -run ^$ -count=1
   - go vet ./...
   - golangci-lint run --timeout=10m
   
   🔥


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