Package voldemort.cluster

Examples of voldemort.cluster.Cluster


                                                String clusterFile,
                                                String storeFile,
                                                Properties properties,
                                                Cluster customCluster) throws IOException {
        boolean started = false;
        Cluster cluster = null;

        SocketStoreFactory socketStoreFactory = new ClientRequestExecutorPool(2,
                                                                              10000,
                                                                              100000,
                                                                              32 * 1024);
 
View Full Code Here


        SocketStoreFactory socketStoreFactory = new ClientRequestExecutorPool(2,
                                                                              10000,
                                                                              100000,
                                                                              32 * 1024);
        Cluster cluster = null;
        try {
            cluster = ServerTestUtils.startVoldemortCluster(servers.length,
                                                            servers,
                                                            partitionMap,
                                                            socketStoreFactory,
View Full Code Here

        SocketStoreFactory socketStoreFactory = new ClientRequestExecutorPool(2,
                                                                              10000,
                                                                              100000,
                                                                              32 * 1024);
        try {
            Cluster cluster = ServerTestUtils.startVoldemortCluster(1,
                                                                    servers,
                                                                    partitionMap,
                                                                    socketStoreFactory,
                                                                    true,
                                                                    null,
View Full Code Here

        RebalanceController rebalanceController = new RebalanceController(bootstrapURL,
                                                                          parallelism,
                                                                          proxyPauseSec);

        Cluster currentCluster = rebalanceController.getCurrentCluster();
        List<StoreDefinition> currentStoreDefs = rebalanceController.getCurrentStoreDefs();
        // If this test doesn't pass, something is wrong in prod!
        RebalanceUtils.validateClusterStores(currentCluster, currentStoreDefs);

        // Determine final cluster/stores and validate them
        String finalClusterXML = (String) options.valueOf("final-cluster");
        Cluster finalCluster = new ClusterMapper().readCluster(new File(finalClusterXML));

        List<StoreDefinition> finalStoreDefs = currentStoreDefs;
        if(options.has("final-stores")) {
            String storesXML = (String) options.valueOf("final-stores");
            finalStoreDefs = new StoreDefinitionsMapper().readStoreList(new File(storesXML));
View Full Code Here

        }
    }

    public void registerSystemEngine(StorageEngine<ByteArray, byte[], byte[]> engine) {

        Cluster cluster = this.metadata.getCluster();
        storeRepository.addStorageEngine(engine);

        /* Now add any store wrappers that are enabled */
        Store<ByteArray, byte[], byte[]> store = engine;

        if(voldemortConfig.isVerboseLoggingEnabled())
            store = new LoggingStore<ByteArray, byte[], byte[]>(store,
                                                                cluster.getName(),
                                                                SystemTime.INSTANCE);

        if(voldemortConfig.isMetadataCheckingEnabled())
            store = new InvalidMetadataCheckingStore(metadata.getNodeId(), store, metadata);

View Full Code Here

     */
    public void registerEngine(StorageEngine<ByteArray, byte[], byte[]> engine,
                               boolean isReadOnly,
                               String storeType,
                               StoreDefinition storeDef) {
        Cluster cluster = this.metadata.getCluster();
        storeRepository.addStorageEngine(engine);

        /* Now add any store wrappers that are enabled */
        Store<ByteArray, byte[], byte[]> store = engine;

        boolean isMetadata = store.getName().compareTo(MetadataStore.METADATA_STORE_NAME) == 0;
        boolean isSlop = storeType.compareTo("slop") == 0;
        boolean isView = storeType.compareTo(ViewStorageConfiguration.TYPE_NAME) == 0;

        if(voldemortConfig.isVerboseLoggingEnabled())
            store = new LoggingStore<ByteArray, byte[], byte[]>(store,
                                                                cluster.getName(),
                                                                SystemTime.INSTANCE);
        if(!isSlop) {
            if(!isReadOnly && !isMetadata && !isView) {
                // wrap store to enforce retention policy
                if(voldemortConfig.isEnforceRetentionPolicyOnRead() && storeDef != null) {
                    RetentionEnforcingStore retentionEnforcingStore = new RetentionEnforcingStore(store,
                                                                                                  storeDef,
                                                                                                  voldemortConfig.isDeleteExpiredValuesOnRead(),
                                                                                                  SystemTime.INSTANCE);
                    metadata.addMetadataStoreListener(store.getName(), retentionEnforcingStore);
                    store = retentionEnforcingStore;
                }

                if(voldemortConfig.isEnableRebalanceService()) {
                    ProxyPutStats proxyPutStats = new ProxyPutStats(aggregatedProxyPutStats);
                    if(voldemortConfig.isJmxEnabled()) {
                        JmxUtils.registerMbean(proxyPutStats,
                                               JmxUtils.createObjectName("voldemort.store.rebalancing",
                                                                         engine.getName()
                                                                                 + "-proxy-puts"));
                    }
                    store = new RedirectingStore(store,
                                                 metadata,
                                                 storeRepository,
                                                 failureDetector,
                                                 storeFactory,
                                                 proxyPutWorkerPool,
                                                 proxyPutStats);
                    if(voldemortConfig.isJmxEnabled()) {
                        MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
                        ObjectName name = null;
                        if(this.voldemortConfig.isEnableJmxClusterName())
                            name = JmxUtils.createObjectName(cluster.getName()
                                                                     + "."
                                                                     + JmxUtils.getPackageName(RedirectingStore.class),
                                                             store.getName());
                        else
                            name = JmxUtils.createObjectName(JmxUtils.getPackageName(RedirectingStore.class),
View Full Code Here

                   || metaKey.equals(MetadataStore.REBALANCING_SOURCE_CLUSTER_XML)) {
                    if(!Utils.isReadableFile(metaFile)) {
                        throw new VoldemortException("Cluster xml file path incorrect");
                    }
                    ClusterMapper mapper = new ClusterMapper();
                    Cluster newCluster = mapper.readCluster(new File(metaFile));
                    doMetaSet(adminClient, nodeIds, metaKey, mapper.writeCluster(newCluster));
                } else if(metaKey.equals(MetadataStore.STORES_KEY)) {
                    if(!Utils.isReadableFile(metaFile)) {
                        throw new VoldemortException("Stores definition xml file path incorrect");
                    }
                    StoreDefinitionsMapper mapper = new StoreDefinitionsMapper();
                    List<StoreDefinition> newStoreDefs = mapper.readStoreList(new File(metaFile));
                    StoreDefinitionUtils.validateSchemasAsNeeded(newStoreDefs);

                    // original metadata
                    Integer nodeIdToGetStoreXMLFrom = nodeIds.iterator().next();
                    Versioned<String> storesXML = adminClient.metadataMgmtOps.getRemoteMetadata(nodeIdToGetStoreXMLFrom,
                                                                                                MetadataStore.STORES_KEY);

                    List<StoreDefinition> oldStoreDefs = mapper.readStoreList(new StringReader(storesXML.getValue()));

                    doMetaSet(adminClient, nodeIds, metaKey, mapper.writeStoreList(newStoreDefs));
                    if(!allNodes) {
                        System.err.println("WARNING: Metadata version update of stores goes to all servers, "
                                           + "although this set-metadata oprations only goes to node: ");
                        for(Integer nodeId: nodeIds) {
                            System.err.println(nodeId);
                        }
                    }
                    doMetaUpdateVersionsOnStores(adminClient, oldStoreDefs, newStoreDefs);
                } else if(metaKey.equals(MetadataStore.SLOP_STREAMING_ENABLED_KEY)
                          || metaKey.equals(MetadataStore.PARTITION_STREAMING_ENABLED_KEY)
                          || metaKey.equals(MetadataStore.READONLY_FETCH_ENABLED_KEY)) {
                    doMetaSet(adminClient, nodeIds, metaKey, metaValue);
                } else if(metaKey.equals(KEY_OFFLINE)) {
                    for(Integer nodeId: nodeIds) {
                        adminClient.metadataMgmtOps.setRemoteOfflineState(nodeId,
                                                                          Boolean.parseBoolean(metaValue));
                    }
                } else if(metaKey.equals(MetadataStore.REBALANCING_STEAL_INFO)) {
                    if(!Utils.isReadableFile(metaFile)) {
                        throw new VoldemortException("Rebalancing steal info file path incorrect");
                    }
                    String rebalancingStealInfoJsonString = FileUtils.readFileToString(new File(metaFile));
                    RebalancerState state = RebalancerState.create(rebalancingStealInfoJsonString);
                    doMetaSet(adminClient, nodeIds, metaKey, state.toJsonString());
                } else {
                    throw new VoldemortException("Incorrect metadata key");
                }
            } else if(meta.size() == 4) {
                // set metadata pair cluster.xml, stores.xml
                String clusterFile, storesFile;

                if(meta.get(0).equals(MetadataStore.CLUSTER_KEY)
                   && meta.get(2).equals(MetadataStore.STORES_KEY)) {
                    clusterFile = meta.get(1);
                    storesFile = meta.get(3);
                } else if(meta.get(0).equals(MetadataStore.STORES_KEY)
                          && meta.get(2).equals(MetadataStore.CLUSTER_KEY)) {
                    storesFile = meta.get(1);
                    clusterFile = meta.get(3);
                } else {
                    throw new VoldemortException("meta set-pair keys must be <cluster.xml, stores.xml>");
                }

                clusterFile = clusterFile.replace("~", System.getProperty("user.home"));
                storesFile = storesFile.replace("~", System.getProperty("user.home"));

                ClusterMapper clusterMapper = new ClusterMapper();
                StoreDefinitionsMapper storeDefsMapper = new StoreDefinitionsMapper();

                // original metadata
                Integer nodeIdToGetStoreXMLFrom = nodeIds.iterator().next();
                Versioned<String> storesXML = adminClient.metadataMgmtOps.getRemoteMetadata(nodeIdToGetStoreXMLFrom,
                                                                                            MetadataStore.STORES_KEY);

                List<StoreDefinition> oldStoreDefs = storeDefsMapper.readStoreList(new StringReader(storesXML.getValue()));

                if(!Utils.isReadableFile(clusterFile)) {
                    throw new VoldemortException("Cluster xml file path incorrect");
                }
                Cluster cluster = clusterMapper.readCluster(new File(clusterFile));

                if(!Utils.isReadableFile(storesFile)) {
                    throw new VoldemortException("Stores definition xml file path incorrect");
                }
                List<StoreDefinition> newStoreDefs = storeDefsMapper.readStoreList(new File(storesFile));
View Full Code Here

public class ClusterMapperTest extends TestCase {

    public void testClusterMapperValues() {
        ClusterMapper mapper = new ClusterMapper();
        Cluster cluster = mapper.readCluster(new StringReader(VoldemortTestConstants.getOneNodeClusterXml()));
        assertEquals(cluster.getNumberOfNodes(), 1);
        assertEquals(cluster.getName(), "mycluster");
        Node node = cluster.getNodes().iterator().next();
        assertNotNull(node);
        assertEquals(node.getId(), 0);
        List<Integer> tags = node.getPartitionIds();
        assertTrue("Tag not found.", tags.contains(0));
        assertTrue("Tag not found.", tags.contains(1));
View Full Code Here

    }

    public void testZoneProximityList() {
        ClusterMapper mapper = new ClusterMapper();
        Cluster cluster = mapper.readCluster(new StringReader(VoldemortTestConstants.getInvalidFourNodeClusterWithZonesXml()));

        Zone expectedZone0 = new Zone(0, new ArrayList<Integer>(Arrays.asList(1, 2)));
        Zone expectedZone1 = new Zone(1, new ArrayList<Integer>(Arrays.asList(0, 2)));
        Zone expectedZone2 = new Zone(2, new ArrayList<Integer>(Arrays.asList(1, 0)));
        assertEquals(cluster.getNumberOfNodes(), 4);
        Zone zone0 = cluster.getZoneById(0);
        Zone zone1 = cluster.getZoneById(1);
        Zone zone2 = cluster.getZoneById(2);

        assertEquals("zone0", expectedZone0, zone0);
        assertEquals("zone1", expectedZone1, zone1);
        assertEquals("zone2", expectedZone2, zone2);
    }
View Full Code Here

        assertEquals("zone2", expectedZone2, zone2);
    }

    public void testOtherClusters() {
        ClusterMapper mapper = new ClusterMapper();
        Cluster cluster = mapper.readCluster(new StringReader(VoldemortTestConstants.getNineNodeClusterXml()));
        assertEquals(cluster.getNumberOfNodes(), 9);
        assertEquals(cluster.getZones().size(), 1);

        cluster = mapper.readCluster(new StringReader(VoldemortTestConstants.getTwoNodeClusterXml()));
        assertEquals(cluster.getNumberOfNodes(), 2);
        assertEquals(cluster.getZones().size(), 1);

        cluster = mapper.readCluster(new StringReader(VoldemortTestConstants.getFourNodeClusterWithZonesXml()));
        assertEquals(cluster.getNumberOfNodes(), 4);
        Collection<Zone> zones = cluster.getZones();
        assertEquals(zones.size(), 3);
        for(Zone zone: zones) {
            assertEquals(zone.getProximityList().size(), 2);
        }
    }
View Full Code Here

TOP

Related Classes of voldemort.cluster.Cluster

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.