public RiakPersistenceStrategy(IRiakClusterConfiguration riakClusterConfiguration, IEventReaderWriterPair eventReaderWriterPair) { if (riakClusterConfiguration == null) throw new ArgumentNullException("riakClusterConfiguration"); if (eventReaderWriterPair == null) throw new ArgumentNullException("eventReaderWriterPair"); _riakClient = new RiakCluster(riakClusterConfiguration, new RiakConnectionFactory()).CreateClient(); _storer = new RiakStorer(_riakClient, eventReaderWriterPair.Writer); _loader = new RiakLoader(_riakClient, eventReaderWriterPair.Reader); }
public RiakPersistenceStrategy(IRiakClusterConfiguration riakClusterConfiguration, IEventReaderWriterPair eventReaderWriterPair) { if (riakClusterConfiguration == null) throw new ArgumentNullException("riakClusterConfiguration"); if (eventReaderWriterPair == null) throw new ArgumentNullException("eventReaderWriterPair"); _riakClusterConfiguration = riakClusterConfiguration; _storer = new RiakStorer(eventReaderWriterPair.Writer); _loader = new RiakLoader(eventReaderWriterPair.Reader); }
public RiakCluster(IRiakClusterConfiguration clusterConfiguration, IRiakConnectionFactory connectionFactory) { _nodePollTime = clusterConfiguration.NodePollTime; _nodes = clusterConfiguration.RiakNodes.Select(rn => new RiakNode(rn, connectionFactory)).Cast <IRiakNode>().ToList(); _loadBalancer = new RoundRobinStrategy(); _loadBalancer.Initialise(_nodes); _offlineNodes = new ConcurrentQueue <IRiakNode>(); _defaultRetryCount = clusterConfiguration.DefaultRetryCount; RetryWaitTime = clusterConfiguration.DefaultRetryWaitTime; Task.Factory.StartNew(NodeMonitor); }
public RiakCluster(IRiakClusterConfiguration clusterConfiguration, IRiakConnectionFactory connectionFactory) { _nodePollTime = clusterConfiguration.NodePollTime; _nodes = clusterConfiguration.RiakNodes.Select(rn => new RiakNode(rn, connectionFactory)).Cast <IRiakNode>().ToList(); _loadBalancer = new RoundRobinStrategy(); _loadBalancer.Initialise(_nodes); _offlineNodes = new ConcurrentQueue <IRiakNode>(); _defaultRetryCount = clusterConfiguration.DefaultRetryCount; RetryWaitTime = clusterConfiguration.DefaultRetryWaitTime; // node monitor is now asynchronous, just triggered by timer! _nodePollTimer = new Timer(state => NodeMonitorCycle(), null, _nodePollTime, Timeout.Infinite); }
public RiakSecurityManagerTests() { clusterConfig = RiakClusterConfiguration.LoadFromConfig("riakConfiguration"); Assert.IsNotNull(clusterConfig, "riakConfiguration is not present?"); Assert.IsNotNull(clusterConfig.Authentication, "Authentication should NOT be null"); noAuthClusterConfig = RiakClusterConfiguration.LoadFromConfig("riakNoAuthConfiguration"); Assert.IsNotNull(noAuthClusterConfig, "riakNoAuthConfiguration is not present?"); Assert.IsNotNull(noAuthClusterConfig.Authentication, "Authentication should NOT be null"); certSubjectOnlyClusterConfig = RiakClusterConfiguration.LoadFromConfig("riakCertSubjectOnlyConfiguration"); Assert.IsNotNull(certSubjectOnlyClusterConfig, "riakCertSubjectOnlyConfiguration is not present?"); Assert.IsNotNull(certSubjectOnlyClusterConfig.Authentication, "Authentication should NOT be null"); }
public RiakCluster(IRiakClusterConfiguration clusterConfiguration) { _riakConnection = new RiakConnection(); _nodePollTime = clusterConfiguration.NodePollTime; _nodes = clusterConfiguration.RiakNodes.Select(riakNodeConfiguration => new RiakNode(riakNodeConfiguration)) .Cast <IRiakNode>() .ToList(); _loadBalancer = new RoundRobinStrategy(); _loadBalancer.Initialise(_nodes); _offlineNodes = new ConcurrentQueue <IRiakNode>(); Task.Factory.StartNew(NodeMonitor); }
public void ConfigurationLoadsProperly() { int twoHundredMillis = 200; int fourSecsAsMillis = 4000; int fiveSecsAsMillis = 5000; var fileName = Path.GetTempFileName(); try { File.WriteAllText(fileName, Cfg1); IRiakClusterConfiguration config = RiakClusterConfiguration.LoadFromConfig("riakConfig", fileName); Assert.IsTrue(config.UseTtbEncoding); config.DefaultRetryCount.ShouldEqual(3); config.DefaultRetryWaitTime.ShouldEqual((Timeout)twoHundredMillis); config.NodePollTime.ShouldEqual((Timeout)fiveSecsAsMillis); config.RiakNodes.Count().ShouldEqual(2); var nodes = config.RiakNodes.ToArray(); IRiakNodeConfiguration node1 = nodes[0]; node1.Name.ShouldEqual("node1"); node1.HostAddress.ShouldEqual("host1"); node1.PbcPort.ShouldEqual(8081); node1.PoolSize.ShouldEqual(5); Assert.IsTrue(node1.UseTtbEncoding); Assert.IsTrue(node1.ExternalLoadBalancer); node1.NetworkConnectTimeout.ShouldEqual((Timeout)fourSecsAsMillis); node1.NetworkReadTimeout.ShouldEqual((Timeout)fourSecsAsMillis); node1.NetworkWriteTimeout.ShouldEqual((Timeout)fourSecsAsMillis); IRiakNodeConfiguration node2 = nodes[1]; node2.Name.ShouldEqual("node2"); node2.HostAddress.ShouldEqual("host2"); node2.PbcPort.ShouldEqual(8081); node2.PoolSize.ShouldEqual(6); Assert.IsFalse(node2.UseTtbEncoding); Assert.IsFalse(node2.ExternalLoadBalancer); node2.NetworkConnectTimeout.ShouldEqual((Timeout)fiveSecsAsMillis); node2.NetworkReadTimeout.ShouldEqual((Timeout)fiveSecsAsMillis); node2.NetworkWriteTimeout.ShouldEqual((Timeout)fiveSecsAsMillis); } finally { File.Delete(fileName); } }
/// <summary> /// Initializes a new instance of the <see cref="RiakCluster"/> class. /// </summary> /// <param name="clusterConfig">The <see cref="IRiakClusterConfiguration"/> to use for this RiakCluster.</param> /// <param name="connectionFactory">The <see cref="IRiakConnectionFactory"/> instance to use for this RiakCluster.</param> /// <exception cref="ArgumentNullException">If <paramref name="clusterConfig" /> contains no node information.</exception> public RiakCluster(IRiakClusterConfiguration clusterConfig, IRiakConnectionFactory connectionFactory) { nodePollTime = clusterConfig.NodePollTime; defaultRetryCount = clusterConfig.DefaultRetryCount; RetryWaitTime = clusterConfig.DefaultRetryWaitTime; nodes = clusterConfig.RiakNodes.Select(rn => new RiakNode(rn, clusterConfig.Authentication, connectionFactory)).Cast <IRiakNode>().ToList(); loadBalancer = new RoundRobinStrategy(); loadBalancer.Initialise(nodes); offlineNodes = new ConcurrentQueue <IRiakNode>(); ct = cts.Token; monitorTask = Task.Factory.StartNew(NodeMonitor, ct); }
public RiakMapReduceTests(string section = "riak1NodeConfiguration") { ClusterConfig = RiakClusterConfiguration.LoadFromConfig(section); }
/// <summary> /// Initializes a new instance of the <see cref="RiakCluster"/> class using the default connection factory. /// </summary> /// <param name="clusterConfig">The <see cref="IRiakClusterConfiguration"/> to use for this RiakCluster.</param> /// <exception cref="ArgumentNullException">If <paramref name="clusterConfig" /> contains no node information.</exception> public RiakCluster(IRiakClusterConfiguration clusterConfig) : this(clusterConfig, new RiakConnectionFactory()) { }