How to determine cache distribution across servers
Is there any way I can determine how my cache keys are being distributed across the servers
I'm loading the cache with keys that are sequential numbers start at 100,000 and incrementing up to about 300,000.
I would like the keys and hence the associated data to be evenly distributed across the available servers. Right now, I’m using the Enyim.Caching.Memcached.DefaultNode locator, as I have not had the chance to develop code to determine a distribution using the other locators.
Thanks
marc
Marc, you should really be using the Membase client library included with Enyim. That will provide you the best performance and dynamic configuration. Even without that, the distribution of data across the servers will be very even by design (as Bhawana said).
Perry
I am using the membase client library. I have the app.config file set to use the defaultnode locator. Am I not supposed to do that?
Also, I just need to understand which node locator hash will give a better distribution.
Gotcha. Sounds like you're using it correctly.
When using Membase bucket types (not memcached) the hash is not currently configureable. We use a CRC32 hash into 1024 vbuckets which provide us a very good distribution of data across the servers. You may want to take a read through our wiki (wiki.membase.org) which has lots of information on how the underlying infrastructure of vbuckets works.
For Memcached bucket types, the default is the libketama hash which has been in use for quite a long time in most/all memcached clients and seems to be the best consistent hashing algorithm available.
Thanks again, let me know if you're having any issues.
Perry
Marc,
By design the data should be evenly distributed.
bhawana
Forum support is great for free but sometimes you need a guaranteed response time and dedicated resources for your questions or issues.
Consider purchasing enterprise-level support from Membase: http://www.membase.com/products-and-services/overview
Call or email "sales -at- membase -dot- com" today!