/// <summary> /// Calls FindKey remotely. /// </summary> /// <param name="remoteNode">The remote node on which to call FindKey.</param> /// <param name="key">The key to look up.</param> /// <param name="retryCount">The number of retries to attempt.</param> /// <returns>The value corresponding to the key, or empty string if not found.</returns> public static string CallFindKey(ChordNode remoteNode, ulong key, int retryCount) { ChordInstance instance = ChordServer.GetInstance(remoteNode); try { return(instance.FindKey(key)); } catch (System.Exception ex) { ChordServer.Log(LogLevel.Debug, "Remote Invoker", "CallFindKey error: {0}", ex.Message); if (retryCount > 0) { return(CallFindKey(remoteNode, key, --retryCount)); } else { ChordServer.Log(LogLevel.Debug, "Remote Invoker", "CallFindKey failed - error: {0}", ex.Message); return(string.Empty); } } }