Package voldemort.cluster

Examples of voldemort.cluster.Node


    public void execute(Pipeline pipeline) {
        List<Node> nodes = pipelineData.getNodes();

        while(pipelineData.getNodeIndex() < nodes.size()
              && (pipelineData.getZoneResponses().size() + 1) < pipelineData.getZonesRequired()) {
            Node node = nodes.get(pipelineData.getNodeIndex());
            long start = System.nanoTime();

            try {
                Store<ByteArray, byte[], byte[]> store = stores.get(node.getId());
                V result = storeRequest.request(store);

                Response<ByteArray, V> response = new Response<ByteArray, V>(node,
                                                                             key,
                                                                             result,
                                                                             ((System.nanoTime() - start) / Time.NS_PER_MS));

                pipelineData.incrementSuccesses();
                pipelineData.getResponses().add(response);
                failureDetector.recordSuccess(response.getNode(), response.getRequestTime());
                pipelineData.getZoneResponses().add(node.getZoneId());
            } catch(Exception e) {
                long requestTime = (System.nanoTime() - start) / Time.NS_PER_MS;

                if(handleResponseError(e, node, requestTime, pipeline, failureDetector))
                    return;
View Full Code Here


            }
            return sands;
        }

        private <T extends Message.Builder> T sendAndReceive(int nodeId, Message message, T builder) {
            Node node = currentCluster.getNodeById(nodeId);
            SocketDestination destination = new SocketDestination(node.getHost(),
                                                                  node.getAdminPort(),
                                                                  RequestFormatType.ADMIN_PROTOCOL_BUFFERS);
            SocketAndStreams sands = null;
            try {
                sands = getSocketAndStreams(destination);
                return innerSendAndReceive(sands, message, builder);
View Full Code Here

                }
                partitions.add(partition);
            }

        if(restPort == -1) {
            return new Node(id, host, httpPort, socketPort, adminPort, zoneId, partitions);
        } else {
            return new Node(id, host, httpPort, socketPort, adminPort, zoneId, partitions, restPort);
        }
    }
View Full Code Here

                                                                  new AdminClientConfig(),
                                                                  new ClientConfig());
            final AdminClient currentAdminClient = AdminClient.this;

            // determine the partitions residing on the mirror node
            Node mirrorNode = mirrorAdminClient.getAdminClientCluster()
                                               .getNodeById(nodeIdToMirrorFrom);
            Node currentNode = currentAdminClient.getAdminClientCluster().getNodeById(nodeId);

            if(mirrorNode == null) {
                logger.error("Mirror node specified does not exist in the mirror cluster");
                return;
            }

            if(currentNode == null) {
                logger.error("node specified does not exist in the current cluster");
                return;
            }

            // compare the mirror-from and mirrored-to nodes have same set of
            // stores
            List<String> currentStoreList = StoreUtils.getStoreNames(currentAdminClient.metadataMgmtOps.getRemoteStoreDefList(nodeId)
                                                                                                       .getValue(),
                                                                     true);
            List<String> mirrorStoreList = StoreUtils.getStoreNames(mirrorAdminClient.metadataMgmtOps.getRemoteStoreDefList(nodeIdToMirrorFrom)
                                                                                                     .getValue(),
                                                                    true);
            if(stores == null)
                stores = currentStoreList;

            if(!currentStoreList.containsAll(stores) || !mirrorStoreList.containsAll(stores)) {
                logger.error("Make sure the set of stores match on both sides");
                return;
            }

            // check if the partitions are same on both the nodes
            if(!currentNode.getPartitionIds().equals(mirrorNode.getPartitionIds())) {
                logger.error("Make sure the same set of partitions exist on both sides");
                return;
            }

            ExecutorService executors = Executors.newFixedThreadPool(stores.size(),
View Full Code Here

            if(!Utils.isReadableDir(destinationDirPath)) {
                throw new VoldemortException("The destination path (" + destinationDirPath
                                             + ") to store " + storeName + " does not exist");
            }

            Node node = AdminClient.this.getAdminClientCluster().getNodeById(nodeId);
            final SocketDestination destination = new SocketDestination(node.getHost(),
                                                                        node.getAdminPort(),
                                                                        RequestFormatType.ADMIN_PROTOCOL_BUFFERS);
            final SocketAndStreams sands = socketPool.checkout(destination);
            DataOutputStream outputStream = sands.getOutputStream();
            final DataInputStream inputStream = sands.getInputStream();
View Full Code Here

            VAdminProto.VoldemortAdminRequest request = VAdminProto.VoldemortAdminRequest.newBuilder()
                                                                                         .setType(VAdminProto.AdminRequestType.ADD_STORE)
                                                                                         .setAddStore(addStoreRequest)
                                                                                         .build();

            Node node = currentCluster.getNodeById(nodeId);
            if(null == node)
                throw new VoldemortException("Invalid node id (" + nodeId + ") specified");

            logger.info("Adding store " + def.getName() + " on node " + node.getHost() + ":"
                        + node.getId());
            VAdminProto.AddStoreResponse.Builder response = rpcOps.sendAndReceive(nodeId,
                                                                                  request,
                                                                                  VAdminProto.AddStoreResponse.newBuilder());
            if(response.hasError())
                helperOps.throwException(response.getError());
            logger.info("Succesfully added " + def.getName() + " on node " + node.getHost() + ":"
                        + node.getId());
        }
View Full Code Here

            VAdminProto.VoldemortAdminRequest request = VAdminProto.VoldemortAdminRequest.newBuilder()
                                                                                         .setType(VAdminProto.AdminRequestType.ADD_STORE)
                                                                                         .setAddStore(addStoreRequest)
                                                                                         .build();
            for(Integer nodeId: nodeIds) {
                Node node = currentCluster.getNodeById(nodeId);
                if(null == node) {
                    throw new VoldemortException("Invalid node id (" + nodeId + ") specified");
                }

                logger.info("Adding store " + def.getName() + " on node " + node.getHost() + ":"
                            + nodeId);
                VAdminProto.AddStoreResponse.Builder response = rpcOps.sendAndReceive(nodeId,
                                                                                      request,
                                                                                      VAdminProto.AddStoreResponse.newBuilder());
                if(response.hasError()) {
                    helperOps.throwException(response.getError());
                }
                logger.info("Succesfully added " + def.getName() + " on node " + node.getHost()
                            + ":" + nodeId);
            }
        }
View Full Code Here

                                                                                                      .setStoreName(storeName);
            VAdminProto.VoldemortAdminRequest request = VAdminProto.VoldemortAdminRequest.newBuilder()
                                                                                         .setType(VAdminProto.AdminRequestType.DELETE_STORE)
                                                                                         .setDeleteStore(deleteStoreRequest)
                                                                                         .build();
            Node node = currentCluster.getNodeById(nodeId);
            if(null == node)
                throw new VoldemortException("Invalid node id (" + nodeId + ") specified");

            logger.info("Deleting " + storeName + " on node " + node.getHost() + ":" + node.getId());
            VAdminProto.DeleteStoreResponse.Builder response = rpcOps.sendAndReceive(node.getId(),
                                                                                     request,
                                                                                     VAdminProto.DeleteStoreResponse.newBuilder());
            if(response.hasError())
                helperOps.throwException(response.getError());
            logger.info("Successfully deleted " + storeName + " on node " + node.getHost() + ":"
                        + node.getId());
        }
View Full Code Here

            VAdminProto.VoldemortAdminRequest request = VAdminProto.VoldemortAdminRequest.newBuilder()
                                                                                         .setType(VAdminProto.AdminRequestType.DELETE_STORE)
                                                                                         .setDeleteStore(deleteStoreRequest)
                                                                                         .build();
            for(Integer nodeId: nodeIds) {
                Node node = currentCluster.getNodeById(nodeId);
                if(node == null) {
                    throw new VoldemortException("Invalid node id (" + nodeId + ") specified");
                }

                logger.info("Deleting " + storeName + " on node " + node.getHost() + ":" + nodeId);
                VAdminProto.DeleteStoreResponse.Builder response = rpcOps.sendAndReceive(nodeId,
                                                                                         request,
                                                                                         VAdminProto.DeleteStoreResponse.newBuilder());
                if(response.hasError()) {
                    helperOps.throwException(response.getError());
                }
                logger.info("Successfully deleted " + storeName + " on node " + node.getHost()
                            + ":" + nodeId);
            }
        }
View Full Code Here

            VoldemortServer voldemortServer = ServerTestUtils.startVoldemortServer(socketStoreFactory,
                                                                                   voldemortConfig);
            servers.add(voldemortServer);
        }

        Node node = cluster.getNodeById(0);
        String bootstrapUrl = "tcp://" + node.getHost() + ":" + node.getSocketPort();
        storeClientFactory = new SocketStoreClientFactory(new ClientConfig().setBootstrapUrls(bootstrapUrl)
                                                                            .setMaxConnectionsPerNode(connectionsPerNode)
                                                                            .setConnectionTimeout(CONNECTION_TIMEOUT_MS,
                                                                                                  TimeUnit.MILLISECONDS)
                                                                            .setSocketTimeout(SOCKET_TIMEOUT_MS,
View Full Code Here

TOP

Related Classes of voldemort.cluster.Node

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.