Skip to content

Optimizations - #121

Draft
serprex wants to merge 2 commits into
mainfrom
optimize
Draft

Optimizations#121
serprex wants to merge 2 commits into
mainfrom
optimize

Conversation

@serprex

@serprex serprex commented Sep 3, 2026

Copy link
Copy Markdown
Member
  1. add support for pgext to have multiple background workers for parallel oracle requests
  2. resolver pool between decoder pools & inserter pools to improve concurrency
  3. remove bootstrap mutex, tar entries processed in parallel
  4. skip decoding pages in bootstrap for unused tables
  5. threads track local counters before adding to atomics, reducing contention
  6. reduce copies by using slabs, batch tuples to mpsc to reduce contention
  7. OracleCell::Literal can be resolved without oracle (TODO: investigate if this can be simplified)

Comment thread src/bin/stream.rs
(shipped, outcome)
};

let ld = |a: &std::sync::atomic::AtomicU64| a.load(Ordering::Relaxed);

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

inline?

Comment thread src/bin/stream.rs
/// the decode pool's width caps oracle throughput at that many
/// concurrent round trips whatever the daemon does.
#[arg(long, default_value_t = 1)]
bridge_workers: usize,

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

seems like this could just match inserter pool size or something, see if this really needs a knob

1. add support for pgext to have multiple background workers for parallel oracle requests
2. resolver pool between decoder pools & inserter pools to improve concurrency
3. remove bootstrap mutex, tar entries processed in parallel
4. skip decoding pages in bootstrap for unused tables
5. threads track local counters before adding to atomics, reducing contention
6. reduce copies by using slabs, batch tuples to mpsc to reduce contention
7. OracleCell::Literal can be resolved without oracle (TODO: investigate if this can be simplified)
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.

1 participant