use of com.alibaba.maxgraph.common.InstanceStatus in project GraphScope by alibaba.
the class RemoteGraph method refresh.
@Override
public void refresh() throws Exception {
InstanceStatus serverStatuses = clientManager.getServerDataApiClient().getServerStatuses();
List<RemoteProxy> proxys = new ArrayList<>(serverStatuses.server2WorkerInfo.size());
Set<WorkerInfo> workerInfoSet = new TreeSet<>(serverStatuses.getWorkInfo(RoleType.EXECUTOR));
for (WorkerInfo v : workerInfoSet) {
if (serverStatuses.assignments.containsKey(v.id)) {
ServerAssignment serverAssignment = serverStatuses.readServerAssignment(v.id);
serverAssignment.getPartitions().forEach(p -> partitionDistri.put(p, v.id));
proxys.add(new RemoteProxy(v.endpoint.getIp(), v.endpoint.getPort(), 120L, schemaFetcher, this));
}
}
List<Endpoint> endpointList = workerInfoSet.stream().map(workerInfo -> workerInfo.endpoint).collect(toList());
LOG.info("proxys: {}", JSON.toJson(endpointList));
List<RemoteProxy> prevProxyList = this.proxys;
this.proxys = proxys;
try {
for (RemoteProxy remoteProxy : prevProxyList) {
remoteProxy.close();
}
} finally {
LOG.info("Close all previous remote proxy");
}
// TODO : dynamic configuration of different Graph Partitioner;
this.partitioner = new DefaultGraphPartitioner(schemaFetcher.getPartitionNum());
}
Aggregations