37 lines
1.9 KiB
Plaintext
37 lines
1.9 KiB
Plaintext
// Architecture of the Ollama x Mooncake KV-cache bus.
|
|
// Render: dot -Tpng architecture.dot -o ../docs/figures/architecture.png
|
|
digraph mooncake_ollama {
|
|
rankdir=LR;
|
|
bgcolor="white";
|
|
node [fontname="Helvetica", fontsize=11, shape=box, style="rounded,filled", color="#333333"];
|
|
edge [fontname="Helvetica", fontsize=9, color="#555555"];
|
|
graph [fontname="Helvetica", labelloc=t, fontsize=14,
|
|
label="Ollama x Mooncake: global KV-cache reuse for local agent swarms"];
|
|
|
|
agents [label="Agent swarm\n(coding agents / patched Ollama)", fillcolor="#eef3fb"];
|
|
|
|
subgraph cluster_bridge {
|
|
label="ollama-mooncake-bridge (Go sidecar)";
|
|
style="rounded,filled"; fillcolor="#f4f0fb"; color="#7a5fb8"; fontcolor="#4b3b78";
|
|
key [label="cache key\n(GGUF + chained block hash)", fillcolor="#ffffff"];
|
|
radix [label="radix index\n(cross-process KV prefixes)", fillcolor="#ffffff"];
|
|
arbiter [label="cost arbiter\n(restore vs recompute)", fillcolor="#ffffff"];
|
|
orch [label="orchestrator\nLookup / Prepare / Commit", fillcolor="#ffffff"];
|
|
}
|
|
|
|
llama [label="llama.cpp server\n(KV in GPU, per slot)\nStage 1: /slots save|restore\nStage 2: cgo _ext ON_DEVICE", fillcolor="#eafaf0"];
|
|
|
|
proxy [label="mooncake-store-proxy (Python)\n1 warm MooncakeDistributedStore\nstriped batch_put_from / get_into\npre-registered RDMA staging", fillcolor="#fdf3e8"];
|
|
|
|
store [label="Mooncake Store + Transfer Engine\nDRAM pool, replicas\nRDMA / GPUDirect", fillcolor="#fbeef0"];
|
|
|
|
agents -> orch [label="HTTP / gRPC"];
|
|
orch -> key [style=dashed, arrowhead=none];
|
|
orch -> radix [style=dashed, arrowhead=none];
|
|
orch -> arbiter [style=dashed, arrowhead=none];
|
|
orch -> llama [label="restore / save KV slot"];
|
|
orch -> proxy [label="gRPC (file paths)"];
|
|
proxy -> store [label="put / get KV blobs", color="#b0413e", penwidth=2];
|
|
llama -> store [label="GPUDirect RDMA (Stage 2)", style=dashed, color="#1a7d32"];
|
|
}
|