/** * Get the {@link voldemort.store.socket.SocketStore} to redirect to for the donor, creating one * if needed. * * @param storeName Name of the store * @param donorNodeId Donor node id * @return <code>SocketStore</code> object for <code>storeName</code> and <code>donorNodeId</code> */ private Store<ByteArray, byte[], byte[]> getRedirectingSocketStore( String storeName, int donorNodeId) { if (!storeRepository.hasRedirectingSocketStore(storeName, donorNodeId)) { synchronized (storeRepository) { if (!storeRepository.hasRedirectingSocketStore(storeName, donorNodeId)) { Node donorNode = getNodeIfPresent(donorNodeId); logger.info( "Creating new redirecting store for donor node " + donorNode.getId() + " and store " + storeName); storeRepository.addRedirectingSocketStore( donorNode.getId(), storeFactory.create( storeName, donorNode.getHost(), donorNode.getSocketPort(), RequestFormatType.PROTOCOL_BUFFERS, RequestRoutingType.IGNORE_CHECKS)); } } } return storeRepository.getRedirectingSocketStore(storeName, donorNodeId); }
private Store<ByteArray, byte[], byte[]> createNodeStore(String storeName, Node node) { return storeFactory.create( storeName, node.getHost(), node.getSocketPort(), voldemortConfig.getRequestFormatType(), RequestRoutingType.NORMAL); }
@Override protected Store<ByteArray, byte[], byte[]> getStore( String storeName, String host, int port, RequestFormatType type) { return storeFactory.create(storeName, host, port, type, requestRoutingType); }