diff --git a/java/checkstyle-suppressions.xml b/java/checkstyle-suppressions.xml
index 0420ef87b..7a9ce2ab1 100644
--- a/java/checkstyle-suppressions.xml
+++ b/java/checkstyle-suppressions.xml
@@ -3,21 +3,19 @@
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
-
-
-
-
-
+
+
+
diff --git a/java/pom.xml b/java/pom.xml
index 6b1b2fdfa..e20af1ca4 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -130,13 +130,6 @@
${slf4j.version}
-
-
- com.github.davidmoten
- flatbuffers-java
- 1.7.0.1
-
-
com.beust
diff --git a/java/runtime-native/src/main/java/org/ray/spi/impl/Arg.java b/java/runtime-native/src/main/java/org/ray/spi/impl/Arg.java
index 9f6a20215..2d402d3d2 100644
--- a/java/runtime-native/src/main/java/org/ray/spi/impl/Arg.java
+++ b/java/runtime-native/src/main/java/org/ray/spi/impl/Arg.java
@@ -1,90 +1,44 @@
-package org.ray.spi.impl;
-
// automatically generated by the FlatBuffers compiler, do not modify
-import com.google.flatbuffers.FlatBufferBuilder;
-import com.google.flatbuffers.Table;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
+package org.ray.spi.impl;
+
+import java.nio.*;
+import java.lang.*;
+import java.util.*;
+import com.google.flatbuffers.*;
@SuppressWarnings("unused")
public final class Arg extends Table {
- public static Arg getRootAsArg(ByteBuffer _bb) {
- return getRootAsArg(_bb, new Arg());
- }
+ public static Arg getRootAsArg(ByteBuffer _bb) { return getRootAsArg(_bb, new Arg()); }
+ public static Arg getRootAsArg(ByteBuffer _bb, Arg obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
+ public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; }
+ public Arg __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
- public static Arg getRootAsArg(ByteBuffer _bb, Arg obj) {
- _bb.order(ByteOrder.LITTLE_ENDIAN);
- return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb));
- }
-
- public Arg __assign(int _i, ByteBuffer _bb) {
- __init(_i, _bb);
- return this;
- }
-
- public void __init(int _i, ByteBuffer _bb) {
- bb_pos = _i;
- bb = _bb;
- }
+ public String objectIds(int j) { int o = __offset(4); return o != 0 ? __string(__vector(o) + j * 4) : null; }
+ public int objectIdsLength() { int o = __offset(4); return o != 0 ? __vector_len(o) : 0; }
+ public String data() { int o = __offset(6); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer dataAsByteBuffer() { return __vector_as_bytebuffer(6, 1); }
+ public ByteBuffer dataInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 6, 1); }
public static int createArg(FlatBufferBuilder builder,
- int object_idsOffset,
- int dataOffset) {
+ int object_idsOffset,
+ int dataOffset) {
builder.startObject(2);
Arg.addData(builder, dataOffset);
Arg.addObjectIds(builder, object_idsOffset);
return Arg.endArg(builder);
}
- public static void addData(FlatBufferBuilder builder, int dataOffset) {
- builder.addOffset(1, dataOffset, 0);
- }
-
- public static void addObjectIds(FlatBufferBuilder builder, int objectIdsOffset) {
- builder.addOffset(0, objectIdsOffset, 0);
- }
-
+ public static void startArg(FlatBufferBuilder builder) { builder.startObject(2); }
+ public static void addObjectIds(FlatBufferBuilder builder, int objectIdsOffset) { builder.addOffset(0, objectIdsOffset, 0); }
+ public static int createObjectIdsVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); }
+ public static void startObjectIdsVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); }
+ public static void addData(FlatBufferBuilder builder, int dataOffset) { builder.addOffset(1, dataOffset, 0); }
public static int endArg(FlatBufferBuilder builder) {
int o = builder.endObject();
return o;
}
- public static void startArg(FlatBufferBuilder builder) {
- builder.startObject(2);
- }
-
- public static int createObjectIdsVector(FlatBufferBuilder builder, int[] data) {
- builder.startVector(4, data.length, 4);
- for (int i = data.length - 1; i >= 0; i--) {
- builder.addOffset(data[i]);
- }
- return builder.endVector();
- }
-
- public static void startObjectIdsVector(FlatBufferBuilder builder, int numElems) {
- builder.startVector(4, numElems, 4);
- }
-
- public String objectIds(int j) {
- int o = __offset(4);
- return o != 0 ? __string(__vector(o) + j * 4) : null;
- }
-
- public int objectIdsLength() {
- int o = __offset(4);
- return o != 0 ? __vector_len(o) : 0;
- }
-
- public String data() {
- int o = __offset(6);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer dataAsByteBuffer() {
- return __vector_as_bytebuffer(6, 1);
- }
-
//this is manually added to avoid encoding/decoding cost as our object id is a byte array
// instead of a string
public ByteBuffer objectIdAsByteBuffer(int j) {
@@ -103,4 +57,3 @@ public final class Arg extends Table {
}
}
-
diff --git a/java/runtime-native/src/main/java/org/ray/spi/impl/DefaultLocalSchedulerClient.java b/java/runtime-native/src/main/java/org/ray/spi/impl/DefaultLocalSchedulerClient.java
index d1a71b711..50e6ae013 100644
--- a/java/runtime-native/src/main/java/org/ray/spi/impl/DefaultLocalSchedulerClient.java
+++ b/java/runtime-native/src/main/java/org/ray/spi/impl/DefaultLocalSchedulerClient.java
@@ -253,7 +253,7 @@ public class DefaultLocalSchedulerClient implements LocalSchedulerLink {
actorCreateIdOffset, actorCreateDummyIdOffset,
actorIdOffset, actorHandleIdOffset, actorCounter,
false, functionIdOffset,
- argsOffset, returnsOffset, requiredResourcesOffset);
+ argsOffset, returnsOffset, requiredResourcesOffset, TaskLanguage.JAVA);
fbb.finish(root);
ByteBuffer buffer = fbb.dataBuffer();
diff --git a/java/runtime-native/src/main/java/org/ray/spi/impl/ResourcePair.java b/java/runtime-native/src/main/java/org/ray/spi/impl/ResourcePair.java
index d2b2b67b7..602074c11 100644
--- a/java/runtime-native/src/main/java/org/ray/spi/impl/ResourcePair.java
+++ b/java/runtime-native/src/main/java/org/ray/spi/impl/ResourcePair.java
@@ -1,71 +1,39 @@
-package org.ray.spi.impl;
-
// automatically generated by the FlatBuffers compiler, do not modify
-import com.google.flatbuffers.FlatBufferBuilder;
-import com.google.flatbuffers.Table;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
+package org.ray.spi.impl;
+
+import java.nio.*;
+import java.lang.*;
+import java.util.*;
+import com.google.flatbuffers.*;
@SuppressWarnings("unused")
public final class ResourcePair extends Table {
- public static ResourcePair getRootAsResourcePair(ByteBuffer _bb) {
- return getRootAsResourcePair(_bb, new ResourcePair());
- }
+ public static ResourcePair getRootAsResourcePair(ByteBuffer _bb) { return getRootAsResourcePair(_bb, new ResourcePair()); }
+ public static ResourcePair getRootAsResourcePair(ByteBuffer _bb, ResourcePair obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
+ public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; }
+ public ResourcePair __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
- public static ResourcePair getRootAsResourcePair(ByteBuffer _bb, ResourcePair obj) {
- _bb.order(ByteOrder.LITTLE_ENDIAN);
- return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb));
- }
-
- public ResourcePair __assign(int _i, ByteBuffer _bb) {
- __init(_i, _bb);
- return this;
- }
-
- public void __init(int _i, ByteBuffer _bb) {
- bb_pos = _i;
- bb = _bb;
- }
+ public String key() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer keyAsByteBuffer() { return __vector_as_bytebuffer(4, 1); }
+ public ByteBuffer keyInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); }
+ public double value() { int o = __offset(6); return o != 0 ? bb.getDouble(o + bb_pos) : 0.0; }
public static int createResourcePair(FlatBufferBuilder builder,
- int keyOffset,
- double value) {
+ int keyOffset,
+ double value) {
builder.startObject(2);
ResourcePair.addValue(builder, value);
ResourcePair.addKey(builder, keyOffset);
return ResourcePair.endResourcePair(builder);
}
- public static void addValue(FlatBufferBuilder builder, double value) {
- builder.addDouble(1, value, 0.0);
- }
-
- public static void addKey(FlatBufferBuilder builder, int keyOffset) {
- builder.addOffset(0, keyOffset, 0);
- }
-
+ public static void startResourcePair(FlatBufferBuilder builder) { builder.startObject(2); }
+ public static void addKey(FlatBufferBuilder builder, int keyOffset) { builder.addOffset(0, keyOffset, 0); }
+ public static void addValue(FlatBufferBuilder builder, double value) { builder.addDouble(1, value, 0.0); }
public static int endResourcePair(FlatBufferBuilder builder) {
int o = builder.endObject();
return o;
}
-
- public static void startResourcePair(FlatBufferBuilder builder) {
- builder.startObject(2);
- }
-
- public String key() {
- int o = __offset(4);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer keyAsByteBuffer() {
- return __vector_as_bytebuffer(4, 1);
- }
-
- public double value() {
- int o = __offset(6);
- return o != 0 ? bb.getDouble(o + bb_pos) : 0.0;
- }
}
diff --git a/java/runtime-native/src/main/java/org/ray/spi/impl/TaskInfo.java b/java/runtime-native/src/main/java/org/ray/spi/impl/TaskInfo.java
index 523a6a986..6cc376244 100644
--- a/java/runtime-native/src/main/java/org/ray/spi/impl/TaskInfo.java
+++ b/java/runtime-native/src/main/java/org/ray/spi/impl/TaskInfo.java
@@ -1,48 +1,74 @@
-package org.ray.spi.impl;
// automatically generated by the FlatBuffers compiler, do not modify
-import com.google.flatbuffers.FlatBufferBuilder;
-import com.google.flatbuffers.Table;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
+package org.ray.spi.impl;
+
+import java.nio.*;
+import java.lang.*;
+import java.util.*;
+import com.google.flatbuffers.*;
@SuppressWarnings("unused")
public final class TaskInfo extends Table {
- public static TaskInfo getRootAsTaskInfo(ByteBuffer _bb) {
- return getRootAsTaskInfo(_bb, new TaskInfo());
- }
+ public static TaskInfo getRootAsTaskInfo(ByteBuffer _bb) { return getRootAsTaskInfo(_bb, new TaskInfo()); }
+ public static TaskInfo getRootAsTaskInfo(ByteBuffer _bb, TaskInfo obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
+ public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; }
+ public TaskInfo __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
- public static TaskInfo getRootAsTaskInfo(ByteBuffer _bb, TaskInfo obj) {
- _bb.order(ByteOrder.LITTLE_ENDIAN);
- return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb));
- }
-
- public TaskInfo __assign(int _i, ByteBuffer _bb) {
- __init(_i, _bb);
- return this;
- }
-
- public void __init(int _i, ByteBuffer _bb) {
- bb_pos = _i;
- bb = _bb;
- }
+ public String driverId() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer driverIdAsByteBuffer() { return __vector_as_bytebuffer(4, 1); }
+ public ByteBuffer driverIdInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); }
+ public String taskId() { int o = __offset(6); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer taskIdAsByteBuffer() { return __vector_as_bytebuffer(6, 1); }
+ public ByteBuffer taskIdInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 6, 1); }
+ public String parentTaskId() { int o = __offset(8); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer parentTaskIdAsByteBuffer() { return __vector_as_bytebuffer(8, 1); }
+ public ByteBuffer parentTaskIdInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 8, 1); }
+ public int parentCounter() { int o = __offset(10); return o != 0 ? bb.getInt(o + bb_pos) : 0; }
+ public String actorCreationId() { int o = __offset(12); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer actorCreationIdAsByteBuffer() { return __vector_as_bytebuffer(12, 1); }
+ public ByteBuffer actorCreationIdInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 12, 1); }
+ public String actorCreationDummyObjectId() { int o = __offset(14); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer actorCreationDummyObjectIdAsByteBuffer() { return __vector_as_bytebuffer(14, 1); }
+ public ByteBuffer actorCreationDummyObjectIdInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 14, 1); }
+ public String actorId() { int o = __offset(16); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer actorIdAsByteBuffer() { return __vector_as_bytebuffer(16, 1); }
+ public ByteBuffer actorIdInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 16, 1); }
+ public String actorHandleId() { int o = __offset(18); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer actorHandleIdAsByteBuffer() { return __vector_as_bytebuffer(18, 1); }
+ public ByteBuffer actorHandleIdInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 18, 1); }
+ public int actorCounter() { int o = __offset(20); return o != 0 ? bb.getInt(o + bb_pos) : 0; }
+ public boolean isActorCheckpointMethod() { int o = __offset(22); return o != 0 ? 0!=bb.get(o + bb_pos) : false; }
+ public String functionId() { int o = __offset(24); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer functionIdAsByteBuffer() { return __vector_as_bytebuffer(24, 1); }
+ public ByteBuffer functionIdInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 24, 1); }
+ public Arg args(int j) { return args(new Arg(), j); }
+ public Arg args(Arg obj, int j) { int o = __offset(26); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; }
+ public int argsLength() { int o = __offset(26); return o != 0 ? __vector_len(o) : 0; }
+ public String returns(int j) { int o = __offset(28); return o != 0 ? __string(__vector(o) + j * 4) : null; }
+ public int returnsLength() { int o = __offset(28); return o != 0 ? __vector_len(o) : 0; }
+ public ResourcePair requiredResources(int j) { return requiredResources(new ResourcePair(), j); }
+ public ResourcePair requiredResources(ResourcePair obj, int j) { int o = __offset(30); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; }
+ public int requiredResourcesLength() { int o = __offset(30); return o != 0 ? __vector_len(o) : 0; }
+ public int language() { int o = __offset(32); return o != 0 ? bb.getInt(o + bb_pos) : 0; }
public static int createTaskInfo(FlatBufferBuilder builder,
- int driver_idOffset,
- int task_idOffset,
- int parent_task_idOffset,
- int parent_counter,
- int actor_creation_idOffset,
- int actor_creation_dummy_object_idOffset,
- int actor_idOffset,
- int actor_handle_idOffset,
- int actor_counter,
- boolean is_actor_checkpoint_method,
- int function_idOffset,
- int argsOffset,
- int returnsOffset,
- int required_resourcesOffset) {
- builder.startObject(14);
+ int driver_idOffset,
+ int task_idOffset,
+ int parent_task_idOffset,
+ int parent_counter,
+ int actor_creation_idOffset,
+ int actor_creation_dummy_object_idOffset,
+ int actor_idOffset,
+ int actor_handle_idOffset,
+ int actor_counter,
+ boolean is_actor_checkpoint_method,
+ int function_idOffset,
+ int argsOffset,
+ int returnsOffset,
+ int required_resourcesOffset,
+ int language) {
+ builder.startObject(15);
+ TaskInfo.addLanguage(builder, language);
TaskInfo.addRequiredResources(builder, required_resourcesOffset);
TaskInfo.addReturns(builder, returnsOffset);
TaskInfo.addArgs(builder, argsOffset);
@@ -60,234 +86,33 @@ public final class TaskInfo extends Table {
return TaskInfo.endTaskInfo(builder);
}
- public static void addRequiredResources(FlatBufferBuilder builder, int requiredResourcesOffset) {
- builder.addOffset(13, requiredResourcesOffset, 0);
- }
-
- public static void addReturns(FlatBufferBuilder builder, int returnsOffset) {
- builder.addOffset(12, returnsOffset, 0);
- }
-
- public static void addArgs(FlatBufferBuilder builder, int argsOffset) {
- builder.addOffset(11, argsOffset, 0);
- }
-
- public static void addFunctionId(FlatBufferBuilder builder, int functionIdOffset) {
- builder.addOffset(10, functionIdOffset, 0);
- }
-
- public static void addActorCounter(FlatBufferBuilder builder, int actorCounter) {
- builder.addInt(8, actorCounter, 0);
- }
-
- public static void addActorHandleId(FlatBufferBuilder builder, int actorHandleIdOffset) {
- builder.addOffset(7, actorHandleIdOffset, 0);
- }
-
- public static void addActorId(FlatBufferBuilder builder, int actorIdOffset) {
- builder.addOffset(6, actorIdOffset, 0);
- }
-
- public static void addActorCreationDummyObjectId(FlatBufferBuilder builder, int
- actorCreationDummyObjectIdOffset) {
- builder.addOffset(5, actorCreationDummyObjectIdOffset, 0);
- }
-
- public static void addActorCreationId(FlatBufferBuilder builder, int actorCreationIdOffset) {
- builder.addOffset(4, actorCreationIdOffset, 0);
- }
-
- public static void addParentCounter(FlatBufferBuilder builder, int parentCounter) {
- builder.addInt(3, parentCounter, 0);
- }
-
- public static void addParentTaskId(FlatBufferBuilder builder, int parentTaskIdOffset) {
- builder.addOffset(2, parentTaskIdOffset, 0);
- }
-
- public static void addTaskId(FlatBufferBuilder builder, int taskIdOffset) {
- builder.addOffset(1, taskIdOffset, 0);
- }
-
- public static void addDriverId(FlatBufferBuilder builder, int driverIdOffset) {
- builder.addOffset(0, driverIdOffset, 0);
- }
-
- public static void addIsActorCheckpointMethod(FlatBufferBuilder builder, boolean
- isActorCheckpointMethod) {
- builder.addBoolean(9, isActorCheckpointMethod, false);
- }
-
+ public static void startTaskInfo(FlatBufferBuilder builder) { builder.startObject(15); }
+ public static void addDriverId(FlatBufferBuilder builder, int driverIdOffset) { builder.addOffset(0, driverIdOffset, 0); }
+ public static void addTaskId(FlatBufferBuilder builder, int taskIdOffset) { builder.addOffset(1, taskIdOffset, 0); }
+ public static void addParentTaskId(FlatBufferBuilder builder, int parentTaskIdOffset) { builder.addOffset(2, parentTaskIdOffset, 0); }
+ public static void addParentCounter(FlatBufferBuilder builder, int parentCounter) { builder.addInt(3, parentCounter, 0); }
+ public static void addActorCreationId(FlatBufferBuilder builder, int actorCreationIdOffset) { builder.addOffset(4, actorCreationIdOffset, 0); }
+ public static void addActorCreationDummyObjectId(FlatBufferBuilder builder, int actorCreationDummyObjectIdOffset) { builder.addOffset(5, actorCreationDummyObjectIdOffset, 0); }
+ public static void addActorId(FlatBufferBuilder builder, int actorIdOffset) { builder.addOffset(6, actorIdOffset, 0); }
+ public static void addActorHandleId(FlatBufferBuilder builder, int actorHandleIdOffset) { builder.addOffset(7, actorHandleIdOffset, 0); }
+ public static void addActorCounter(FlatBufferBuilder builder, int actorCounter) { builder.addInt(8, actorCounter, 0); }
+ public static void addIsActorCheckpointMethod(FlatBufferBuilder builder, boolean isActorCheckpointMethod) { builder.addBoolean(9, isActorCheckpointMethod, false); }
+ public static void addFunctionId(FlatBufferBuilder builder, int functionIdOffset) { builder.addOffset(10, functionIdOffset, 0); }
+ public static void addArgs(FlatBufferBuilder builder, int argsOffset) { builder.addOffset(11, argsOffset, 0); }
+ public static int createArgsVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); }
+ public static void startArgsVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); }
+ public static void addReturns(FlatBufferBuilder builder, int returnsOffset) { builder.addOffset(12, returnsOffset, 0); }
+ public static int createReturnsVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); }
+ public static void startReturnsVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); }
+ public static void addRequiredResources(FlatBufferBuilder builder, int requiredResourcesOffset) { builder.addOffset(13, requiredResourcesOffset, 0); }
+ public static int createRequiredResourcesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); }
+ public static void startRequiredResourcesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); }
+ public static void addLanguage(FlatBufferBuilder builder, int language) { builder.addInt(14, language, 0); }
public static int endTaskInfo(FlatBufferBuilder builder) {
int o = builder.endObject();
return o;
}
- public static void startTaskInfo(FlatBufferBuilder builder) {
- builder.startObject(14);
- }
-
- public static int createArgsVector(FlatBufferBuilder builder, int[] data) {
- builder.startVector(4, data.length, 4);
- for (int i = data.length - 1; i >= 0; i--) {
- builder.addOffset(data[i]);
- }
- return builder.endVector();
- }
-
- public static void startArgsVector(FlatBufferBuilder builder, int numElems) {
- builder.startVector(4, numElems, 4);
- }
-
- public static int createReturnsVector(FlatBufferBuilder builder, int[] data) {
- builder.startVector(4, data.length, 4);
- for (int i = data.length - 1; i >= 0; i--) {
- builder.addOffset(data[i]);
- }
- return builder.endVector();
- }
-
- public static void startReturnsVector(FlatBufferBuilder builder, int numElems) {
- builder.startVector(4, numElems, 4);
- }
-
- public static int createRequiredResourcesVector(FlatBufferBuilder builder, int[] data) {
- builder.startVector(4, data.length, 4);
- for (int i = data.length - 1; i >= 0; i--) {
- builder.addOffset(data[i]);
- }
- return builder.endVector();
- }
-
- public static void startRequiredResourcesVector(FlatBufferBuilder builder, int numElems) {
- builder.startVector(4, numElems, 4);
- }
-
- public String driverId() {
- int o = __offset(4);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer driverIdAsByteBuffer() {
- return __vector_as_bytebuffer(4, 1);
- }
-
- public String taskId() {
- int o = __offset(6);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer taskIdAsByteBuffer() {
- return __vector_as_bytebuffer(6, 1);
- }
-
- public String parentTaskId() {
- int o = __offset(8);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer parentTaskIdAsByteBuffer() {
- return __vector_as_bytebuffer(8, 1);
- }
-
- public int parentCounter() {
- int o = __offset(10);
- return o != 0 ? bb.getInt(o + bb_pos) : 0;
- }
-
- public String actorCreationId() {
- int o = __offset(12);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer actorCreationIdAsByteBuffer() {
- return __vector_as_bytebuffer(12, 1);
- }
-
- public String actorCreationDummyObjectId() {
- int o = __offset(14);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer actorCreationDummyObjectIdAsByteBuffer() {
- return __vector_as_bytebuffer(14, 1);
- }
-
- public String actorId() {
- int o = __offset(16);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer actorIdAsByteBuffer() {
- return __vector_as_bytebuffer(16, 1);
- }
-
- public String actorHandleId() {
- int o = __offset(18);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer actorHandleIdAsByteBuffer() {
- return __vector_as_bytebuffer(18, 1);
- }
-
- public int actorCounter() {
- int o = __offset(20);
- return o != 0 ? bb.getInt(o + bb_pos) : 0;
- }
-
- public boolean isActorCheckpointMethod() {
- int o = __offset(22);
- return o != 0 ? 0 != bb.get(o + bb_pos) : false;
- }
-
- public String functionId() {
- int o = __offset(24);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer functionIdAsByteBuffer() {
- return __vector_as_bytebuffer(24, 1);
- }
-
- public Arg args(int j) {
- return args(new Arg(), j);
- }
-
- public Arg args(Arg obj, int j) {
- int o = __offset(26);
- return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null;
- }
-
- public int argsLength() {
- int o = __offset(26);
- return o != 0 ? __vector_len(o) : 0;
- }
-
- public String returns(int j) {
- int o = __offset(28);
- return o != 0 ? __string(__vector(o) + j * 4) : null;
- }
-
- public int returnsLength() {
- int o = __offset(28);
- return o != 0 ? __vector_len(o) : 0;
- }
-
- public ResourcePair requiredResources(int j) {
- return requiredResources(new ResourcePair(), j);
- }
-
- public ResourcePair requiredResources(ResourcePair obj, int j) {
- int o = __offset(30);
- return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null;
- }
-
- public int requiredResourcesLength() {
- int o = __offset(30);
- return o != 0 ? __vector_len(o) : 0;
- }
-
//this is manually added to avoid encoding/decoding cost as our object
//id is a byte array instead of a string
public ByteBuffer returnsAsByteBuffer(int j) {
diff --git a/java/runtime-native/src/main/java/org/ray/spi/impl/TaskLanguage.java b/java/runtime-native/src/main/java/org/ray/spi/impl/TaskLanguage.java
new file mode 100644
index 000000000..c6d10db03
--- /dev/null
+++ b/java/runtime-native/src/main/java/org/ray/spi/impl/TaskLanguage.java
@@ -0,0 +1,14 @@
+// automatically generated by the FlatBuffers compiler, do not modify
+
+package org.ray.spi.impl;
+
+public final class TaskLanguage {
+ private TaskLanguage() { }
+ public static final int PYTHON = 0;
+ public static final int JAVA = 1;
+
+ public static final String[] names = { "PYTHON", "JAVA", };
+
+ public static String name(int e) { return names[e]; }
+}
+
diff --git a/src/common/format/common.fbs b/src/common/format/common.fbs
index 029760c36..6b69b76fb 100644
--- a/src/common/format/common.fbs
+++ b/src/common/format/common.fbs
@@ -20,6 +20,14 @@ table ResourcePair {
value: double;
}
+// NOTE: This enum is duplicate with the `Language` enum in `gcs.fbs`,
+// because we cannot include this file in `gcs.fbs` due to cyclic dependency.
+// TODO(raulchen): remove it once we get rid of legacy ray.
+enum TaskLanguage:int {
+ PYTHON = 0,
+ JAVA = 1
+}
+
table TaskInfo {
// ID of the driver that created this task.
driver_id: string;
@@ -52,6 +60,8 @@ table TaskInfo {
// The required_resources vector indicates the quantities of the different
// resources required by this task.
required_resources: [ResourcePair];
+ // The language that this task belongs to
+ language: TaskLanguage;
}
// Object information data structure.
diff --git a/src/common/lib/python/common_extension.cc b/src/common/lib/python/common_extension.cc
index 2bc379c37..68965e270 100644
--- a/src/common/lib/python/common_extension.cc
+++ b/src/common/lib/python/common_extension.cc
@@ -462,7 +462,8 @@ static int PyTask_init(PyTask *self, PyObject *args, PyObject *kwds) {
self->task_spec = new ray::raylet::TaskSpecification(
driver_id, parent_task_id, parent_counter, actor_creation_id,
actor_creation_dummy_object_id, actor_id, actor_handle_id,
- actor_counter, function_id, args, num_returns, required_resources);
+ actor_counter, function_id, args, num_returns, required_resources,
+ Language::PYTHON);
}
/* Set the task's execution dependencies. */
diff --git a/src/ray/raylet/lineage_cache_test.cc b/src/ray/raylet/lineage_cache_test.cc
index 23a399a70..10081fdc8 100644
--- a/src/ray/raylet/lineage_cache_test.cc
+++ b/src/ray/raylet/lineage_cache_test.cc
@@ -114,7 +114,7 @@ static inline Task ExampleTask(const std::vector &arguments,
}
auto spec = TaskSpecification(UniqueID::nil(), UniqueID::from_random(), 0,
UniqueID::from_random(), task_arguments, num_returns,
- required_resources);
+ required_resources, Language::PYTHON);
auto execution_spec = TaskExecutionSpecification(std::vector());
execution_spec.IncrementNumForwards();
Task task = Task(execution_spec, spec);
diff --git a/src/ray/raylet/task_dependency_manager_test.cc b/src/ray/raylet/task_dependency_manager_test.cc
index 5c79e1ec8..56a97dcb0 100644
--- a/src/ray/raylet/task_dependency_manager_test.cc
+++ b/src/ray/raylet/task_dependency_manager_test.cc
@@ -76,7 +76,7 @@ static inline Task ExampleTask(const std::vector &arguments,
}
auto spec = TaskSpecification(UniqueID::nil(), UniqueID::from_random(), 0,
UniqueID::from_random(), task_arguments, num_returns,
- required_resources);
+ required_resources, Language::PYTHON);
auto execution_spec = TaskExecutionSpecification(std::vector());
execution_spec.IncrementNumForwards();
Task task = Task(execution_spec, spec);
diff --git a/src/ray/raylet/task_spec.cc b/src/ray/raylet/task_spec.cc
index 456a8fc4a..9e90ddcde 100644
--- a/src/ray/raylet/task_spec.cc
+++ b/src/ray/raylet/task_spec.cc
@@ -45,10 +45,12 @@ TaskSpecification::TaskSpecification(
const UniqueID &driver_id, const TaskID &parent_task_id, int64_t parent_counter,
const FunctionID &function_id,
const std::vector> &task_arguments, int64_t num_returns,
- const std::unordered_map &required_resources)
+ const std::unordered_map &required_resources,
+ const Language &language)
: TaskSpecification(driver_id, parent_task_id, parent_counter, ActorID::nil(),
ObjectID::nil(), ActorID::nil(), ActorHandleID::nil(), -1,
- function_id, task_arguments, num_returns, required_resources) {}
+ function_id, task_arguments, num_returns, required_resources,
+ language) {}
TaskSpecification::TaskSpecification(
const UniqueID &driver_id, const TaskID &parent_task_id, int64_t parent_counter,
@@ -56,7 +58,8 @@ TaskSpecification::TaskSpecification(
const ActorID &actor_id, const ActorHandleID &actor_handle_id, int64_t actor_counter,
const FunctionID &function_id,
const std::vector> &task_arguments, int64_t num_returns,
- const std::unordered_map &required_resources)
+ const std::unordered_map &required_resources,
+ const Language &language)
: spec_() {
flatbuffers::FlatBufferBuilder fbb;
@@ -87,6 +90,20 @@ TaskSpecification::TaskSpecification(
returns.push_back(to_flatbuf(fbb, return_id));
}
+ // convert Language to TaskLanguage
+ // TODO(raulchen): remove this once we get rid of legacy ray.
+ TaskLanguage task_language = TaskLanguage::PYTHON;
+ switch (language) {
+ case Language::PYTHON:
+ task_language = TaskLanguage::PYTHON;
+ break;
+ case Language::JAVA:
+ task_language = TaskLanguage::JAVA;
+ break;
+ default:
+ RAY_LOG(FATAL) << "Unknown language: " << static_cast(language);
+ }
+
// Serialize the TaskSpecification.
auto spec = CreateTaskInfo(
fbb, to_flatbuf(fbb, driver_id), to_flatbuf(fbb, task_id),
@@ -94,7 +111,7 @@ TaskSpecification::TaskSpecification(
to_flatbuf(fbb, actor_creation_dummy_object_id), to_flatbuf(fbb, actor_id),
to_flatbuf(fbb, actor_handle_id), actor_counter, false,
to_flatbuf(fbb, function_id), fbb.CreateVector(arguments),
- fbb.CreateVector(returns), map_to_flatbuf(fbb, required_resources));
+ fbb.CreateVector(returns), map_to_flatbuf(fbb, required_resources), task_language);
fbb.Finish(spec);
AssignSpecification(fbb.GetBufferPointer(), fbb.GetSize());
}
@@ -179,6 +196,22 @@ bool TaskSpecification::IsDriverTask() const {
return FunctionId().is_nil();
}
+Language TaskSpecification::GetLanguage() const {
+ auto message = flatbuffers::GetRoot(spec_.data());
+ // TODO(raulchen): remove this once we get rid of legacy ray.
+ auto language = message->language();
+ switch (language) {
+ case TaskLanguage::PYTHON:
+ return Language::PYTHON;
+ case TaskLanguage::JAVA:
+ return Language::JAVA;
+ default:
+ // This shouldn't be reachable.
+ RAY_LOG(FATAL) << "Unknown task language: " << static_cast(language);
+ return Language::PYTHON;
+ }
+}
+
bool TaskSpecification::IsActorCreationTask() const {
return !ActorCreationId().is_nil();
}
diff --git a/src/ray/raylet/task_spec.h b/src/ray/raylet/task_spec.h
index d21137e58..a4075ff6a 100644
--- a/src/ray/raylet/task_spec.h
+++ b/src/ray/raylet/task_spec.h
@@ -98,7 +98,8 @@ class TaskSpecification {
int64_t parent_counter, const FunctionID &function_id,
const std::vector> &arguments,
int64_t num_returns,
- const std::unordered_map &required_resources);
+ const std::unordered_map &required_resources,
+ const Language &language);
TaskSpecification(const UniqueID &driver_id, const TaskID &parent_task_id,
int64_t parent_counter, const ActorID &actor_creation_id,
@@ -107,7 +108,8 @@ class TaskSpecification {
int64_t actor_counter, const FunctionID &function_id,
const std::vector> &task_arguments,
int64_t num_returns,
- const std::unordered_map &required_resources);
+ const std::unordered_map &required_resources,
+ const Language &language);
/// Deserialize a task specification from a flatbuffer's string data.
///
@@ -141,6 +143,7 @@ class TaskSpecification {
double GetRequiredResource(const std::string &resource_name) const;
const ResourceSet GetRequiredResources() const;
bool IsDriverTask() const;
+ Language GetLanguage() const;
// Methods specific to actor tasks.
bool IsActorCreationTask() const;