Based on observed behavior measuring performance of dedup, I would say, some
chunk of data and its associated metadata seem have approximately the same
"warmness" in the cache.  So when the data gets evicted, the associated
metadata tends to be evicted too.  So whenever you have a cache miss,
instead of needing to fetch 1 thing from disk (the data) you need to fetch N
things from disk (data + the metadata.)

 

I would say, simply giving bias to the metadata would be useful.  So the
metadata would tend to stay in cache, even when the data itself is evicted.
Useful because the metadata is so *darn* small by comparison with the actual
data...  It carries a relatively small footprint in ram, but upon cache
miss, it more than doubles the disk fetch penalty.

 

If you consider the extreme bias...  If the system would never give up
metadata in cache until all the cached data were gone...  Then it would be
similar to the current primarycache=metadata, except that the system would
be willing to cache data too, whenever there was available cache otherwise
going to waste.

 

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to