Skip to content

Commit 542eaf2

Browse files
add controller package and agent CLI
This change relates to #214. It adds a new package to this crate called `datafusion-distributed-controller` which will contain control-plane-related tooling for running a distributed datafusion clusters. This utility will be used for large-scale integration tests and benchmarking. The proposed architecture is: - have a local CLI "controller" which can interface with agents running on workers - the agents can run code on the machine (ex. download data from blob store, start arrow flight server, execute sql on the cluster etc.) This change adds an agent. The controller will be added in a future commit. Usually an agent runs on a port and is interfaced with via RPC, but since this utility is just for testing, this change proposes that the agent can be interfaced with via a CLI.
1 parent dbf80f9 commit 542eaf2

File tree

8 files changed

+775
-15
lines changed

8 files changed

+775
-15
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
- uses: actions/checkout@v4
4040
- uses: ./.github/actions/setup
4141
- run: cargo test --features tpch --test tpch_validation_test
42-
42+
4343
format-check:
4444
runs-on: ubuntu-latest
4545
steps:
@@ -48,3 +48,4 @@ jobs:
4848
with:
4949
components: rustfmt
5050
- run: cargo fmt --all -- --check
51+

Cargo.lock

Lines changed: 133 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,36 @@
11
[workspace]
2-
members = ["benchmarks"]
3-
2+
members = ["benchmarks", "datafusion_distributed_controller"]
43
[workspace.dependencies]
4+
arrow-flight = "56.1.0"
5+
async-trait = "0.1.88"
56
datafusion = { version = "50.0.0", default-features = false }
67
datafusion-proto = { version = "50.0.0" }
8+
tokio = { version = "1.46.1", features = ["full"] }
9+
tonic = { version = "0.13.1", features = ["transport"] }
10+
# Updated to 0.13.1 to match arrow-flight 56.1.0
11+
tower = "0.5.2"
12+
url = "2.5.4"
13+
futures = "0.3.31"
714

815
[package]
916
name = "datafusion-distributed"
1017
version = "0.1.0"
1118
edition = "2024"
1219

1320
[dependencies]
21+
arrow-flight = { workspace = true }
22+
async-trait = { workspace = true }
1423
chrono = { version = "0.4.42" }
1524
datafusion = { workspace = true }
1625
datafusion-proto = { workspace = true }
17-
arrow-flight = "56.1.0"
1826
arrow-select = "56.1.0"
19-
async-trait = "0.1.88"
20-
tokio = { version = "1.46.1", features = ["full"] }
21-
# Updated to 0.13.1 to match arrow-flight 56.1.0
22-
tonic = { version = "0.13.1", features = ["transport"] }
23-
tower = "0.5.2"
27+
tokio = { workspace = true }
28+
tonic = { workspace = true }
29+
tower = { workspace = true }
30+
url = { workspace = true }
2431
http = "1.3.1"
2532
itertools = "0.14.0"
2633
futures = "0.3.31"
27-
url = "2.5.4"
2834
uuid = "1.17.0"
2935
delegate = "0.13.4"
3036
dashmap = "6.1.0"
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
[package]
2+
name = "distributed-datafusion-controller"
3+
version = "0.1.0"
4+
edition = "2024"
5+
6+
[[bin]]
7+
name = "ddf_test"
8+
path = "src/main.rs"
9+
10+
[[bin]]
11+
name = "agent"
12+
path = "src/bin/agent.rs"
13+
14+
[dependencies]
15+
clap = { version = "4.5.51", features = ["derive"] }
16+
datafusion-distributed = { path = "..", features = ["integration"] }
17+
moka = {version = "0.12.11", features = ["sync"]}
18+
tokio = { workspace = true }
19+
tonic = { workspace = true }
20+
tower = { workspace = true }
21+
url = { workspace = true }
22+
futures = { workspace = true }
23+
datafusion = { workspace = true }
24+
arrow-flight = "56.1.0"
25+
async-trait = "0.1.88"
26+
serde = { version = "1.0", features = ["derive"] }
27+
serde_yaml = "0.9"
28+
tempfile = "3.8"
29+
log = "0.4.28"
30+
31+

0 commit comments

Comments
 (0)