public IShardStrategy NewShardStrategy(IEnumerable<ShardId> shardIds) { var loadBalancer = new RoundRobinShardLoadBalancer(shardIds); var pss = new RoundRobinShardSelectionStrategy(loadBalancer); IShardResolutionStrategy prs = new AllShardsShardResolutionStrategy(shardIds); IShardAccessStrategy pas = new SequentialShardAccessStrategy(); return new ShardStrategyImpl(pss, prs, pas); }
public IShardStrategy NewShardStrategy(IEnumerable <ShardId> shardIds) { var loadBalancer = new RoundRobinShardLoadBalancer(shardIds); var pss = new FirmShardSelectionStrategy(loadBalancer); IShardResolutionStrategy prs = new AllShardsShardResolutionStrategy(shardIds); IShardAccessStrategy pas = new SequentialShardAccessStrategy(); return(new ShardStrategyImpl(pss, prs, pas)); }
public ShardStrategy(IDictionary<string, IAsyncFilesCommands> shards) { if (shards == null) throw new ArgumentNullException("shards"); if (shards.Count == 0) throw new ArgumentException("Shards collection must have at least one item", "shards"); this.shards = new Dictionary<string, IAsyncFilesCommands>(shards, StringComparer.OrdinalIgnoreCase); Conventions = shards.First().Value.Conventions.Clone(); ShardAccessStrategy = new SequentialShardAccessStrategy(); ShardResolutionStrategy = new DefaultShardResolutionStrategy(shards.Keys, this); ModifyFileName = (convention, shardId, documentId) => convention.IdentityPartsSeparator + shardId + convention.IdentityPartsSeparator + documentId; }
public ShardStrategy() { ShardAccessStrategy = new SequentialShardAccessStrategy(); }