Skip to content

Commit

Permalink
pageserver: lift decoding and interpreting of wal into wal_decoder (#…
Browse files Browse the repository at this point in the history
…9524)

## Problem

Decoding and ingestion are still coupled in `pageserver::WalIngest`.

## Summary of changes

A new type is added to `wal_decoder::models`, InterpretedWalRecord. This
type contains everything that the pageserver requires in order to ingest
a WAL record. The highlights are the `metadata_record` which is an
optional special record type to be handled and `blocks` which stores
key, value pairs to be persisted to storage.

This type is produced by
`wal_decoder::models::InterpretedWalRecord::from_bytes` from a raw PG
wal record.

The rest of this commit separates decoding and interpretation of the PG
WAL record from its application in `WalIngest::ingest_record`.

Related: #9335
Epic: #9329
  • Loading branch information
VladLazar authored Oct 31, 2024
1 parent 65b6939 commit 411c3aa
Show file tree
Hide file tree
Showing 5 changed files with 1,170 additions and 1,070 deletions.
Loading

1 comment on commit 411c3aa

@github-actions
Copy link

Choose a reason for hiding this comment

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

5416 tests run: 5184 passed, 0 failed, 232 skipped (full report)


Code coverage* (full report)

  • functions: 31.5% (7768 of 24686 functions)
  • lines: 49.0% (61023 of 124649 lines)

* collected from Rust tests only


The comment gets automatically updated with the latest test results
411c3aa at 2024-10-31T12:11:36.444Z :recycle:

Please sign in to comment.