BrewFSBrewFS0.1
Test MethodAgent WorkloadsBenchmarksCompareArchitectureRust NativeUse CasesDocsBlogRoadmap中文
GitHubGet Started
Agent Workloads

A shared filesystem
for collaborative agents

Agents do not only read files. They continuously read, write, scan, update, and exchange artifacts. BrewFS is optimized for this RandRW-heavy pattern — in the July 24, 2026 Redis + RustFS snapshot it delivers 92% more fully drained mixed-I/O throughput versus JuiceFS under the same matched profile.

View RandRW BenchmarkExplore ArchitectureTry BrewFS

Why it's different

Why agent workloads stress filesystems differently

01

Agents are not sequential readers

Traditional data-processing focuses on sequential throughput. Agent workloads repeatedly perform small reads, partial writes, directory scans, metadata lookups, and artifact updates.

02

Agents constantly scan project structure

Coding, research, and data agents frequently execute directory traversal, stat, open, read, write, and rename operations.

03

Agents produce many intermediate files

Plans, logs, patches, tool outputs, reports, caches, indexes, and temporary files all become part of the active workspace.

04

Agents share state

In multi-agent systems, one agent's output often becomes another agent's input. The filesystem becomes the coordination layer.

05

More agents amplify random IO

A single agent already creates a complex random read/write pattern. Multiple agents running together amplify random IO, metadata pressure, and concurrent workspace updates.


Shared Namespace

One shared namespace for collaborative agents

BrewFS lets multiple agents work in the same filesystem namespace. Each agent reads existing context, writes intermediate artifacts, updates task outputs, and hands off results through normal file paths.

This structure is easy for agents to understand, easy for humans to inspect, and easy for infrastructure teams to persist on object storage.

/workspace
/workspace
├── context/
│   ├── repo-summary.md
│   └── user-requirements.md
├── agents/
│   ├── planner/   plan.md
│   ├── executor/  result.json logs.txt
│   ├── reviewer/  review.md
│   └── reporter/  final.md
├── artifacts/
│   ├── patch.diff
│   ├── benchmark.csv
│   └── output.png
└── memory/
    ├── task-state.json
    └── index-cache.bin

Workload Patterns

How real agents hit the filesystem

Five common agent patterns, each with a distinct IO profile that BrewFS is built to handle.

Coding Agents

Multiple coding agents scan repositories, read source files, generate patches, write test results, and exchange analysis reports through a shared BrewFS workspace.

BrewFS AdvantageStrong RandRW performance, a transparent data path, and a shared namespace for collaborative code-generation workflows.
Typical IO
Repository scansStat-heavy accessSmall random readsPatch writesTest logsArtifact exchange

Performance data from README

Mixed random I/O is where agent workloads hurt most

The July 24, 2026 README snapshot compares BrewFS and JuiceFS on the same local host with Redis metadata, RustFS S3-compatible storage, compression disabled, matching writeback profiles, buffered io_uring fio, durable read prefill, and strict post-write drain. BrewFS leads 15 of 24 matched rows. Fully drained mixed I/O is 92% faster; foreground mixed I/O is 51% faster; random read is 37% faster.

Matched workload highlights relative to JuiceFS
higher is better ->
1.92xfully drained mixed I/O218.60 MiB/s vs 113.86 MiB/s
1.51xforeground mixed I/O495.54 MiB/s vs 328.76 MiB/s
1.37xrandom read1,726.10 MiB/s vs 1,256.80 MiB/s
15/24matched rows led10/14 data · 5/10 metadata
Mixed I/O (fully drained)
1.92x
Foreground Large write
1.90x
Foreground mixed I/O
1.51x
Random read
1.37x
Readdir
1.79x
The mixed random I/O workload is closest to what busy agent workspaces do: read context, write artifacts, append logs, update indexes, and scan metadata at the same time. Open the README benchmark ->

Benchmark environment

MetadataRedis
Object storageRustFS S3-compatible storage
CompressionDisabled for both systems
fio modeBuffered io_uring (direct=0), 4 MiB, 512 MiB/job, 20 s
CPUIntel Xeon Platinum, x86_64, 1 socket / 8 vCPU, 2 threads per core
Memory14 GiB available to the benchmark host
KernelLinux 6.8.0-117-generic
Storage130 GiB virtual block device

Application-visible and fully drained throughput

WorkloadBrewFSJuiceFSRatio
Large read194.34 MiB/s194.17 MiB/s~1.00x
Sequential read740.60 MiB/s1,000.76 MiB/s0.74x
Random read1,726.10 MiB/s1,256.80 MiB/s1.37x
Large write (foreground)195.05 MiB/s102.40 MiB/s1.90x
Sequential write (foreground)189.33 MiB/s117.94 MiB/s1.61x
Random write (foreground)178.17 MiB/s117.43 MiB/s1.52x
Mixed random I/O (foreground)495.54 MiB/s328.76 MiB/s1.51x
Large write (fully drained)66.47 MiB/s79.13 MiB/s0.84x
Sequential write (fully drained)88.50 MiB/s144.44 MiB/s0.61x
Random write (fully drained)89.31 MiB/s138.89 MiB/s0.64x
Mixed I/O total (fully drained)218.60 MiB/s113.86 MiB/s1.92x
Hot local-cache Large read2,395.32 MiB/s2,356.73 MiB/s~1.02x

Metadata throughput

OperationBrewFSJuiceFSRatio
Create1,004.61 ops/s549.01 ops/s1.83x
Open4,827.50 ops/s11,883.85 ops/s0.41x
Stat726,234.51 ops/s724,328.73 ops/s~1.00x
Readdir28,634.94 ops/s16,020.25 ops/s1.79x
Rename894.64 ops/s1,313.40 ops/s0.68x

Write completion accounting

WorkloadBrewFS tool wall / post-drainJuiceFS tool wall / post-drain
Large write21 s / 41 s40 s / 12 s
Sequential write21 s / 24 s70 s / 37 s
Random write24 s / 24 s70 s / 39 s
Mixed random I/O26 s / 33 s21 s / 40 s

Complete tool wall time

ToolBrewFS wallJuiceFS wallResult
fio-bigread31 s5 spass / pass
fio-bigwrite21 s40 spass / pass
fio-seqread20 s21 spass / pass
fio-seqwrite21 s70 spass / pass
fio-randread21 s20 spass / pass
fio-randwrite24 s70 spass / pass
fio-randrw26 s21 spass / pass
metaperf293 s194 spass / pass
dirstress1 s3 spass / pass
dirperf17 s14 spass / pass

Important notes

  • Both filesystems use their runner writeback-throughput profile. This is a throughput-oriented comparison, not a durability-equivalence claim.
  • Fully drained throughput is actual fio bytes divided by active I/O time plus post-write drain.
  • BrewFS leads 15 of 24 matched rows (10/14 data-path, 5/10 metadata). JuiceFS still leads sequential read, strictly drained pure writes, and TiKV create/open/rename.
  • This is a local engineering snapshot from July 24, 2026, not a universal performance claim for every deployment.
Reproduce with Docker runners
PERF_LOG_TO_CONSOLE=false PERF_FIO_SIZE=512m PERF_FIO_RUNTIME=20 \
bash docker/compose-xfstests/run_redis_perf.sh --s3 --writeback-throughput-profile

JUICEFS_META_BACKEND=redis PERF_LOG_TO_CONSOLE=false \
PERF_FIO_SIZE=512m PERF_FIO_RUNTIME=20 \
bash docker/compose-xfstests/run_juicefs_perf.sh --writeback-throughput-profile
BrewFSBrewFSGitHub

Rust-native filesystem for multi-agent collaborative read/write workloads.

Product
What is BrewFSArchitectureRust NativeUse Cases
Agents
Agent WorkloadsShared WorkspaceRandRW Benchmark
Benchmarks
OverviewRandRWCompare JuiceFS
Community
GitHubRoadmapCommunityDocsBlog

© 2026 BrewFS · Apache-2.0 · Built in Rust 🦀

BrewFS is an early, fast-evolving open-source project. Performance claims refer to specific agent-style RandRW benchmarks; production readiness should be validated per workload.