throw new IOException("Invalid shard id found in " + lockId, nfe); InetSocketAddress address = parseSocketAddress(parts[2]); return new DLSocketAddress(shardId, address);
void updateOwnership(String stream, String location) { try { SocketAddress ownerAddr = DLSocketAddress.deserialize(location).getSocketAddress(); // update ownership ownershipCache.updateOwner(stream, ownerAddr); } catch (IOException e) { logger.warn("Invalid ownership {} found for stream {} : ", new Object[] { location, stream, e }); } }
/** * Serialize the write proxy identifier to string. * * @return serialized write proxy identifier. */ public String serialize() { return toLockId(socketAddress, shard); }
synchronized (shardId2Address) { for (DLSocketAddress serviceInstance : serviceInstances) { if (serviceInstance.getShard() >= 0) { newMap.put(serviceInstance.getShard(), serviceInstance.getSocketAddress()); } else { Integer shard = address2ShardId.get(serviceInstance.getSocketAddress()); if (null == shard) { shard = shardId; newMap.put(shard, serviceInstance.getSocketAddress());
int shard = serverConf.getServerShardId(); int numThreads = serverConf.getServerThreads(); this.clientId = DLSocketAddress.toLockId(DLSocketAddress.getSocketAddress(serverPort), shard); String allocatorPoolName = String.format("allocator_%04d_%010d", serverRegionId, shard); dlConf.setLedgerAllocatorPoolName(allocatorPoolName);
protected void parseCommandLine(CommandLine cmdline) throws ParseException { if (!cmdline.hasOption("H")) { throw new ParseException("No proxy address provided"); } address = DLSocketAddress.parseSocketAddress(cmdline.getOptionValue("H")); }
protected synchronized void performServerSetChange(ImmutableSet<DLSocketAddress> serverSet) { Set<SocketAddress> newSet = new HashSet<SocketAddress>(); for (DLSocketAddress serviceInstance : serverSet) { newSet.add(serviceInstance.getSocketAddress());
DLSocketAddress dsa = new DLSocketAddress(i, inetAddress); addresses1.add(dsa); DLSocketAddress dsa = new DLSocketAddress(i+2, inetAddress); addresses2.add(dsa); DLSocketAddress dsa = new DLSocketAddress(i, inetAddress); addresses3.add(dsa);
public static String toLockId(InetSocketAddress address, int shard) { StringBuilder sb = new StringBuilder(); sb.append(VERSION).append(SEP).append(shard).append(SEP).append(toString(address)); return sb.toString(); }
synchronized (shardId2Address) { for (DLSocketAddress serviceInstance : serviceInstances) { if (serviceInstance.getShard() >= 0) { newMap.put(serviceInstance.getShard(), serviceInstance.getSocketAddress()); } else { Integer shard = address2ShardId.get(serviceInstance.getSocketAddress()); if (null == shard) { shard = shardId; newMap.put(shard, serviceInstance.getSocketAddress());
protected void parseCommandLine(CommandLine cmdline) throws ParseException { super.parseCommandLine(cmdline); if (!cmdline.hasOption("u")) { throw new ParseException("No proxy serverset provided."); } uri = URI.create(cmdline.getOptionValue("u")); if (cmdline.hasOption("sp")) { String sourceProxyStr = cmdline.getOptionValue("sp"); try { DLSocketAddress.parseSocketAddress(sourceProxyStr); } catch (IllegalArgumentException iae) { throw new ParseException("Invalid source proxy " + sourceProxyStr + " : " + iae.getMessage()); } this.source = sourceProxyStr; } }
address = DLSocketAddress.getSocketAddress(proxyPort);
public static String toLockId(InetSocketAddress address, int shard) { StringBuilder sb = new StringBuilder(); sb.append(VERSION).append(SEP).append(shard).append(SEP).append(toString(address)); return sb.toString(); }
void handleRedirectResponse(ResponseHeader header, StreamOp op, SocketAddress curAddr) { SocketAddress ownerAddr = null; if (header.isSetLocation()) { String owner = header.getLocation(); try { ownerAddr = DLSocketAddress.deserialize(owner).getSocketAddress(); // if we are receiving a direct request to same host, we won't try the same host. // as the proxy will shut itself down if it redirects client to itself. if (curAddr.equals(ownerAddr)) { logger.warn("Request to stream {} is redirected to same server {}!", op.stream, curAddr); ownerAddr = null; } else { // update ownership when redirects. ownershipCache.updateOwner(op.stream, ownerAddr); } } catch (IOException e) { ownerAddr = null; } } redirect(op, ownerAddr); }
throw new IOException("Invalid shard id found in " + lockId, nfe); InetSocketAddress address = parseSocketAddress(parts[2]); return new DLSocketAddress(shardId, address);
sourceAddr = DLSocketAddress.parseSocketAddress(source.get()); logger.info("Balancer source is {}", sourceAddr); if (!distribution.containsKey(sourceAddr)) {
@Override public String toString() { return toLockId(socketAddress, shard); }
protected synchronized void performServerSetChange(ImmutableSet<DLSocketAddress> serverSet) { Set<SocketAddress> newSet = new HashSet<SocketAddress>(); for (DLSocketAddress serviceInstance : serverSet) { newSet.add(serviceInstance.getSocketAddress());
void updateOwnership(String stream, String location) { try { SocketAddress ownerAddr = DLSocketAddress.deserialize(location).getSocketAddress(); // update ownership ownershipCache.updateOwner(stream, ownerAddr); } catch (IOException e) { logger.warn("Invalid ownership {} found for stream {} : ", new Object[] { location, stream, e }); } }
protected void balanceFromSource(DistributedLogClientBuilder clientBuilder, ClusterBalancer balancer, String source, Optional<RateLimiter> rateLimiter) throws Exception { InetSocketAddress sourceAddr = DLSocketAddress.parseSocketAddress(source); DistributedLogClientBuilder sourceClientBuilder = DistributedLogClientBuilder.newBuilder(clientBuilder) .host(sourceAddr); Pair<DistributedLogClient, MonitorServiceClient> clientPair = ClientUtils.buildClient(sourceClientBuilder); try { Await.result(clientPair.getRight().setAcceptNewStream(false)); logger.info("Disable accepting new stream on proxy {}.", source); balancer.balanceAll(source, rebalanceConcurrency, rateLimiter); } finally { clientPair.getLeft().close(); } } }