Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@fgrosse
Copy link
Owner

@fgrosse fgrosse commented Mar 14, 2023

This pull request improves performance by enabling callers to skip decoding WAL entries if they only want to seek through the WAL up to a specific offset. The changeset contains both new benchmarks as well as refactoring of the package structure to introduce a new waltest package and a folder for testdata which is used in benchmarks.

fgrosse added 8 commits March 13, 2023 14:13
Not having to decode the WAL entries has a huge impact on performance
when scanning through WAL segments:

  $ benchcmp benchmark_old.txt benchmark_new.txt
  benchcmp is deprecated in favor of benchstat: https://pkg.go.dev/golang.org/x/perf/cmd/benchstat
  benchmark                    old ns/op     new ns/op     delta
  BenchmarkSegmentReader-8     899279        215627        -76.02%

  benchmark                    old allocs     new allocs     delta
  BenchmarkSegmentReader-8     12009          5009           -58.29%

  benchmark                    old bytes     new bytes     delta
  BenchmarkSegmentReader-8     148851        84836         -43.01%
@fgrosse fgrosse linked an issue Mar 14, 2023 that may be closed by this pull request
@fgrosse fgrosse force-pushed the segment-reader-next branch 3 times, most recently from e3b1b46 to 6c6265a Compare March 14, 2023 13:02
@fgrosse fgrosse force-pushed the segment-reader-next branch from 6c6265a to 22010e5 Compare March 14, 2023 13:03
Copy link
Owner Author

@fgrosse fgrosse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@fgrosse fgrosse merged commit 9fef279 into main Mar 14, 2023
@fgrosse fgrosse deleted the segment-reader-next branch March 14, 2023 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Return offset from SegmentReader.Next()

2 participants