Description of problem:
As per the program decision and test strategy for 3.2.0, we are testing ( regression, system, performance, interop, bug verification) to be conducted by enabling following md-cache options:
# Enable Cache invalidation and increase the timeout to 10 mins
# gluster volume set <volname> features.cache-invalidation on
# gluster volume set <volname> features.cache-invalidation-timeout 600
# Incase of Samba enable following
# gluster volume set <volname> performance.cache-samba-metadata on
# Enable metadata caching on the client , to maintain cache consistency and to increase the client side metadata timeout to 10 mins
# gluster volume set <volname> performance.cache-invalidation on
# gluster volume set <volname> performance.md-cache-timeout 600
Based on the test results these options needs to be enabled default in the code and hence raising this bz as a tracker to be fixed in later 3.2.0 if the testing results are positive.
These options are not suitable for all kind of usecases, consider use cases like multiple clients writing to the same file simultaneously or producer consumer use cases. It may cause more network traffic for no benefit. We have not done any performance analysis of these use cases to quantify the effect. Hence i suggest that these options not be default for RHGS.
On a generic note, performance tunable's are generally workload specific, i would suggest that we leverage the glusterd's group volume sets feature. With this we can define the volume set groups for all standard workloads like: small file workload/ VM use case/ home directory kind of use case etc. That way it makes it easy to use.