Search in sources :

Example 1 with Rebalancer

use of voldemort.server.rebalance.Rebalancer in project voldemort by voldemort.

the class RebalanceMetadataConsistencyTest method setUp.

@Before
public void setUp() {
    currentCluster = ServerTestUtils.getLocalCluster(3, new int[][] { { 0 }, { 1, 3 }, { 2 } });
    finalCluster = ServerTestUtils.getLocalCluster(3, new int[][] { { 0 }, { 1 }, { 2 }, { 3 } });
    rwStoreDefWithReplication = new StoreDefinitionBuilder().setName(testStoreNameRW).setType(BdbStorageConfiguration.TYPE_NAME).setKeySerializer(new SerializerDefinition("string")).setValueSerializer(new SerializerDefinition("string")).setRoutingPolicy(RoutingTier.CLIENT).setRoutingStrategyType(RoutingStrategyType.CONSISTENT_STRATEGY).setReplicationFactor(2).setPreferredReads(1).setRequiredReads(1).setPreferredWrites(1).setRequiredWrites(1).build();
    Store<String, String, String> innerStore = new InMemoryStorageEngine<String, String, String>("inner-store");
    innerStore.put(MetadataStore.CLUSTER_KEY, new Versioned<String>(new ClusterMapper().writeCluster(currentCluster)), null);
    innerStore.put(MetadataStore.STORES_KEY, new Versioned<String>(new StoreDefinitionsMapper().writeStoreList(Lists.newArrayList(rwStoreDefWithReplication))), null);
    rwStoreDefWithReplication2 = new StoreDefinitionBuilder().setName(testStoreNameRW2).setType(BdbStorageConfiguration.TYPE_NAME).setKeySerializer(new SerializerDefinition("string")).setValueSerializer(new SerializerDefinition("string")).setRoutingPolicy(RoutingTier.CLIENT).setRoutingStrategyType(RoutingStrategyType.CONSISTENT_STRATEGY).setReplicationFactor(2).setPreferredReads(1).setRequiredReads(1).setPreferredWrites(1).setRequiredWrites(1).build();
    metadataStore = MetadataStore.createInMemoryMetadataStore(innerStore, 0);
    rebalancer = new Rebalancer(null, metadataStore, null, null);
}
Also used : StoreDefinitionBuilder(voldemort.store.StoreDefinitionBuilder) Rebalancer(voldemort.server.rebalance.Rebalancer) InMemoryStorageEngine(voldemort.store.memory.InMemoryStorageEngine) StoreDefinitionsMapper(voldemort.xml.StoreDefinitionsMapper) ClusterMapper(voldemort.xml.ClusterMapper) SerializerDefinition(voldemort.serialization.SerializerDefinition) Before(org.junit.Before)

Example 2 with Rebalancer

use of voldemort.server.rebalance.Rebalancer in project voldemort by voldemort.

the class VoldemortServer method createBasicServices.

private List<VoldemortService> createBasicServices() {
    /* Services are given in the order they must be started */
    List<VoldemortService> services = new ArrayList<VoldemortService>();
    SchedulerService scheduler = new SchedulerService(voldemortConfig.getSchedulerThreads(), SystemTime.INSTANCE, voldemortConfig.canInterruptService());
    storageService = new StorageService(storeRepository, metadata, scheduler, voldemortConfig);
    asyncService = new AsyncOperationService(scheduler, ASYNC_REQUEST_CACHE_SIZE);
    jmxService = null;
    services.add(storageService);
    services.add(scheduler);
    services.add(asyncService);
    if (voldemortConfig.isAdminServerEnabled()) {
        Rebalancer rebalancer = null;
        if (voldemortConfig.isEnableRebalanceService()) {
            RebalancerService rebalancerService = new RebalancerService(storeRepository, metadata, voldemortConfig, asyncService, scheduler);
            services.add(rebalancerService);
            rebalancer = rebalancerService.getRebalancer();
        }
        SocketRequestHandlerFactory adminRequestHandlerFactory = new SocketRequestHandlerFactory(storageService, this.storeRepository, this.metadata, this.voldemortConfig, this.asyncService, scheduler, rebalancer, this);
        if (voldemortConfig.getUseNioConnector()) {
            logger.info("Using NIO Connector for Admin Service.");
            services.add(new NioSocketService(adminRequestHandlerFactory, identityNode.getAdminPort(), voldemortConfig.getAdminSocketBufferSize(), voldemortConfig.isNioAdminConnectorKeepAlive(), voldemortConfig.getNioAdminConnectorSelectors(), "admin-server", voldemortConfig.isJmxEnabled(), voldemortConfig.getNioAcceptorBacklog(), voldemortConfig.getNioSelectorMaxHeartBeatTimeMs()));
        } else {
            logger.info("Using BIO Connector for Admin Service.");
            services.add(new SocketService(adminRequestHandlerFactory, identityNode.getAdminPort(), voldemortConfig.getAdminCoreThreads(), voldemortConfig.getAdminMaxThreads(), voldemortConfig.getAdminSocketBufferSize(), "admin-server", voldemortConfig.isJmxEnabled()));
        }
    }
    if (voldemortConfig.isGossipEnabled()) {
        services.add(new GossipService(this.metadata, scheduler, voldemortConfig));
    }
    if (voldemortConfig.isJmxEnabled()) {
        jmxService = new JmxService(this, this.metadata.getCluster(), storeRepository, services);
        services.add(jmxService);
    }
    return ImmutableList.copyOf(services);
}
Also used : SchedulerService(voldemort.common.service.SchedulerService) Rebalancer(voldemort.server.rebalance.Rebalancer) JmxService(voldemort.server.jmx.JmxService) ArrayList(java.util.ArrayList) NioSocketService(voldemort.server.niosocket.NioSocketService) NioSocketService(voldemort.server.niosocket.NioSocketService) SocketService(voldemort.server.socket.SocketService) AsyncOperationService(voldemort.server.protocol.admin.AsyncOperationService) RebalancerService(voldemort.server.rebalance.RebalancerService) StorageService(voldemort.server.storage.StorageService) GossipService(voldemort.server.gossip.GossipService) VoldemortService(voldemort.common.service.VoldemortService) SocketRequestHandlerFactory(voldemort.server.protocol.SocketRequestHandlerFactory)

Aggregations

Rebalancer (voldemort.server.rebalance.Rebalancer)2 ArrayList (java.util.ArrayList)1 Before (org.junit.Before)1 SchedulerService (voldemort.common.service.SchedulerService)1 VoldemortService (voldemort.common.service.VoldemortService)1 SerializerDefinition (voldemort.serialization.SerializerDefinition)1 GossipService (voldemort.server.gossip.GossipService)1 JmxService (voldemort.server.jmx.JmxService)1 NioSocketService (voldemort.server.niosocket.NioSocketService)1 SocketRequestHandlerFactory (voldemort.server.protocol.SocketRequestHandlerFactory)1 AsyncOperationService (voldemort.server.protocol.admin.AsyncOperationService)1 RebalancerService (voldemort.server.rebalance.RebalancerService)1 SocketService (voldemort.server.socket.SocketService)1 StorageService (voldemort.server.storage.StorageService)1 StoreDefinitionBuilder (voldemort.store.StoreDefinitionBuilder)1 InMemoryStorageEngine (voldemort.store.memory.InMemoryStorageEngine)1 ClusterMapper (voldemort.xml.ClusterMapper)1 StoreDefinitionsMapper (voldemort.xml.StoreDefinitionsMapper)1