Package voldemort.routing

Examples of voldemort.routing.RoutingStrategy


public class ConfigureNodesTest extends AbstractActionTest {

    @Test
    public void testConfigureNodes() throws Exception {
        RoutingStrategy routingStrategy = new RouteToAllStrategy(cluster.getNodes());
        BasicPipelineData<byte[]> pipelineData = new BasicPipelineData<byte[]>();
        ConfigureNodes<byte[], BasicPipelineData<byte[]>> action = new ConfigureNodes<byte[], BasicPipelineData<byte[]>>(pipelineData,
                                                                                                                         Event.COMPLETED,
                                                                                                                         failureDetector,
                                                                                                                         1,
View Full Code Here


        assertEquals(cluster.getNodes().size(), pipelineData.getNodes().size());
    }

    @Test(expected = InsufficientOperationalNodesException.class)
    public void testConfigureNodesNotEnoughNodes() throws Exception {
        RoutingStrategy routingStrategy = new RouteToAllStrategy(cluster.getNodes());
        BasicPipelineData<byte[]> pipelineData = new BasicPipelineData<byte[]>();
        ConfigureNodes<byte[], BasicPipelineData<byte[]>> action = new ConfigureNodes<byte[], BasicPipelineData<byte[]>>(pipelineData,
                                                                                                                         Event.COMPLETED,
                                                                                                                         failureDetector,
                                                                                                                         cluster.getNodes()
View Full Code Here

            fail();
    }

    @Test
    public void testConfigureNodesWithZones() throws Exception {
        RoutingStrategy routingStrategy = new ZoneRoutingStrategy(clusterWithZones,
                                                                  storeDef.getZoneReplicationFactor(),
                                                                  storeDef.getReplicationFactor());

        BasicPipelineData<byte[]> pipelineData = new BasicPipelineData<byte[]>();
        Pipeline pipeline = new Pipeline(Operation.PUT, 10000, TimeUnit.MILLISECONDS);
View Full Code Here

public class GetAllConfigureNodesTest extends AbstractActionTest {

    @Test
    public void testConfigureNodes() throws Exception {
        RoutingStrategy routingStrategy = new RouteToAllStrategy(cluster.getNodes());
        GetAllPipelineData pipelineData = new GetAllPipelineData();
        List<ByteArray> keys = new ArrayList<ByteArray>();

        for(int i = 0; i < 10; i++)
            keys.add(TestUtils.toByteArray("key-" + i));

        int preferred = cluster.getNumberOfNodes() - 1;

        GetAllConfigureNodes action = new GetAllConfigureNodes(pipelineData,
                                                               Event.COMPLETED,
                                                               failureDetector,
                                                               preferred,
                                                               preferred - 1,
                                                               routingStrategy,
                                                               keys,
                                                               null,
                                                               null,
                                                               null);

        Pipeline pipeline = new Pipeline(Operation.GET, 10000, TimeUnit.MILLISECONDS);
        pipeline.addEventAction(Event.STARTED, action);
        pipeline.addEvent(Event.STARTED);
        pipeline.execute();

        if(pipelineData.getFatalError() != null)
            throw pipelineData.getFatalError();

        for(ByteArray key: keys) {
            List<Node> allNodesList = routingStrategy.routeRequest(key.get());
            assertEquals(cluster.getNumberOfNodes(), allNodesList.size());

            List<Node> extraNodes = pipelineData.getKeyToExtraNodesMap().get(key);
            assertEquals(cluster.getNumberOfNodes() - preferred, extraNodes.size());
View Full Code Here

            failureDetector.recordException(node,
                                            0,
                                            new UnreachableStoreException("Test for "
                                                                          + getClass().getName()));

        RoutingStrategy routingStrategy = new RouteToAllStrategy(cluster.getNodes());
        GetAllPipelineData pipelineData = new GetAllPipelineData();

        GetAllConfigureNodes action = new GetAllConfigureNodes(pipelineData,
                                                               Event.COMPLETED,
                                                               failureDetector,
View Full Code Here

     * Checks if each node has the keys it is reponsible for returns false
     * otherwise
     */
    public boolean verifyKeysExist(int nodeIdToVerifyOn) {
        RoutingStrategyFactory factory = new RoutingStrategyFactory();
        RoutingStrategy storeRoutingStrategy = factory.updateRoutingStrategy(storeDef,
                                                                             adminClient.getAdminClientCluster());

        HashMap<Integer, ArrayList<String>> expectedNodeIdToKeys;
        expectedNodeIdToKeys = new HashMap();
        Collection<Node> nodesInCluster = adminClient.getAdminClientCluster().getNodes();
        for(Node node: nodesInCluster) {
            ArrayList<String> keysForNode = new ArrayList();
            expectedNodeIdToKeys.put(node.getId(), keysForNode);
        }
        for(int i = 0; i < NUM_KEYS_1; i++) {
            String key = i + "";
            String value = key;
            List<Node> nodeList = storeRoutingStrategy.routeRequest(key.getBytes());
            for(Node node: nodeList) {
                ArrayList<String> keysForNode = expectedNodeIdToKeys.get(node.getId());
                keysForNode.add(key);
            }
        }
View Full Code Here

                              StoreDefinition storeDef) {
        for(int i = 0; i < LOOP_COUNT;) {
            ByteArray key = new ByteArray(ByteUtils.md5(Integer.toString((int) (Math.random() * Integer.MAX_VALUE))
                                                               .getBytes()));
            byte[] value = "value".getBytes();
            RoutingStrategy routingStrategy = new RoutingStrategyFactory().updateRoutingStrategy(storeDef,
                                                                                                 metadata.getCluster());

            if(containsNodeId(routingStrategy.routeRequest(key.get()), nodeId)) {
                i++; // increment count
                switch(i % 4) {
                    case 0:
                        store.get(key, null);
                        break;
View Full Code Here

                      null);
        }

        // try fetching them from server0
        store = server0.getStoreRepository().getLocalStore(testStoreName);
        RoutingStrategy routing = server0.getMetadataStore().getRoutingStrategy(testStoreName);

        for(Entry<ByteArray, byte[]> entry: entryMap.entrySet()) {
            List<Node> nodes = routing.routeRequest(entry.getKey().get());
            if(hasNode(nodes, 0)) {
                assertTrue("ServerSideRouting should return keys from other nodes.",
                           ByteUtils.compare(entry.getValue(), store.get(entry.getKey(), null)
                                                                    .get(0)
                                                                    .getValue()) == 0);
View Full Code Here

        Store<ByteArray, byte[], byte[]> store = getStore(0, testStoreName);
        assertNotSame("Store '" + testStoreName + "' should not be null", null, store);

        VoldemortFilter filter = new VoldemortFilterImpl();
        int shouldFilterCount = 0;
        RoutingStrategy strategy = new RoutingStrategyFactory().updateRoutingStrategy(getStoreDef(),
                                                                                      getCluster());
        for(Pair<ByteArray, Versioned<byte[]>> pair: createEntries()) {
            if(Utils.nodeListToNodeIdList(strategy.routeRequest(pair.getFirst().get())).contains(0)) {
                store.put(pair.getFirst(), pair.getSecond(), null);
                if(!filter.accept(pair.getFirst(), pair.getSecond())) {
                    shouldFilterCount++;
                }
            }
View Full Code Here

        assertNotSame("Store '" + testStoreName + "' should not be null", null, store);

        Set<Pair<ByteArray, Versioned<byte[]>>> entrySet = createEntries();

        VoldemortFilter filter = new VoldemortFilterImpl();
        RoutingStrategy strategy = new RoutingStrategyFactory().updateRoutingStrategy(getStoreDef(),
                                                                                      getCluster());
        for(Pair<ByteArray, Versioned<byte[]>> pair: entrySet) {
            if(Utils.nodeListToNodeIdList(strategy.routeRequest(pair.getFirst().get())).contains(0))
                store.put(pair.getFirst(), pair.getSecond(), null);
        }

        // make delete stream call with filter
        getAdminClient().storeMntOps.deletePartitions(0,
                                                      testStoreName,
                                                      Lists.newArrayList(0, 1),
                                                      filter);

        // assert none of the filtered entries are returned.
        for(Pair<ByteArray, Versioned<byte[]>> entry: entrySet) {
            if(Utils.nodeListToNodeIdList(strategy.routeRequest(entry.getFirst().get())).contains(0)) {
                if(filter.accept(entry.getFirst(), entry.getSecond())) {
                    assertEquals("All entries should be deleted except the filtered ones.",
                                 0,
                                 store.get(entry.getFirst(), null).size());
                } else {
View Full Code Here

TOP

Related Classes of voldemort.routing.RoutingStrategy

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.