public void SampleIntegerDistributionTest() { var map = CreateSampleShardMap(); var results = new[] { 0, 0, 0, 0, 0 }; const int testUpTo = 10; for (var i = 1; i < testUpTo; i++) { var hash = (long)CityHasher.CityHash64String(i.ToString(CultureInfo.InvariantCulture)); var s = 0; foreach (var shard in map.Shards) { if (hash >= shard.LowDistributionKey && hash < shard.HighDistributionKey) { ++results[s]; continue; } ++s; } } for (var i = 0; i < 5; i++) { Console.WriteLine("Shard {0}: {1}", i + 1, results[i]); } }
public void SampleIntegerTest() { for (var i = 0; i < 1000; i++) { var s = i.ToString(CultureInfo.InvariantCulture); Console.WriteLine(s.PadLeft(5) + ": " + (long)CityHasher.CityHash64String(s)); } }
public void SampleStringDistributionTest() { var names = new[] { "jodell", "mnigels", "todell", "aadams", "bjoel", "sjones" }; foreach (var name in names) { Console.WriteLine(name.PadLeft(15) + ": " + (long)CityHasher.CityHash64String(name)); } }
/// <summary> /// Gets the distribution key for sharding key for the DHard Set. /// </summary> /// <param name="shardingKey">The sharding key.</param> /// <returns>System.Int64.</returns> public long GetDistributionKeyForShardingKey(string shardingKey) { return((long)CityHasher.CityHash64String(shardingKey)); }
private static long GetDistributionKey(int shardingKey) { return(CityHasher.CityHash64StringGetLong(shardingKey.ToString(CultureInfo.InvariantCulture))); }
private static long GetDistributionKey(string shardingKey) { return(CityHasher.CityHash64StringGetLong(shardingKey)); }