Description of problem: Currently, three memcache key/value pairs are used to cache the metadata for accounts and containers. This is both a potential data integrity problem and a performance issue. The data integrity problem can arise from two actors setting the various keys to different sets of computed values, or a reader fetching a partial set before a writer updates one of the keys. It is a performance problem in that we have triple the network traffic hitting the memcache servers. Version-Release number of selected component (if applicable): RHS 2.0 How reproducible: Readily Steps to Reproduce: 1. Hook up wireshark 2. Observe traffic two and from a memcache server 3. Notice for a given Swift API GET on a container, three memcache GET operations are performed Actual results: 3 memcache GET operations performed per Swift API GET on a container/account Expected results: 1 memcache GET operation performed per Swift API GET Additional info:
I'll take this as I am currently working on performance improvements in the module containing the code for this behavior.
CHANGE: http://review.gluster.org/4139 (object-storeage: refactor to use one memcache key) merged in master by Vijay Bellur (vbellur)