Landed initial utask and cache mode support
Valerie Aurora
val at versity.com
Mon Mar 24 13:17:55 PDT 2025
On Fri, Mar 21, 2025 at 9:29 PM Zach Brown <zab at zabbo.net> wrote:
>
> Hi all,
>
> I wanted to send a note to highlight the arrival of two significant
> pieces of ngnfs.
>
> The first change is the negotiation of cache modes between the network
> client and the devd device servers. The block IO network messages are
> augmented a bit to request and grant read or write mode associated with
> a cached block. The devd server sends mode revocation messages around
> to ensure that all clients are compatible with granted modes.
>
> To support this the client block cache was significantly cleaned up
> (imnsho :)) to make it a lot easier to make atomic transitions between
> complicated states. It's no longer a pre-cmpxchg sea of atomic bit
> operations that made me sad.
>
> The second change is to move from a multi-threaded runtime in the
> userspace processes to a model of voluntary pre-emption amongst stacks
> in a single threaded context. It makes the userspace processing paths
> so very much easier to work with. As part of this, we use io_uring to
> drive forward progress in response to external events. Personally, I'm
> pretty excited to see how far we can push this.
>
> There's a lot of iteration to do on these foundations, of course, but
> this brings us a lot closer to building fs structures in a consistent
> block store that's distributed across the network.
This is great news and exciting progress! I'm looking forward to
learning more as soon as I finish this current project.
As another status update, I've just implemented small (~500 byte)
extended attributes using the btrees and a very simple form of file
data (a sparse tree of indirect blocks rooted in the inode, every data
block has the same number of indirect blocks). I'll be polishing this
up and rebasing it on main over the next few days.
Valerie
More information about the ngnfs-devel
mailing list