As its written in MSDN (http://msdn.microsoft.com/en-us/library/system.string.gethashcode.aspx):
The behavior of GetHashCode is dependent on its implementation, which might change from one version of the common language run-time to another. A reason why this might happen is to improve the performance of GetHashCode.
In the following versions exactly this happens:
Let's say you like to do something for load-balancing based on the following code:
return Math.Abs((key.GetHashCode() % serverAmount));
it will return a different server node in case of shared cache. To handle this issue we have added 2 things, first of all is an alternative hashing algorithm and second we check the run-time between clients and server and inform clients about it in case this happens.
If you are using a version of shared cache which is below 18.104.22.1686 you need to keep all your systems up-to-date with the same CLR version or you decide to use a different hashing algorithm for your system. Within our notifier program you can check this quite easily.
To use following options you will firstly need to register, the registration can be done during installation or afterwards within a new option within menu context of SharedCache.com Notify application.
- Check if all environments are using same CLR
- A Test to check if you able to use all Hashing Algorithms
- Get Informed if your environment is using same version of shared cache, this is mostly important to grant all communication options between clients and caching nodes on your servers.
for more information about hashing algorithms which are supported by shared cache visit my website: http://www.sharedcache.com/ - or go directly to http://www.sharedcache.com/cms/shared_cache_notify.aspx