Skip to content

Commit

Permalink
Parallel synchronization (#78)
Browse files Browse the repository at this point in the history
- Sync protocol is now driven by the client. This allows syncing in parallel with multiple nodes and optimizing throughput.
- Adds OpenTelemetry instrumentation (optional)
- Many more metrics
- Uses a patches quinn that does not pre-allocate streams, saving hundreds of MBs of memory
- Fixes deadlocks when accessing the in-memory bookkeeping
- Batches "cleared" versions inserts to get at actual "current" versions faster
- Reduced max foca packet size. TODO: This should be configurable in the future.
- Fix connection pool locking madness
  • Loading branch information
jeromegn authored Oct 19, 2023
1 parent 90f3b9b commit 622c343
Show file tree
Hide file tree
Showing 25 changed files with 2,736 additions and 963 deletions.
23 changes: 11 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

name: CI
env:
RUSTFLAGS: -D warnings
RUSTFLAGS: -D warnings --cfg tokio_unstable
CARGO_TERM_COLOR: always

jobs:
Expand All @@ -24,24 +24,23 @@ jobs:

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v3

- uses: rui314/setup-mold@v1
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.target }}
steps:
- uses: actions/checkout@v4

- name: Install Rust specified toolchain
run: rustup show

- name: Install cargo-nextest
uses: taiki-e/install-action@v2
with:
tool: cargo-nextest

- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Run sccache-cache
uses: mozilla-actions/[email protected]

- name: Test with latest nextest release
run: cargo nextest run --profile ci --workspace --target ${{ matrix.target }}
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- v[0-9]+.*

env:
RUSTFLAGS: -D warnings
RUSTFLAGS: -D warnings --cfg tokio_unstable
CARGO_TERM_COLOR: always

jobs:
Expand All @@ -34,6 +34,9 @@ jobs:
- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
runs-on: ${{ matrix.os }}
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
steps:
- uses: actions/checkout@v3

Expand All @@ -44,10 +47,8 @@ jobs:
target: ${{ matrix.target }}
if: startsWith(matrix.os, 'ubuntu')

- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
key: ${{ matrix.target }}
- name: Run sccache-cache
uses: mozilla-actions/[email protected]

- uses: taiki-e/upload-rust-binary-action@v1
with:
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## Unreleased

- Parallel synchronization w/ many deadlock and bug fixes ([#78](../../pull/78))
- Upgraded to cr-sqlite 0.16.0 (unreleased) ([#75](../../pull/75))
- Rewrite compaction logic to be more correct and efficient ([#74](../../pull/74))
- `corrosion consul sync` will now bundle services and checks in a single transaction (changeset) ([#73](../../pull/73))
Expand Down
Loading

0 comments on commit 622c343

Please sign in to comment.