3 ms·
I wish everyone would just standardize on 9p already. It's solid and has existed for going on thirty years. Microsoft actually uses it for WSL, but afaik does
by donatj 3y ago
I wish everyone would just standardize on 9p already. It's solid and has existed for going on thirty years.
Microsoft actually uses it for WSL, but afaik does provide the ability to access other 9p servers.
- vbitz 3y ago9p involves a lot of round trips to create/write files. I benchmarked sshfs using fuse vs. 9p in the kernel and sshfs was significantly faster.
- donatj 3y agoPerfect is the enemy of good, and 9p is great.
- speed_spread 3y agoThat's not an argument here. If starting from scratch, might as well go with the thing that works best. Ssh is not an obscure protocol. If it's faster than 9p, that's what I'll use.
- coldtea 3y agoAny rational reason you like it?
- dmw_ng 3y agoThat sound you hear is the hellish screeching of a million git status monorepo users waiting for their shell prompt to reappear
- the8472 3y ago9p is a network protocol. For machine local filesystems one can do better by making use of shared memory which fuse and virtio-fs do.
- donatj 3y agoIt's a network protocol as far as everything from Plan9 was designed to be able to operate over the network in the late 90s sense of " the network is the computer". The local file system of Plan 9 though is exposed locally through 9p
- murderfs 3y agoYeah, and that's one of the reasons plan9 was dogshit and never amounted to anything. "Everything is a file" is bad enough, "Everything is a file which might be 'transparently' across a network" is insane.
- tadfisher 3y agoClassic blocking I/O is the problem, not network transparency. If you don't want files to be transparent through latency/throughput boundaries, then you should also disable the VFS cache.
- pzmarzly 3y agoFilesystem cache may make latency unpredictable, but it won't make open() unexpectedly fail with ECONNREFUSED. Most programs barely handle ENOENT, let alone EINTR. Also, how do you do async fstat and mkdir in Linux? I don't see it in manpages. AFAIK Plan9 answers to that was to not implement POSIX interfaces, and instead all I/O looked like RPC calls. This is generally a good design idea, but it's hard to sell an OS where all existing software will have to be rewritten for.
- GoblinSlayer 3y agoConceptually it's possible: async fstat sets pending read, then epoll could return read flag when it completes, after that fstat completes without delay.
- the8472 3y ago> Also, how do you do async fstat and mkdir in Linux? I don't see it in manpages. io_uring. and a virtual filesystem may have to serve multiple concurrent requests from several threads. so even if individual IO calls are blocking in the aggregate they still have to be interleaved.