-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Describe the feature would like to see added to OpenZFS
The ARC should treat data and metadata equally (at least for the purposes of eviction)
How will this feature improve OpenZFS?
I believe it should simplify the ARC and help to eliminate issues such as #10508 . The eviction code, for example, quite imperfectly jumps through hoops to keep the eviction balance between ARC_BUFC_DATA and ARC_BUFC_METADATA arc lists 'fair' in a slightly doomed manner which I believe would just 'come out in the wash' if they were not distinct in the first place.
Additional context
I seem to recall some Illumos engineers saying their version of ZFS does this and it turned out to be a good win. [citation needed]
That anecdote is the strongest argument I have, to be honest, though having spent a lot of time in the ARC code it's a tempting direction if only for the sake of simplicity.
I imagine there was (or seemed like) a good reason to treat data and metadata separately in the first place though; not sure if that theory has been proven-out.
Downsides:
- There may be devil in the details to keep supporting primarycache=metadata.
- Code churn
- OpenZFS's test harness more or less exercises ARC robustness but I don't think we have anything (automated or otherwise) to prove that an ARC change is a perf win/loss, short of throwing it out to the world and letting people try it via a potentially very long release/feedback/response loop... but that's a bigger issue.