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.
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.