Skip to content

refactor(server): make process wiring explicit (#1243) - #1456

Merged
jlon merged 1 commit into
mainfrom
feat/server-process-wiring
Aug 2, 2026
Merged

refactor(server): make process wiring explicit (#1243)#1456
jlon merged 1 commit into
mainfrom
feat/server-process-wiring

Conversation

@lzjqsdd

@lzjqsdd lzjqsdd commented Aug 1, 2026

Copy link
Copy Markdown
Member

Summary

Make curvine-server wire the process crates and server-side adapters explicitly while keeping the existing binary entry and service selection behavior unchanged.

Issue Describe / Design

Related to #1243

This is a wiring-only refactor. The server binary now imports the master, worker, and transfer process crates directly, and the server crate declares/re-exports the metadata and local storage adapter crates it assembles. Existing compatibility re-exports from curvine-common are intentionally left for the later facade cleanup so this PR stays small and reviewable.

Changes

Module / File Change Impact on existing behavior
curvine-server/Cargo.toml Added explicit curvine-raft, curvine-rocksdb, and curvine-storage-local dependencies; mapped SPDK/RDMA features through the local storage adapter. None
curvine-server/src/bin/curvine-server.rs Import Master, Worker, and TransferServer directly from their process crates. None
curvine-server/src/lib.rs Expose explicit server wiring modules for data transfer, metadata adapters, and local storage. None
curvine-server/src/test and curvine-server/tests Point raft/journal test references directly at curvine-raft instead of the curvine-common compatibility facade. None

Test verified

Test case Result Notes
cargo check -p curvine-server --all-targets PASS Refreshed Cargo.lock after adding direct workspace deps.
make format PASS Ran repository pre-commit formatting/check script successfully.
cargo check -p curvine-server --all-targets --locked PASS Verified lockfile consistency after formatting.
cargo tree -p curvine-server --depth 1 PASS Shows direct curvine-master, curvine-worker, curvine-data-transfer, curvine-raft, curvine-rocksdb, and curvine-storage-local dependencies.
rg "curvine-client|curvine_client::|curvine_client\b" curvine-server/Cargo.toml curvine-server/src curvine-server/tests PASS Only curvine-client-core remains; no public curvine-client facade dependency or import.
rg "curvine_common::(raft|rocksdb)|curvine_common::proto::raft|curvine_common::conf::JournalConf" curvine-server/src curvine-server/tests PASS No server source/test usage of common raft/rocksdb compatibility paths remains.
git diff --check PASS No whitespace errors.

Dependencies

Declare server-side metadata and storage adapters directly and use direct process crate imports for master, worker, and transfer startup.
@lzjqsdd
lzjqsdd marked this pull request as ready for review August 1, 2026 14:25
Copilot AI review requested due to automatic review settings August 1, 2026 14:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Refactors curvine-server to wire server-side process crates and adapters explicitly (master/worker/transfer, metadata, local storage) while keeping the existing binary entrypoint and service selection behavior unchanged.

Changes:

  • Added explicit curvine-raft, curvine-rocksdb, and curvine-storage-local dependencies to curvine-server, and forwarded SPDK/RDMA-related features to the local storage adapter.
  • Updated the server binary to import Master, Worker, and TransferServer directly from their respective process crates.
  • Updated server tests and internal test utilities to reference raft/journal types via curvine-raft instead of curvine-common compatibility paths.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
curvine-server/Cargo.toml Adds explicit workspace deps (raft/rocksdb/storage-local) and forwards SPDK/RDMA features to the local storage adapter.
curvine-server/src/bin/curvine-server.rs Switches binary wiring to import Master/Worker/TransferServer directly from their process crates.
curvine-server/src/lib.rs Adds explicit public wiring re-exports for metadata (raft/rocksdb), storage (local), and data transfer.
curvine-server/src/test/mini_cluster.rs Updates raft peer imports to come from curvine-raft.
curvine-server/tests/journal_test.rs Moves raft proto/storage imports from curvine-common compatibility facade to curvine-raft.
curvine-server/tests/load_job_submit_test.rs Uses curvine_raft::conf::JournalConf directly.
curvine-server/tests/lock_order_deadlock_stress_test.rs Uses curvine_raft::conf::JournalConf directly.
curvine-server/tests/master_fs_test.rs Uses curvine_raft::conf::JournalConf and raft storage types directly.
curvine-server/tests/resize_lock_p95_test.rs Uses curvine_raft::conf::JournalConf directly.
curvine-server/tests/resize_lock_scope_test.rs Uses curvine_raft::conf::JournalConf directly.
Cargo.lock Updates the curvine-server package dependency list to include the new direct deps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jlon
jlon merged commit 7231354 into main Aug 2, 2026
12 checks passed
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.

3 participants