buildbarn / bb-remote-execution

Tools for Buildbarn to allow remote execution of build actions
Apache License 2.0
113 stars 66 forks source link

Add an NFSv4.1 server #142

Closed EdSchouten closed 4 months ago

EdSchouten commented 4 months ago

Right now we provide an NFSv4.0 server. This works pretty well, but the downside of NFSv4.0 is that it's only capable of processing OPEN/CLOSE/LOCK/LOCKU requests belonging to a single open/lock-owner sequentially. On macOS, every user ID gets its own open/lock-owner, meaning that performance is pretty bad when workers are concurrent.

This change solves that by adding an NFSv4.1 server. In terms of implementation it is mostly disjoint from the NFSv4.0 server. The reason being that the protocols differ substantially. Trying to provide a single server that supports both will end up being very messy.