public DistributedHashTableStorage(
     string database,
     IDistributedHashTableNode distributedHashTableNode)
 {
     try
     {
         hashTable = new PersistentHashTable.PersistentHashTable(database);
         hashTable.Initialize();
     }
     catch (Exception)
     {
         try
         {
             hashTable.Dispose();
         }
         catch
         {
             // not much to do if we fail here
         }
         throw;
     }
     this.distributedHashTableNode = distributedHashTableNode;
     distributedHashTableNode.Storage = this;
     Replication = new DistributedHashTableNodeReplication(hashTable);
 }
        public DistributedHashTableStorageHost(
            Uri master,
            string name,
            int port)
        {
            Endpoint = new NodeEndpoint
            {
                Sync = new Uri("rhino.dht://" + Environment.MachineName + ":" + port + "/"),
                Async = new Uri("rhino.queues://" + Environment.MachineName + ":" + (port + 1) + "/replication")
            };
            queueManager = new QueueManager(new IPEndPoint(IPAddress.Any, port + 1), name + ".queue.esent");
            queueManager.CreateQueues("replication");
            node = new DistributedHashTableNode(
                new DistributedHashTableMasterClient(master),
                new ThreadPoolExecuter(),
                new BinaryMessageSerializer(),
                Endpoint,
                queueManager,
                new NonPooledDistributedHashTableNodeFactory()
                );
            var dhtStorage = new DistributedHashTableStorage(name + ".data.esent", node);
            replication = dhtStorage.Replication;
            storage = dhtStorage;

            listener = new TcpListener(
                Socket.OSSupportsIPv6 ? IPAddress.IPv6Any : IPAddress.Any,
                port);
        }
Example #3
0
 public DistributedHashTableStorage(
     string database,
     IDistributedHashTableNode distributedHashTableNode)
 {
     try
     {
         hashTable = new PersistentHashTable.PersistentHashTable(database);
         hashTable.Initialize();
     }
     catch (Exception)
     {
         try
         {
             hashTable.Dispose();
         }
         catch
         {
             // not much to do if we fail here
         }
         throw;
     }
     this.distributedHashTableNode    = distributedHashTableNode;
     distributedHashTableNode.Storage = this;
     Replication = new DistributedHashTableNodeReplication(hashTable);
 }
        public DistributedHashTableStorageHost(
            Uri master,
            string name,
            int port)
        {
            Endpoint = new NodeEndpoint
            {
                Sync  = new Uri("rhino.dht://" + Environment.MachineName + ":" + port + "/"),
                Async = new Uri("rhino.queues://" + Environment.MachineName + ":" + (port + 1) + "/replication")
            };
            queueManager = new QueueManager(new IPEndPoint(IPAddress.Any, port + 1), name + ".queue.esent");
            queueManager.CreateQueues("replication");
            node = new DistributedHashTableNode(
                new DistributedHashTableMasterClient(master),
                new ThreadPoolExecuter(),
                new BinaryMessageSerializer(),
                Endpoint,
                queueManager,
                new NonPooledDistributedHashTableNodeFactory()
                );
            var dhtStorage = new DistributedHashTableStorage(name + ".data.esent", node);

            replication = dhtStorage.Replication;
            storage     = dhtStorage;

            listener = new TcpListener(
                Socket.OSSupportsIPv6 ? IPAddress.IPv6Any : IPAddress.Any,
                port);
        }
Example #5
0
 public WritingValues()
 {
     node            = MockRepository.GenerateStub <IDistributedHashTableNode>();
     topologyVersion = 2;
     node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
     distributedHashTableStorage = new DistributedHashTableStorage("test.esent",
                                                                   node);
 }
 public WhenThereAreNoKeysInTable()
 {
     node            = MockRepository.GenerateStub <IDistributedHashTableNode>();
     topologyVersion = 7;
     node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
     distributedHashTableStorage = new DistributedHashTableStorage("test.esent",
                                                                   node);
     replication = distributedHashTableStorage.Replication;
 }
 public OnlineSegmentReplicationCommand(
     NodeEndpoint endpoint,
     Segment[] segments,
     ReplicationType type,
     IDistributedHashTableNode node,
     IDistributedHashTableNodeReplicationFactory factory)
 {
     this.endpoint = endpoint;
     this.segments = segments;
     this.type     = type;
     this.node     = node;
     this.factory  = factory;
 }
            public ReadingValues()
            {
                node = MockRepository.GenerateStub<IDistributedHashTableNode>();
                topologyVersion = 1;
                node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
                distributedHashTableStorage = new DistributedHashTableStorage("test.esent",
                                                                              node);

                distributedHashTableStorage.Put(topologyVersion, new ExtendedPutRequest
                {
                    Key = "test",
                    Bytes = new byte[]{1,2,4},
                    Segment = 0,
                });
            }
Example #9
0
            public ReadingValues()
            {
                node            = MockRepository.GenerateStub <IDistributedHashTableNode>();
                topologyVersion = 1;
                node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
                distributedHashTableStorage = new DistributedHashTableStorage("test.esent",
                                                                              node);

                distributedHashTableStorage.Put(topologyVersion, new ExtendedPutRequest
                {
                    Key     = "test",
                    Bytes   = new byte[] { 1, 2, 4 },
                    Segment = 0,
                });
            }
 public WhenThereAreKeysInTable()
 {
     node            = MockRepository.GenerateStub <IDistributedHashTableNode>();
     topologyVersion = 9;
     node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
     distributedHashTableStorage = new DistributedHashTableStorage("test.esent",
                                                                   node);
     replication = distributedHashTableStorage.Replication;
     putResult   = distributedHashTableStorage.Put(topologyVersion, new ExtendedPutRequest
     {
         Tag     = 0,
         Bytes   = new byte[] { 1 },
         Key     = "test",
         Segment = 0
     })[0];
 }
 public WhenThereAreKeysInTable()
 {
     node = MockRepository.GenerateStub<IDistributedHashTableNode>();
     topologyVersion = 9;
     node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
     distributedHashTableStorage = new DistributedHashTableStorage("test.esent",
                                                                   node);
     replication = distributedHashTableStorage.Replication;
     putResult = distributedHashTableStorage.Put(topologyVersion, new ExtendedPutRequest
     {
         Tag = 0,
         Bytes = new byte[] {1},
         Key = "test",
         Segment = 0
     })[0];
 }
 public OnlineSegmentReplicationCommandTest()
 {
     node = MockRepository.GenerateStub<IDistributedHashTableNode>();
     replication = MockRepository.GenerateStub<IDistributedHashTableNodeReplication>();
     endpoint = NodeEndpoint.ForTest(1);
     node.Stub(x => x.Endpoint).Return(NodeEndpoint.ForTest(2));
     storage = MockRepository.GenerateStub<IDistributedHashTableStorage>();
     node.Storage = storage;
     node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
     var factory = MockRepository.GenerateStub<IDistributedHashTableNodeReplicationFactory>();
     factory.Stub(x => x.Create(null)).IgnoreArguments().Return(replication);
     command = new OnlineSegmentReplicationCommand(
         endpoint,
         new[] { new Segment { Index = 0 }, new Segment { Index = 1 }, },
         ReplicationType.Ownership,
         node,
         factory);
 }
Example #13
0
        public OnlineSegmentReplicationCommandTest()
        {
            node        = MockRepository.GenerateStub <IDistributedHashTableNode>();
            replication = MockRepository.GenerateStub <IDistributedHashTableNodeReplication>();
            endpoint    = NodeEndpoint.ForTest(1);
            node.Stub(x => x.Endpoint).Return(NodeEndpoint.ForTest(2));
            storage      = MockRepository.GenerateStub <IDistributedHashTableStorage>();
            node.Storage = storage;
            node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
            var factory = MockRepository.GenerateStub <IDistributedHashTableNodeReplicationFactory>();

            factory.Stub(x => x.Create(null)).IgnoreArguments().Return(replication);
            command = new OnlineSegmentReplicationCommand(
                endpoint,
                new[] { new Segment {
                            Index = 0
                        }, new Segment {
                            Index = 1
                        }, },
                ReplicationType.Ownership,
                node,
                factory);
        }
 public WritingValues()
 {
     node = MockRepository.GenerateStub<IDistributedHashTableNode>();
     topologyVersion = 2;
     node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
     distributedHashTableStorage = new DistributedHashTableStorage("test.esent",
                                                                   node);
 }
 public WhenThereAreNoKeysInTable()
 {
     node = MockRepository.GenerateStub<IDistributedHashTableNode>();
     topologyVersion = 7;
     node.Stub(x => x.GetTopologyVersion()).Return(topologyVersion);
     distributedHashTableStorage = new DistributedHashTableStorage("test.esent",
                                                                   node);
     replication = distributedHashTableStorage.Replication;
 }