public WhenUsingShardedServers() { const string server = "localhost"; const int port1 = 8079; const int port2 = 8081; path1 = GetPath("TestShardedDb1"); path2 = GetPath("TestShardedDb2"); NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(port1); NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(port2); company1 = new Company { Name = "Company1" }; company2 = new Company { Name = "Company2" }; server1 = GetNewServer(port1, path1); server2 = GetNewServer(port2, path2); shards = new List<IDocumentStore> { new DocumentStore { Identifier="Shard1", Url = "http://" + server +":"+port1}, new DocumentStore { Identifier="Shard2", Url = "http://" + server +":"+port2} }.ToDictionary(x => x.Identifier, x => x); shardResolution = MockRepository.GenerateStub<IShardResolutionStrategy>(); shardResolution.Stub(x => x.GenerateShardIdFor(company1)).Return("Shard1"); shardResolution.Stub(x => x.GenerateShardIdFor(company2)).Return("Shard2"); shardResolution.Stub(x => x.MetadataShardIdFor(company1)).Return("Shard1"); shardResolution.Stub(x => x.MetadataShardIdFor(company2)).Return("Shard1"); shardStrategy = new ShardStrategy(shards) { ShardResolutionStrategy = shardResolution }; }
public WhenUsingShardedServers() { const string server = "localhost"; const int port1 = 8079; const int port2 = 8081; company1 = new Company { Name = "Company1" }; company2 = new Company { Name = "Company2" }; server1 = GetNewServer(port1); server2 = GetNewServer(port2); shards = new List<IDocumentStore> { new DocumentStore { Identifier="Shard1", Url = "http://" + server +":"+port1}, new DocumentStore { Identifier="Shard2", Url = "http://" + server +":"+port2} }.ToDictionary(x => x.Identifier, x => x); shardResolution = MockRepository.GenerateStub<IShardResolutionStrategy>(); shardResolution.Stub(x => x.GenerateShardIdFor(Arg.Is(company1), Arg<ITransactionalDocumentSession>.Is.Anything)).Return("Shard1"); shardResolution.Stub(x => x.GenerateShardIdFor(Arg.Is(company2), Arg<ITransactionalDocumentSession>.Is.Anything)).Return("Shard2"); shardResolution.Stub(x => x.MetadataShardIdFor(company1)).Return("Shard1"); shardResolution.Stub(x => x.MetadataShardIdFor(company2)).Return("Shard1"); shardStrategy = new ShardStrategy(shards) { ShardResolutionStrategy = shardResolution }; }
public When_Using_Sharded_Servers() { server = "localhost"; port1 = 8080; port2 = 8081; path1 = GetPath("TestShardedDb1"); path2 = GetPath("TestShardedDb2"); RavenDbServer.EnsureCanListenToWhenInNonAdminContext(port1); RavenDbServer.EnsureCanListenToWhenInNonAdminContext(port2); company1 = new Company { Name = "Company1" }; company2 = new Company { Name = "Company2" }; server1 = GetNewServer(port1, path1); server2 = GetNewServer(port2, path2); shards = new Shards { new DocumentStore(server, port1) { Identifier="Shard1" }, new DocumentStore(server, port2) { Identifier="Shard2" } }; shardSelection = MockRepository.GenerateStub<IShardSelectionStrategy>(); shardSelection.Stub(x => x.SelectShardIdForNewObject(company1)).Return("Shard1"); shardSelection.Stub(x => x.SelectShardIdForNewObject(company2)).Return("Shard2"); shardResolution = MockRepository.GenerateStub<IShardResolutionStrategy>(); shardStrategy = MockRepository.GenerateStub<IShardStrategy>(); shardStrategy.Stub(x => x.ShardSelectionStrategy).Return(shardSelection); shardStrategy.Stub(x => x.ShardResolutionStrategy).Return(shardResolution); }
public ShardedBulkInsertOperation(string database, ShardedDocumentStore shardedDocumentStore) { this.database = database; this.shardedDocumentStore = shardedDocumentStore; shards = shardedDocumentStore.ShardStrategy.Shards; Bulks = new Dictionary <string, BulkInsertOperation>(); generateEntityIdOnTheClient = new GenerateEntityIdOnTheClient(shardedDocumentStore.Conventions, entity => AsyncHelpers.RunSync(() => shardedDocumentStore.Conventions.GenerateDocumentKeyAsync(database, DatabaseCommands, entity))); shardResolutionStrategy = shardedDocumentStore.ShardStrategy.ShardResolutionStrategy; shardStrategy = this.shardedDocumentStore.ShardStrategy; }
public ShardStrategyImpl(IShardSelectionStrategy shardSelectionStrategy, IShardResolutionStrategy shardResolutionStrategy, IShardAccessStrategy shardAccessStrategy) { Preconditions.CheckNotNull(shardSelectionStrategy); Preconditions.CheckNotNull(shardResolutionStrategy); Preconditions.CheckNotNull(shardAccessStrategy); this.shardSelectionStrategy = shardSelectionStrategy; this.shardResolutionStrategy = shardResolutionStrategy; this.shardAccessStrategy = shardAccessStrategy; }
public ShardedBulkInsertOperation(string database, ShardedDocumentStore shardedDocumentStore, BulkInsertOptions options) { this.database = database; this.shardedDocumentStore = shardedDocumentStore; this.options = options; shards = shardedDocumentStore.ShardStrategy.Shards; Bulks = new Dictionary<string, BulkInsertOperation>(); generateEntityIdOnTheClient = new GenerateEntityIdOnTheClient(shardedDocumentStore.Conventions, entity => AsyncHelpers.RunSync(() => shardedDocumentStore.Conventions.GenerateDocumentKeyAsync(database, DatabaseCommands, entity))); shardResolutionStrategy = shardedDocumentStore.ShardStrategy.ShardResolutionStrategy; shardStrategy = this.shardedDocumentStore.ShardStrategy; }
public WhenUsingShardedServers() { const string server = "localhost"; const int port1 = 8079; const int port2 = 8081; path1 = GetPath("TestShardedDb1"); path2 = GetPath("TestShardedDb2"); NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(port1); NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(port2); company1 = new Company { Name = "Company1" }; company2 = new Company { Name = "Company2" }; server1 = GetNewServer(port1, path1); server2 = GetNewServer(port2, path2); shards = new List <IDocumentStore> { new DocumentStore { Identifier = "Shard1", Url = "http://" + server + ":" + port1 }, new DocumentStore { Identifier = "Shard2", Url = "http://" + server + ":" + port2 } }.ToDictionary(x => x.Identifier, x => x); shardResolution = MockRepository.GenerateStub <IShardResolutionStrategy>(); shardResolution.Stub(x => x.GenerateShardIdFor(Arg.Is(company1), Arg <ITransactionalDocumentSession> .Is.Anything)).Return("Shard1"); shardResolution.Stub(x => x.GenerateShardIdFor(Arg.Is(company2), Arg <ITransactionalDocumentSession> .Is.Anything)).Return("Shard2"); shardResolution.Stub(x => x.MetadataShardIdFor(company1)).Return("Shard1"); shardResolution.Stub(x => x.MetadataShardIdFor(company2)).Return("Shard1"); shardStrategy = new ShardStrategy(shards) { ShardResolutionStrategy = shardResolution }; }