[Java] Do not expose GcsClient to normal users (#4675)

This commit is contained in:
Qing Wang
2019-04-24 10:50:35 +08:00
committed by Hao Chen
parent c99e3caaca
commit 4dd628a837
13 changed files with 37 additions and 57 deletions
@@ -12,20 +12,20 @@ import java.util.stream.Collectors;
import org.ray.api.RayActor;
import org.ray.api.RayObject;
import org.ray.api.RayPyActor;
import org.ray.api.RuntimeContext;
import org.ray.api.WaitResult;
import org.ray.api.exception.RayException;
import org.ray.api.function.RayFunc;
import org.ray.api.gcs.GcsClient;
import org.ray.api.id.UniqueId;
import org.ray.api.options.ActorCreationOptions;
import org.ray.api.options.BaseTaskOptions;
import org.ray.api.options.CallOptions;
import org.ray.api.runtime.RayRuntime;
import org.ray.api.runtimecontext.RuntimeContext;
import org.ray.runtime.config.RayConfig;
import org.ray.runtime.functionmanager.FunctionDescriptor;
import org.ray.runtime.functionmanager.FunctionManager;
import org.ray.runtime.functionmanager.PyFunctionDescriptor;
import org.ray.runtime.gcs.GcsClient;
import org.ray.runtime.objectstore.ObjectStoreProxy;
import org.ray.runtime.objectstore.ObjectStoreProxy.GetResult;
import org.ray.runtime.raylet.RayletClient;
@@ -318,11 +318,6 @@ public abstract class AbstractRayRuntime implements RayRuntime {
return actor;
}
@Override
public GcsClient getGcsClient() {
return gcsClient;
}
/**
* Create the task specification.
*
@@ -423,4 +418,7 @@ public abstract class AbstractRayRuntime implements RayRuntime {
return runtimeContext;
}
public GcsClient getGcsClient() {
return gcsClient;
}
}
@@ -13,7 +13,7 @@ import java.util.HashMap;
import java.util.Map;
import org.ray.runtime.config.RayConfig;
import org.ray.runtime.config.WorkerMode;
import org.ray.runtime.gcs.GcsClientImpl;
import org.ray.runtime.gcs.GcsClient;
import org.ray.runtime.gcs.RedisClient;
import org.ray.runtime.objectstore.ObjectStoreProxy;
import org.ray.runtime.raylet.RayletClientImpl;
@@ -92,7 +92,7 @@ public final class RayNativeRuntime extends AbstractRayRuntime {
manager.startRayProcesses(true);
}
gcsClient = new GcsClientImpl(rayConfig.getRedisAddress(), rayConfig.redisPassword);
gcsClient = new GcsClient(rayConfig.getRedisAddress(), rayConfig.redisPassword);
// TODO(qwang): Get object_store_socket_name and raylet_socket_name from Redis.
objectStoreProxy = new ObjectStoreProxy(this, rayConfig.objectStoreSocketName);
@@ -1,11 +1,11 @@
package org.ray.runtime;
import com.google.common.base.Preconditions;
import org.ray.api.Ray;
import org.ray.api.RuntimeContext;
import java.util.List;
import org.ray.api.id.UniqueId;
import org.ray.api.runtimecontext.NodeInfo;
import org.ray.api.runtimecontext.RuntimeContext;
import org.ray.runtime.config.RunMode;
import org.ray.runtime.gcs.GcsClientImpl;
import org.ray.runtime.task.TaskSpec;
public class RuntimeContextImpl implements RuntimeContext {
@@ -38,7 +38,7 @@ public class RuntimeContextImpl implements RuntimeContext {
return false;
}
return ((GcsClientImpl) Ray.getGcsClient()).actorExists(getCurrentActorId());
return runtime.getGcsClient().actorExists(getCurrentActorId());
}
@Override
@@ -56,4 +56,8 @@ public class RuntimeContextImpl implements RuntimeContext {
return RunMode.SINGLE_PROCESS == runtime.getRayConfig().runMode;
}
@Override
public List<NodeInfo> getAllNodeInfo() {
return runtime.getGcsClient().getAllNodeInfo();
}
}
@@ -10,7 +10,6 @@ import org.ray.api.exception.RayTaskException;
import org.ray.api.id.UniqueId;
import org.ray.runtime.config.RunMode;
import org.ray.runtime.functionmanager.RayFunction;
import org.ray.runtime.gcs.GcsClientImpl;
import org.ray.runtime.task.ArgumentsBuilder;
import org.ray.runtime.task.TaskSpec;
import org.slf4j.Logger;
@@ -173,7 +172,7 @@ public class Worker {
lastCheckpointTimestamp = System.currentTimeMillis();
checkpointIds = new ArrayList<>();
List<Checkpoint> availableCheckpoints
= ((GcsClientImpl)runtime.getGcsClient()).getCheckpointsForActor(actorId);
= runtime.getGcsClient().getCheckpointsForActor(actorId);
if (availableCheckpoints.isEmpty()) {
return;
}
@@ -9,9 +9,8 @@ import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.lang3.ArrayUtils;
import org.ray.api.Checkpointable.Checkpoint;
import org.ray.api.gcs.GcsClient;
import org.ray.api.gcs.NodeInfo;
import org.ray.api.id.UniqueId;
import org.ray.api.runtimecontext.NodeInfo;
import org.ray.runtime.generated.ActorCheckpointIdData;
import org.ray.runtime.generated.ClientTableData;
import org.ray.runtime.generated.TablePrefix;
@@ -22,15 +21,15 @@ import org.slf4j.LoggerFactory;
/**
* An implementation of GcsClient.
*/
public class GcsClientImpl implements GcsClient {
public class GcsClient {
private static Logger LOGGER = LoggerFactory.getLogger(GcsClientImpl.class);
private static Logger LOGGER = LoggerFactory.getLogger(GcsClient.class);
private RedisClient primary;
private List<RedisClient> shards;
public GcsClientImpl(String redisAddress, String redisPassword) {
public GcsClient(String redisAddress, String redisPassword) {
primary = new RedisClient(redisAddress, redisPassword);
int numShards = 0;
try {
@@ -48,7 +47,6 @@ public class GcsClientImpl implements GcsClient {
}).collect(Collectors.toList());
}
@Override
public List<NodeInfo> getAllNodeInfo() {
final String prefix = TablePrefix.name(TablePrefix.CLIENT);
final byte[] key = ArrayUtils.addAll(prefix.getBytes(), UniqueId.NIL.getBytes());