mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-07 05:22:56 +00:00
## Problem Currently, we call `InterpretedWalRecord::from_bytes_filtered` from each shard. To serve multiple shards at the same time, the API needs to allow for enquiring about multiple shards. ## Summary of changes This commit tweaks it a pretty brute force way. Naively, we could just generate the shard for a key, but pre and post split shards may be subscribed at the same time, so doing it efficiently is more complex.
35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
## WAL Decoding and Interpretation Benchmarks
|
|
|
|
Note that these benchmarks pull WAL from a public bucket in S3
|
|
as a preparation step. Hence, you need a way to auth with AWS.
|
|
You can achieve this by copying the `~/.aws/config` file from
|
|
the AWS SSO notion page and exporting `AWS_PROFILE=dev` when invoking
|
|
the benchmarks.
|
|
|
|
To run benchmarks:
|
|
|
|
```sh
|
|
aws sso login --profile dev
|
|
|
|
# All benchmarks.
|
|
AWS_PROFILE=dev cargo bench --package wal_decoder
|
|
|
|
# Specific file.
|
|
AWS_PROFILE=dev cargo bench --package wal_decoder --bench bench_interpret_wal
|
|
|
|
# Specific benchmark.
|
|
AWS_PROFILE=dev cargo bench --package wal_decoder --bench bench_interpret_wal unsharded
|
|
|
|
# List available benchmarks.
|
|
cargo bench --package wal_decoder --benches -- --list
|
|
|
|
# Generate flamegraph profiles using pprof-rs, profiling for 10 seconds.
|
|
# Output in target/criterion/*/profile/flamegraph.svg.
|
|
AWS_PROFILE=dev cargo bench --package wal_decoder --bench bench_interpret_wal unsharded -- --profile-time 10
|
|
```
|
|
|
|
Additional charts and statistics are available in `target/criterion/report/index.html`.
|
|
|
|
Benchmarks are automatically compared against the previous run. To compare against other runs, see
|
|
`--baseline` and `--save-baseline`.
|