Pushed next wave of big changes
Zach Brown <[email protected]> Fri, 31 Jul 2026 12:44:18 -0700
| Newsgroups | dev.linux.lists.rpdfs-devel |
|---|---|
| Message-ID | <[email protected]> |
I just pushed a large series of commits that pivot the rpdfs architecture. There's three core elements that make up the pivot and unlock the rest of the improvements. First is having devd use a log-based storage format in the device. This requires mapping between block names and device location. Second, once we're mapping block names in the devices to begin with, we can use large 192bit names for blocks on the wire instead of 64bit block numbers. This lets clients allocate new block names themselves without having to negotiate access to global allocation structures. Third, we move from per-block cache states to per-inode locks. This has the benefit of communicating cache coherency with far less overhead but at the cost of abdononing the (unneccesary, in the end) finer-grained contention footprint. The kernel client sees the most change from bringing these core features online. Large block names means we can reference blocks by their logical identity rather than allocated mapped position. We no longer have block structurds that map logical to physical -- no btree for metadata and no data mappings. And with no global resource (block numbers) all blocks are per-inode and we can easily use the vfs inode and page caches for our caching. Anyway, it's all in the commits. There's still a lot of work to do to finish up the transition. I wanted to err on the side of making this work visible once the core pieces were there rather than waiting for it to be more complete. Enjoy! More coming, - z