fallintoplace opened a new pull request, #1809: URL: https://github.com/apache/iceberg-go/pull/1809
## What - Reuse the footer payload from the initial 8 KiB tail read when the whole footer fits. - Keep the existing `io.SectionReader` fallback for larger footers. - Add read-count coverage for both paths. ## Why `readFooter` already reads the tail to avoid extra object-store round trips. Small footers were still decoded from a section reader backed by the underlying `ReaderAt`, so the payload was read again. ## Performance With a small footer and a simulated 5 ms delay for every range read: - Before: 17.8 ms/op - After: 12.2 ms/op - About 1.5x faster This removes one redundant range read from the small-footer path. The benchmark used 5 runs of 20 iterations on an Apple M1 Pro. The exact numbers will vary with object-store latency. ## Tests - `go test ./puffin` - `go test -race ./puffin` - `go test ./...` -- 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]
