static void Main(string[] args) { StorageProxy.port = args[0]; StorageProxy.countNode = args[1]; for (int i = 2; i < int.Parse(StorageProxy.countNode) + 2; i++) { Console.WriteLine(args[i]); StorageProxy.nodePorts.Add(args[i]); } StorageProxy.keyBucketTable = StorageProxy.LoadKeyBucketTable("key_bucket.txt"); Console.WriteLine(StorageProxy.keyBucketTable.Count); StorageProxy.bucketShardTable = StorageProxy.LoadBucketShardTable("bucket_shard.txt"); string baseAddress = "http://localhost:" + StorageProxy.port + "/"; using (WebApp.Start<OwinSelfHostSample.Startup>(url: baseAddress)) { Console.WriteLine("Proxy starts on port " + StorageProxy.port); Console.WriteLine("Press any key to quit."); RelocationHandler relocHandler = new RelocationHandler(); relocHandler.Reshard(); Console.ReadLine(); } }
public void Reshard() { var oldTable = StorageProxy.LoadBucketShardTable("old_bucket_shard.txt"); foreach (var row in oldTable) { Console.WriteLine("old shard " + row.Value); Console.WriteLine("new shard " + StorageProxy.bucketShardTable[row.Key]); if (row.Value != StorageProxy.bucketShardTable[row.Key]) { new ProxyController().SendOn(StorageProxy.keyBucketTable[row.Key], row.Value, StorageProxy.bucketShardTable[row.Key]); } } }