On Fri, Feb 28, 2014 at 08:52:17AM -0800, Richard Elling wrote:
> I'm not 100% sure of the provenance of the ARC code in ZoL. Are you saying
> that the breakage is specific to ZoL and does not affect upstream? Or do you 
> believe the issues have been around for a long time?

The biggest breakage I think is specific to ZoL, but there's a few
subtle things that I've noticed and think are wrong in the code that is
shared between ZoL and upstream.

Specifically, things like this patch _might_ be helpful upstream:

    * da8ccd0 Prioritize "metadata" in arc_get_data_buf

When the size limit is reached and when adding a metadata buffer to the
arc via arc_get_data_buf, a metadata buffer will be evicted. This is
whether arc_meta_used has reached arc_meta_limit or not. So it seems
like metadata can be "starved" as a result (i.e. it won't hit the
limit). If the metadata limit isn't reached yet, it makes sense (to me)
to pitch a data buffer instead.

Or this patch:

    * 89c8cac Disable aggressive arc_p growth by default

When adding new anonymous data, if "arc_size" is less than "c" then "p"
will be increased. Why is that useful? That's not described in the
original ARC paper or in the code, and appears to starve to MFU for
certain workloads that I tested. What workloads does it help?

Or this one:

    * 2b13331 Set "arc_meta_limit" to 3/4 arc_c_max by default

I hit a case where the ARC was filling up with mostly un-evictable
metadata buffers. This was due to the workload creating 4K files, each
file sitting in the dbuf cache holding it's dnode, which the dnode in
turn pinned the 16K dnode object buffer in the ARC. Is it "correct"? Is
it ok to let so much un-evictable metadata be resident in the ARC simply
because data is sitting in the upper layer dbuf cache? It definitely
makes it harder for us to implement a hard limit on the cached metadata
as we try to do on ZoL.

With all that said, all I really want to do is open up a discussion
about my changes with anybody who thoroughly understands the ARC code
and can answer some of my questions. I'm not completely sure my work is
"right", so I was hoping to hash some of the details out on this list.

-- 
Cheers, Prakash
_______________________________________________
developer mailing list
developer@open-zfs.org
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to