frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Jbofs – explicit file placement across independent disks

https://github.com/aozgaa/jbofs
4•aozgaa•1h ago
Hey all,

I created `jbofs` ("Just Bunch of File Systems") as an experiment to workaround some recurring issues I have run into with suprising filesystem performance.

My use case is storing large media (think pcaps, or movie files), where some hierarchal organization is still useful.

Whether it’s NFS mounts (and caches), ZFS, or RAID (mis)configurations, I’ve run into surprising(ly bad) performance on many occasions. Doubtless this is largely user error, but it can be hard to diagnose what went wrong, and I’ve resorted to things like copying a file to `/tmp` or some other local mount with a simple ext4/XFS filesystem that I understand. When I see r/w happening at 200MB/s but know that 66GB/s is possible[1], it can be quite disheartening

I’ve wanted something dead simple which peels back the curtains and provides minimal abstraction (and overhead) atop raw block devices. I’ve messed around with FUSE a bit, and did some simple configuration experiments on my machine (a workstation), but came back to wanting less, not more. I did do some RTFM with immediate alternatives[2], but could have missed something obvious -- let me know!

As a compromise to avoid implementing my own filesystems, I built this atop existing filesystems.

The idea is pretty simple -- copy files to separate disks/filesystems, and maintain a unified “symlink” view to the various underlying disks. Avoid magic and complication where possible. Keep strict filesystem conventions.

Of course, this is not a filesystem. Maybe that’s a bad thing -- which is one thing I’m trying to figure out with this experiment.

If you have experience using anything like the other filesystems or similar stuff, would love to get your feedback, and especially thoughts about why this symlink thing is not the way to go!

Lastly, thanks for taking the time to look at this!

[1] https://tanelpoder.com/posts/11m-iops-with-10-ssds-on-amd-th...

[2] https://github.com/aozgaa/jbofs/blob/main/docs/comparison.md

Comments

silentvoice•1h ago
what are some bad behaviors you've seen with NFS,ZFS,RAID and how do you diagnose it and how did it lead you to this solution
aozgaa•1h ago
NFS -- very slow reads, much slow than `cp /nfs/path/to/file.txt ~/file.txt`. I generally suspect these have to do with some pathological behavior in the app reading the file (eg: doing a 1-byte read when linearly scanning through the file). diagnose with simple `iotop`, timing the application doing the reads vs cp, and looking at some plethora or random networking tools (eg: tcptop, ...). I've also very crudely looked at `top`/`htop` output to see that an app is not CPU-bound as a first guideline.

ZFS -- slow reads due to pool-level decompression. zfs has it's own utilities, iirc it's something like `zpool iostat` to see raw disk vs filesystem IO.

RAID -- with heterogenous disks in something like RAID 6, you get minimum disk speed. This shows up when doing fio benchmarking (the first thing I do after setting up a new filesystem/mounts). It could be that better sw has ameliorated this since (last checked something like 5ish years ago).

emanuele-em•1h ago
Honestly this is way more appealing than fighting mergerfs when you just want explicit disk placement. Doctor + prune for orphaned symlinks is exactly what you'd need to keep things sane over time. Saw it's written in Zig, how's that been for this kind of systems tooling?
aozgaa•53m ago
> Honestly this is way more appealing than fighting mergerfs when you just want explicit disk placement. Doctor + prune for orphaned symlinks is exactly what you'd need to keep things sane over time.

That's the hope!

> Saw it's written in Zig, how's that been for this kind of systems tooling?

Zig has been pretty fine. It could have just as well been done in C/C++ but as a hobby thing I value (a) fast compilation (rules out building stuff in C++ without jumping through hoops like avoiding STL altogether) and (b) slightly less foot guns than C.

The source code itself is largely written with LLM's (alternating between a couple models/providers) and has a bit of cruft as a result. I've had to intervene on occasion/babysit small diffs to maintain some structural coherence; I think this pretty par for the course. But I think having inline unit tests and instant compilation helps the models a lot. The line noise from `defer file.close();` or whatever seems pretty minor.

Zig has pretty easy build/distribution since the resulting executable has a dependency on just libc. I haven't really looked into packaging yet but imagine it will be pretty straightforward.

My one gripe would be that the stdlib behavior is a bit rough around the edges. I ran into an issue where a dir was open(2)'d with `O_PATH` by default, which then makes basically all operations on it fail with `EBADF`. And the zig stdlib convention is to panic on `EBADF`. Which took a bit or reading zulip+ziggit to understand is a deliberate-ish convention.

All this to say, it's pretty reasonable and the language mostly gets out of the way, and let me make direct libc/syscalls where I want.

John "Iron Mad" Wilkinson

https://en.wikipedia.org/wiki/John_Wilkinson_(industrialist)
1•softwaredoug•58s ago•0 comments

Elon Musk insists banks working on SpaceX IPO must buy Grok subscriptions

https://arstechnica.com/tech-policy/2026/04/elon-musk-insists-banks-working-on-spacex-ipo-must-bu...
1•abdelhousni•1m ago•0 comments

Qiwa.sa

https://working-permits-v2.qiwa.sa/
1•2245461534•3m ago•0 comments

Artemis II Tracker

https://artemislivetracker.com/
1•spike021•4m ago•1 comments

Former CIA director: 'Russia no longer has the upper hand' in Ukraine war

https://thehill.com/policy/defense/5818227-david-petraeus-ukraine-russia-war/
2•doener•5m ago•0 comments

Test-Time Scaling Makes Overtraining Compute-Optimal

https://arxiv.org/abs/2604.01411
1•matt_d•6m ago•0 comments

Show HN: Luigis-meter – Claude Code Max quota in your statusline

https://github.com/Luigigreco/luigis-meter
1•lgreco•6m ago•0 comments

A2A: Let your Claude Code sessions talk to each other

https://github.com/dopatraman/a2a
1•dopatraman•9m ago•0 comments

AI Summaries of Hacker News

https://zipperdatabrief.com
1•big_big_data•10m ago•0 comments

Vent-Off

https://www.ventoff.ai/
1•vijayjavvaji•13m ago•0 comments

Is RAG Dead? Long Context, Grep, and the End of the Mandatory Vector DB

https://akitaonrails.com/en/2026/04/06/rag-is-dead-long-context/
1•akitaonrails•13m ago•1 comments

Testing Open Source and Commercial LLMs – Can Anyone Beat Claude Opus?

https://akitaonrails.com/en/2026/04/05/testing-llms-open-source-and-commercial-can-anyone-beat-cl...
1•akitaonrails•14m ago•0 comments

Do RL on a model with your vector db

https://cgft.io/blog/turbopuffer/
1•kumama•15m ago•0 comments

Zopaf – A negotiation math engine as an MCP server (zero LLM tokens)

https://zopaf-mcp-production.up.railway.app/mcp
1•rjandino•16m ago•0 comments

oops wrong link delete

https://grugnotes.com/accounts/login/?next=/keizo/blog/text-editing-at-the-speed-of-thought/
1•keizo•17m ago•0 comments

Show HN: Visualizing React Server Component Boundaries in Next.js

https://github.com/foxted/rsc-boundary
1•valentinprgnd•19m ago•0 comments

Show HN: Kyoo v5 – self hosted media server

https://github.com/zoriya/kyoo
2•zoriya•19m ago•0 comments

Investigation: Unmasking the anonymous hosts of 'Russians With Attitude'

https://kyivindependent.com/exclusive-investigation-reveals-hosts-of-us-popular-far-right-podcast/
2•doener•21m ago•0 comments

Spectre – A design-by-contract, compiled programming language with QBE back end

https://github.com/spectrelang/spectre
1•death_eternal•25m ago•0 comments

TypeScript Enums Are Terrible

https://www.youtube.com/watch?v=0fTdCSH_QEU
1•goodoldneon•25m ago•1 comments

API and MCP that pumps data from SEC filings into your agent context

https://medium.com/@steve_63055/give-your-ai-agent-direct-access-to-kpis-from-sec-filings-e372d04...
2•sjt-at-rev•28m ago•1 comments

Graphify: An AI skill for turning any folder into a queryable knowledge graph

https://github.com/safishamsi/graphify
2•tanelpoder•30m ago•0 comments

Analyzing Reverse Address Translation Overheads in Multi-GPU Scale-Up Pods

https://arxiv.org/abs/2604.02473
1•matt_d•31m ago•0 comments

Surprising hidden pattern connecting over 1,500 languages found

https://www.independent.co.uk/news/science/languages-universal-grammar-rules-pattern-b2952396.html
1•antfarm•35m ago•0 comments

Bitwarden Is Down

https://status.bitwarden.com/issues/69d430c5763f44a7efca7b8a
4•zhan_eg•35m ago•0 comments

Show HN: ACP – Governance for AI Coding Agents (Claude Code, OpenClaw)

https://agenticcontrolplane.com/
1•davidcrowe•36m ago•0 comments

How to Perform a Bulk Permissions Check in FusionAuth FGA by Permify

https://fusionauth.io/blog/permify-bulk-permissions-check
1•mooreds•40m ago•0 comments

Launchyard – vibe code a business

https://launchyard.dev
1•hackmaxim•41m ago•1 comments

HubLite – A native macOS CRM for people who find HubSpot/Salesforce overkill

https://www.innobera.com/hublite/
1•Evian-SP•42m ago•0 comments

Show HN: MemberLane – Paid Communities on Telegram, Discord, and WhatsApp

https://www.memberlane.app
2•grene98•45m ago•0 comments