901 lines
34 KiB
Cython
901 lines
34 KiB
Cython
from libcpp cimport bool as c_bool
|
|
from libcpp.memory cimport shared_ptr, unique_ptr
|
|
from libcpp.string cimport string as c_string
|
|
|
|
from libc.stdint cimport uint8_t, int32_t, uint64_t, int64_t, uint32_t
|
|
from libcpp.unordered_map cimport unordered_map
|
|
from libcpp.vector cimport vector as c_vector
|
|
from libcpp.pair cimport pair as c_pair
|
|
from ray.includes.optional cimport (
|
|
optional,
|
|
)
|
|
from ray.includes.unique_ids cimport (
|
|
CActorID,
|
|
CJobID,
|
|
CClusterID,
|
|
CWorkerID,
|
|
CObjectID,
|
|
CTaskID,
|
|
CPlacementGroupID,
|
|
CNodeID,
|
|
)
|
|
from ray.includes.function_descriptor cimport (
|
|
CFunctionDescriptor,
|
|
)
|
|
|
|
|
|
cdef extern from * namespace "polyfill" nogil:
|
|
"""
|
|
namespace polyfill {
|
|
|
|
template <typename T>
|
|
inline typename std::remove_reference<T>::type&& move(T& t) {
|
|
return std::move(t);
|
|
}
|
|
|
|
template <typename T>
|
|
inline typename std::remove_reference<T>::type&& move(T&& t) {
|
|
return std::move(t);
|
|
}
|
|
|
|
} // namespace polyfill
|
|
"""
|
|
cdef T move[T](T)
|
|
|
|
|
|
cdef extern from "ray/common/status.h" namespace "ray" nogil:
|
|
cdef enum class CStatusCode "ray::StatusCode":
|
|
pass
|
|
c_bool operator==(CStatusCode lhs, CStatusCode rhs)
|
|
|
|
cdef cppclass CRayStatus "ray::Status":
|
|
CRayStatus()
|
|
CRayStatus(CStatusCode code, const c_string &msg)
|
|
CRayStatus(CStatusCode code, const c_string &msg, int rpc_code)
|
|
CRayStatus(const CRayStatus &s)
|
|
|
|
@staticmethod
|
|
CRayStatus OK()
|
|
|
|
@staticmethod
|
|
CRayStatus OutOfMemory(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus KeyError(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus Invalid(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus IOError(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus TypeError(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus UnknownError(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus NotImplemented(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus ObjectStoreFull(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus RedisError(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus TimedOut(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus InvalidArgument(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus Interrupted(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus IntentionalSystemExit(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus UnexpectedSystemExit(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus CreationTaskError(const c_string &msg)
|
|
|
|
@staticmethod
|
|
CRayStatus NotFound()
|
|
|
|
@staticmethod
|
|
CRayStatus ObjectRefEndOfStream()
|
|
|
|
c_bool ok()
|
|
c_bool IsOutOfMemory()
|
|
c_bool IsKeyError()
|
|
c_bool IsInvalid()
|
|
c_bool IsIOError()
|
|
c_bool IsTypeError()
|
|
c_bool IsUnknownError()
|
|
c_bool IsNotImplemented()
|
|
c_bool IsObjectStoreFull()
|
|
c_bool IsAlreadyExists()
|
|
c_bool IsOutOfDisk()
|
|
c_bool IsRedisError()
|
|
c_bool IsTimedOut()
|
|
c_bool IsInvalidArgument()
|
|
c_bool IsInterrupted()
|
|
c_bool IsObjectNotFound()
|
|
c_bool IsNotFound()
|
|
c_bool IsObjectUnknownOwner()
|
|
c_bool IsRpcError()
|
|
c_bool IsOutOfResource()
|
|
c_bool IsObjectRefEndOfStream()
|
|
c_bool IsIntentionalSystemExit()
|
|
c_bool IsUnexpectedSystemExit()
|
|
c_bool IsChannelError()
|
|
c_bool IsChannelTimeoutError()
|
|
c_bool IsUnauthenticated()
|
|
|
|
c_string ToString()
|
|
c_string CodeAsString()
|
|
CStatusCode code()
|
|
c_string message()
|
|
int rpc_code()
|
|
|
|
# We can later add more of the common status factory methods as needed
|
|
cdef CRayStatus RayStatus_OK "Status::OK"()
|
|
cdef CRayStatus RayStatus_Invalid "Status::Invalid"()
|
|
cdef CRayStatus RayStatus_NotImplemented "Status::NotImplemented"()
|
|
|
|
cdef extern from "ray/common/status_or.h" namespace "ray" nogil:
|
|
cdef cppclass CStatusOr "ray::StatusOr"[T]:
|
|
c_bool ok()
|
|
const CRayStatus &status() const
|
|
T &value()
|
|
|
|
cdef extern from "ray/common/status.h" namespace "ray::StatusT" nogil:
|
|
cdef cppclass CStatusTIOError "ray::StatusT::IOError":
|
|
CStatusTIOError(const c_string &msg)
|
|
c_string message() const
|
|
|
|
cdef cppclass CStatusTTimedOut "ray::StatusT::TimedOut":
|
|
CStatusTTimedOut(const c_string &msg)
|
|
c_string message() const
|
|
|
|
cdef cppclass CStatusTInvalid "ray::StatusT::Invalid":
|
|
CStatusTInvalid(const c_string &msg)
|
|
c_string message() const
|
|
|
|
cdef extern from "ray/common/status.h" namespace "ray" nogil:
|
|
cdef cppclass CWaitForPersistedPortResult "ray::StatusSetOr<int, ray::StatusT::IOError, ray::StatusT::TimedOut, ray::StatusT::Invalid>":
|
|
c_bool has_value()
|
|
c_bool has_error()
|
|
int &value()
|
|
c_string message()
|
|
|
|
cdef extern from "ray/util/port_persistence.h" namespace "ray" nogil:
|
|
c_string GetPortFileName "ray::GetPortFileName"(
|
|
const CNodeID &node_id,
|
|
const c_string &port_name)
|
|
CRayStatus PersistPort "ray::PersistPort"(
|
|
const c_string &dir,
|
|
const CNodeID &node_id,
|
|
const c_string &port_name,
|
|
int port)
|
|
CWaitForPersistedPortResult WaitForPersistedPort "ray::WaitForPersistedPort"(
|
|
const c_string &dir,
|
|
const CNodeID &node_id,
|
|
const c_string &port_name,
|
|
int timeout_ms,
|
|
int poll_interval_ms)
|
|
|
|
cdef extern from "ray/common/id.h" namespace "ray" nogil:
|
|
const CTaskID GenerateTaskId(const CJobID &job_id,
|
|
const CTaskID &parent_task_id,
|
|
int parent_task_counter)
|
|
|
|
|
|
cdef extern from "src/ray/protobuf/common.pb.h" nogil:
|
|
cdef cppclass CLanguage "ray::Language":
|
|
pass
|
|
cdef cppclass CWorkerType "ray::core::WorkerType":
|
|
pass
|
|
cdef cppclass CWorkerExitType "ray::rpc::WorkerExitType":
|
|
pass
|
|
cdef cppclass CTaskType "ray::TaskType":
|
|
pass
|
|
cdef cppclass CPlacementStrategy "ray::core::PlacementStrategy":
|
|
pass
|
|
cdef cppclass CDefaultSchedulingStrategy "ray::rpc::DefaultSchedulingStrategy": # noqa: E501
|
|
CDefaultSchedulingStrategy()
|
|
cdef cppclass CSpreadSchedulingStrategy "ray::rpc::SpreadSchedulingStrategy": # noqa: E501
|
|
CSpreadSchedulingStrategy()
|
|
cdef cppclass CPlacementGroupSchedulingStrategy "ray::rpc::PlacementGroupSchedulingStrategy": # noqa: E501
|
|
CPlacementGroupSchedulingStrategy()
|
|
void set_placement_group_id(const c_string& placement_group_id)
|
|
void set_placement_group_bundle_index(int64_t placement_group_bundle_index) # noqa: E501
|
|
void set_placement_group_capture_child_tasks(c_bool placement_group_capture_child_tasks) # noqa: E501
|
|
cdef cppclass CNodeAffinitySchedulingStrategy "ray::rpc::NodeAffinitySchedulingStrategy": # noqa: E501
|
|
CNodeAffinitySchedulingStrategy()
|
|
void set_node_id(const c_string& node_id)
|
|
void set_soft(c_bool soft)
|
|
void set_spill_on_unavailable(c_bool spill_on_unavailable)
|
|
void set_fail_on_unavailable(c_bool fail_on_unavailable)
|
|
cdef cppclass CSchedulingStrategy "ray::rpc::SchedulingStrategy":
|
|
CSchedulingStrategy()
|
|
void clear_scheduling_strategy()
|
|
CSpreadSchedulingStrategy* mutable_spread_scheduling_strategy()
|
|
CDefaultSchedulingStrategy* mutable_default_scheduling_strategy()
|
|
CPlacementGroupSchedulingStrategy* mutable_placement_group_scheduling_strategy() # noqa: E501
|
|
CNodeAffinitySchedulingStrategy* mutable_node_affinity_scheduling_strategy()
|
|
CNodeLabelSchedulingStrategy* mutable_node_label_scheduling_strategy()
|
|
cdef cppclass CAddress "ray::rpc::Address":
|
|
CAddress()
|
|
const c_string &SerializeAsString() const
|
|
void ParseFromString(const c_string &serialized)
|
|
void CopyFrom(const CAddress& address)
|
|
const c_string &worker_id()
|
|
cdef cppclass CObjectReference "ray::rpc::ObjectReference":
|
|
CObjectReference()
|
|
CAddress owner_address() const
|
|
const c_string &object_id() const
|
|
const c_string &call_site() const
|
|
c_bool has_tensor_transport() const
|
|
const c_string &tensor_transport() const
|
|
cdef cppclass CNodeLabelSchedulingStrategy "ray::rpc::NodeLabelSchedulingStrategy": # noqa: E501
|
|
CNodeLabelSchedulingStrategy()
|
|
CLabelMatchExpressions* mutable_hard()
|
|
CLabelMatchExpressions* mutable_soft()
|
|
cdef cppclass CLabelMatchExpressions "ray::rpc::LabelMatchExpressions": # noqa: E501
|
|
CLabelMatchExpressions()
|
|
CLabelMatchExpression* add_expressions()
|
|
cdef cppclass CLabelMatchExpression "ray::rpc::LabelMatchExpression": # noqa: E501
|
|
CLabelMatchExpression()
|
|
void set_key(const c_string &key)
|
|
CLabelOperator* mutable_operator_()
|
|
cdef cppclass CLabelIn "ray::rpc::LabelIn": # noqa: E501
|
|
CLabelIn()
|
|
void add_values(const c_string &value)
|
|
cdef cppclass CLabelNotIn "ray::rpc::LabelNotIn": # noqa: E501
|
|
CLabelNotIn()
|
|
void add_values(const c_string &value)
|
|
cdef cppclass CLabelExists "ray::rpc::LabelExists": # noqa: E501
|
|
CLabelExists()
|
|
cdef cppclass CLabelDoesNotExist "ray::rpc::LabelDoesNotExist": # noqa: E501
|
|
CLabelDoesNotExist()
|
|
cdef cppclass CLabelNotIn "ray::rpc::LabelNotIn": # noqa: E501
|
|
CLabelNotIn()
|
|
void add_values(const c_string &value)
|
|
cdef cppclass CLabelOperator "ray::rpc::LabelOperator": # noqa: E501
|
|
CLabelOperator()
|
|
CLabelIn* mutable_label_in()
|
|
CLabelNotIn* mutable_label_not_in()
|
|
CLabelExists* mutable_label_exists()
|
|
CLabelDoesNotExist* mutable_label_does_not_exist()
|
|
cdef cppclass CLineageReconstructionTask "ray::rpc::LineageReconstructionTask":
|
|
CLineageReconstructionTask()
|
|
const c_string &SerializeAsString() const
|
|
|
|
cdef extern from "ray/common/scheduling/cluster_resource_data.h" namespace "ray" nogil:
|
|
cdef cppclass CNodeResources "ray::NodeResources":
|
|
CNodeResources()
|
|
unordered_map[c_string, c_string] labels
|
|
c_bool HasRequiredLabels(const CLabelSelector &label_selector) const
|
|
|
|
void SetNodeResourcesLabels(CNodeResources& resources, const unordered_map[c_string, c_string]& labels)
|
|
|
|
cdef extern from "ray/common/scheduling/label_selector.h" namespace "ray":
|
|
cdef cppclass CLabelSelector "ray::LabelSelector":
|
|
CLabelSelector() nogil except +
|
|
void AddConstraint(const c_string& key, const c_string& value) nogil except +
|
|
|
|
cdef extern from "ray/common/scheduling/fallback_strategy.h" namespace "ray":
|
|
cdef cppclass CFallbackOption "ray::FallbackOption":
|
|
CLabelSelector label_selector
|
|
|
|
CFallbackOption() nogil except +
|
|
CFallbackOption(CLabelSelector) nogil except +
|
|
|
|
# This is a workaround for C++ enum class since Cython has no corresponding
|
|
# representation.
|
|
cdef extern from "src/ray/protobuf/common.pb.h" nogil:
|
|
cdef CLanguage LANGUAGE_PYTHON "ray::Language::PYTHON"
|
|
cdef CLanguage LANGUAGE_CPP "ray::Language::CPP"
|
|
cdef CLanguage LANGUAGE_JAVA "ray::Language::JAVA"
|
|
|
|
cdef extern from "src/ray/protobuf/common.pb.h" nogil:
|
|
cdef CWorkerType WORKER_TYPE_WORKER "ray::core::WorkerType::WORKER"
|
|
cdef CWorkerType WORKER_TYPE_DRIVER "ray::core::WorkerType::DRIVER"
|
|
cdef CWorkerType WORKER_TYPE_SPILL_WORKER "ray::core::WorkerType::SPILL_WORKER" # noqa: E501
|
|
cdef CWorkerType WORKER_TYPE_RESTORE_WORKER "ray::core::WorkerType::RESTORE_WORKER" # noqa: E501
|
|
cdef CWorkerType WORKER_TYPE_UTIL_WORKER "ray::core::WorkerType::UTIL_WORKER" # noqa: E501
|
|
cdef CWorkerExitType WORKER_EXIT_TYPE_USER_ERROR "ray::rpc::WorkerExitType::USER_ERROR" # noqa: E501
|
|
cdef CWorkerExitType WORKER_EXIT_TYPE_SYSTEM_ERROR "ray::rpc::WorkerExitType::SYSTEM_ERROR" # noqa: E501
|
|
cdef CWorkerExitType WORKER_EXIT_TYPE_INTENTIONAL_SYSTEM_ERROR "ray::rpc::WorkerExitType::INTENDED_SYSTEM_EXIT" # noqa: E501
|
|
|
|
cdef extern from "src/ray/protobuf/common.pb.h" nogil:
|
|
cdef CTaskType TASK_TYPE_NORMAL_TASK "ray::TaskType::NORMAL_TASK"
|
|
cdef CTaskType TASK_TYPE_ACTOR_CREATION_TASK "ray::TaskType::ACTOR_CREATION_TASK" # noqa: E501
|
|
cdef CTaskType TASK_TYPE_ACTOR_TASK "ray::TaskType::ACTOR_TASK"
|
|
|
|
cdef extern from "src/ray/protobuf/common.pb.h" nogil:
|
|
cdef CPlacementStrategy PLACEMENT_STRATEGY_PACK \
|
|
"ray::core::PlacementStrategy::PACK"
|
|
cdef CPlacementStrategy PLACEMENT_STRATEGY_SPREAD \
|
|
"ray::core::PlacementStrategy::SPREAD"
|
|
cdef CPlacementStrategy PLACEMENT_STRATEGY_STRICT_PACK \
|
|
"ray::core::PlacementStrategy::STRICT_PACK"
|
|
cdef CPlacementStrategy PLACEMENT_STRATEGY_STRICT_SPREAD \
|
|
"ray::core::PlacementStrategy::STRICT_SPREAD"
|
|
|
|
cdef extern from "ray/common/buffer.h" namespace "ray" nogil:
|
|
cdef cppclass CBuffer "ray::Buffer":
|
|
uint8_t *Data() const
|
|
size_t Size() const
|
|
c_bool IsPlasmaBuffer() const
|
|
|
|
cdef cppclass LocalMemoryBuffer(CBuffer):
|
|
LocalMemoryBuffer(uint8_t *data, size_t size, c_bool copy_data)
|
|
LocalMemoryBuffer(size_t size)
|
|
|
|
cdef cppclass SharedMemoryBuffer(CBuffer):
|
|
SharedMemoryBuffer(
|
|
const shared_ptr[CBuffer] &buffer,
|
|
int64_t offset,
|
|
int64_t size)
|
|
c_bool IsPlasmaBuffer() const
|
|
|
|
cdef extern from "ray/common/ray_object.h" nogil:
|
|
cdef cppclass CRayObject "ray::RayObject":
|
|
CRayObject(const shared_ptr[CBuffer] &data,
|
|
const shared_ptr[CBuffer] &metadata,
|
|
const c_vector[CObjectReference] &nested_refs)
|
|
c_bool HasData() const
|
|
c_bool HasMetadata() const
|
|
const size_t DataSize() const
|
|
const shared_ptr[CBuffer] &GetData()
|
|
const shared_ptr[CBuffer] &GetMetadata() const
|
|
c_bool IsInPlasmaError() const
|
|
optional[c_string] GetTensorTransport() const
|
|
void SetDirectTransportMetadata(c_string direct_transport_metadata)
|
|
|
|
cdef extern from "ray/core_worker/common.h" nogil:
|
|
cdef cppclass CRayFunction "ray::core::RayFunction":
|
|
CRayFunction()
|
|
CRayFunction(CLanguage language,
|
|
const CFunctionDescriptor &function_descriptor)
|
|
CLanguage GetLanguage()
|
|
const CFunctionDescriptor GetFunctionDescriptor()
|
|
|
|
cdef cppclass CTaskArg "ray::TaskArg":
|
|
pass
|
|
|
|
cdef cppclass CTaskArgByReference "ray::TaskArgByReference":
|
|
CTaskArgByReference(const CObjectID &object_id,
|
|
const CAddress &owner_address,
|
|
const c_string &call_site,
|
|
optional[c_string] tensor_transport)
|
|
|
|
cdef cppclass CTaskArgByValue "ray::TaskArgByValue":
|
|
CTaskArgByValue(const shared_ptr[CRayObject] &data)
|
|
|
|
cdef cppclass CTaskOptions "ray::core::TaskOptions":
|
|
CTaskOptions()
|
|
CTaskOptions(c_string name, int num_returns,
|
|
unordered_map[c_string, double] &resources,
|
|
c_string concurrency_group_name,
|
|
int64_t generator_backpressure_num_objects,
|
|
int64_t num_objects_per_yield)
|
|
CTaskOptions(c_string name, int num_returns,
|
|
unordered_map[c_string, double] &resources,
|
|
c_string concurrency_group_name,
|
|
int64_t generator_backpressure_num_objects,
|
|
int64_t num_objects_per_yield,
|
|
c_string serialized_runtime_env)
|
|
CTaskOptions(c_string name, int num_returns,
|
|
unordered_map[c_string, double] &resources,
|
|
c_string concurrency_group_name,
|
|
int64_t generator_backpressure_num_objects,
|
|
int64_t num_objects_per_yield,
|
|
c_string serialized_runtime_env,
|
|
c_bool enable_task_events,
|
|
const unordered_map[c_string, c_string] &labels,
|
|
CLabelSelector label_selector,
|
|
optional[c_string] tensor_transport,
|
|
c_vector[CFallbackOption] fallback_strategy)
|
|
|
|
cdef cppclass CActorCreationOptions "ray::core::ActorCreationOptions":
|
|
CActorCreationOptions()
|
|
CActorCreationOptions(
|
|
int64_t max_restarts,
|
|
int64_t max_task_retries,
|
|
int32_t max_concurrency,
|
|
const unordered_map[c_string, double] &resources,
|
|
const unordered_map[c_string, double] &placement_resources,
|
|
const c_vector[c_string] &dynamic_worker_options,
|
|
optional[c_bool] is_detached, c_string &name, c_string &ray_namespace,
|
|
c_bool is_asyncio,
|
|
const CSchedulingStrategy &scheduling_strategy,
|
|
c_string serialized_runtime_env,
|
|
const c_vector[CConcurrencyGroup] &concurrency_groups,
|
|
c_bool allow_out_of_order_execution,
|
|
int32_t max_pending_calls,
|
|
c_bool enable_tensor_transport,
|
|
c_bool enable_task_events,
|
|
const unordered_map[c_string, c_string] &labels,
|
|
CLabelSelector label_selector,
|
|
c_vector[CFallbackOption] fallback_strategy,
|
|
int64_t actor_generator_backpressure_num_objects)
|
|
|
|
cdef cppclass CPlacementGroupCreationOptions \
|
|
"ray::core::PlacementGroupCreationOptions":
|
|
CPlacementGroupCreationOptions()
|
|
CPlacementGroupCreationOptions(
|
|
const c_string &name,
|
|
CPlacementStrategy strategy,
|
|
const c_vector[unordered_map[c_string, double]] &bundles,
|
|
c_bool is_detached,
|
|
CNodeID soft_target_node_id,
|
|
const c_vector[unordered_map[c_string, c_string]] &bundle_label_selector,
|
|
const unordered_map[c_string, CPlacementStrategy] &topology_strategy,
|
|
)
|
|
|
|
cdef cppclass CObjectLocation "ray::core::ObjectLocation":
|
|
const int64_t GetObjectSize() const
|
|
const c_vector[CNodeID] &GetNodeIDs() const
|
|
c_bool IsSpilled() const
|
|
const c_string &GetSpilledURL() const
|
|
const CNodeID &GetSpilledNodeID() const
|
|
const c_bool GetDidSpill() const
|
|
|
|
cdef extern from "ray/common/python_callbacks.h" namespace "ray":
|
|
cdef cppclass MultiItemPyCallback[T]:
|
|
MultiItemPyCallback(
|
|
object (*)(CRayStatus, c_vector[T]) nogil,
|
|
void (object, object) nogil,
|
|
object) nogil
|
|
|
|
cdef cppclass OptionalItemPyCallback[T]:
|
|
OptionalItemPyCallback(
|
|
object (*)(CRayStatus, optional[T]) nogil,
|
|
void (object, object) nogil,
|
|
object) nogil
|
|
|
|
cdef cppclass StatusPyCallback:
|
|
StatusPyCallback(
|
|
object (*)(CRayStatus) nogil,
|
|
void (object, object) nogil,
|
|
object) nogil
|
|
|
|
cdef extern from "ray/gcs_rpc_client/accessors/actor_info_accessor_interface.h" nogil:
|
|
cdef cppclass CActorInfoAccessorInterface "ray::gcs::ActorInfoAccessorInterface":
|
|
void AsyncGetAllByFilter(
|
|
const optional[CActorID] &actor_id,
|
|
const optional[CJobID] &job_id,
|
|
const optional[c_string] &actor_state_name,
|
|
const MultiItemPyCallback[CActorTableData] &callback,
|
|
int64_t timeout_ms)
|
|
|
|
cdef extern from "ray/gcs_rpc_client/accessor.h" nogil:
|
|
cdef cppclass CJobInfoAccessor "ray::gcs::JobInfoAccessor":
|
|
CRayStatus GetAll(
|
|
const optional[c_string] &job_or_submission_id,
|
|
c_bool skip_submission_job_info_field,
|
|
c_bool skip_is_running_tasks_field,
|
|
c_vector[CJobTableData] &result,
|
|
int64_t timeout_ms)
|
|
|
|
void AsyncGetAll(
|
|
const optional[c_string] &job_or_submission_id,
|
|
c_bool skip_submission_job_info_field,
|
|
c_bool skip_is_running_tasks_field,
|
|
const MultiItemPyCallback[CJobTableData] &callback,
|
|
int64_t timeout_ms)
|
|
|
|
cdef cppclass CNodeInfoAccessor "ray::gcs::NodeInfoAccessor":
|
|
CRayStatus CheckAlive(
|
|
const c_vector[CNodeID] &node_ids,
|
|
int64_t timeout_ms,
|
|
c_vector[c_bool] &result)
|
|
|
|
void AsyncCheckAlive(
|
|
const c_vector[CNodeID] &node_ids,
|
|
int64_t timeout_ms,
|
|
const MultiItemPyCallback[c_bool] &callback)
|
|
|
|
CRayStatus DrainNodes(
|
|
const c_vector[CNodeID] &node_ids,
|
|
int64_t timeout_ms,
|
|
c_vector[c_string] &drained_node_ids)
|
|
|
|
CStatusOr[c_vector[CGcsNodeInfo]] GetAllNoCache(
|
|
int64_t timeout_ms,
|
|
optional[CGcsNodeState] state_filter,
|
|
const c_vector[CNodeSelector] &node_selectors)
|
|
|
|
void AsyncGetAll(
|
|
const OptionalItemPyCallback[c_pair[c_vector[CGcsNodeInfo], int64_t]] &callback,
|
|
int64_t timeout_ms,
|
|
optional[CGcsNodeState] state_filter,
|
|
const c_vector[CNodeSelector] &node_selectors,
|
|
optional[int64_t] limit) const
|
|
|
|
cdef cppclass CNodeResourceInfoAccessor "ray::gcs::NodeResourceInfoAccessor":
|
|
CRayStatus GetAllResourceUsage(
|
|
int64_t timeout_ms,
|
|
CGetAllResourceUsageReply &serialized_reply)
|
|
|
|
cdef cppclass CInternalKVAccessor "ray::gcs::InternalKVAccessor":
|
|
CRayStatus Keys(
|
|
const c_string &ns,
|
|
const c_string &prefix,
|
|
int64_t timeout_ms,
|
|
c_vector[c_string] &value)
|
|
|
|
CRayStatus Put(
|
|
const c_string &ns,
|
|
const c_string &key,
|
|
const c_string &value,
|
|
c_bool overwrite,
|
|
int64_t timeout_ms,
|
|
c_bool &added)
|
|
|
|
CRayStatus Get(
|
|
const c_string &ns,
|
|
const c_string &key,
|
|
int64_t timeout_ms,
|
|
c_string &value)
|
|
|
|
CRayStatus MultiGet(
|
|
const c_string &ns,
|
|
const c_vector[c_string] &keys,
|
|
int64_t timeout_ms,
|
|
unordered_map[c_string, c_string] &values)
|
|
|
|
CRayStatus Del(
|
|
const c_string &ns,
|
|
const c_string &key,
|
|
c_bool del_by_prefix,
|
|
int64_t timeout_ms,
|
|
int& num_deleted)
|
|
|
|
CRayStatus Exists(
|
|
const c_string &ns,
|
|
const c_string &key,
|
|
int64_t timeout_ms,
|
|
c_bool &exists)
|
|
|
|
void AsyncInternalKVKeys(
|
|
const c_string &ns,
|
|
const c_string &prefix,
|
|
int64_t timeout_ms,
|
|
const OptionalItemPyCallback[c_vector[c_string]] &callback)
|
|
|
|
void AsyncInternalKVGet(
|
|
const c_string &ns,
|
|
const c_string &key,
|
|
int64_t timeout_ms,
|
|
const OptionalItemPyCallback[c_string] &callback)
|
|
|
|
void AsyncInternalKVMultiGet(
|
|
const c_string &ns,
|
|
const c_vector[c_string] &keys,
|
|
int64_t timeout_ms,
|
|
const OptionalItemPyCallback[unordered_map[c_string, c_string]] &callback)
|
|
|
|
void AsyncInternalKVPut(
|
|
const c_string &ns,
|
|
const c_string &key,
|
|
const c_string &value,
|
|
c_bool overwrite,
|
|
int64_t timeout_ms,
|
|
const OptionalItemPyCallback[c_bool] &callback)
|
|
|
|
void AsyncInternalKVExists(
|
|
const c_string &ns,
|
|
const c_string &key,
|
|
int64_t timeout_ms,
|
|
const OptionalItemPyCallback[c_bool] &callback)
|
|
|
|
void AsyncInternalKVDel(
|
|
const c_string &ns,
|
|
const c_string &key,
|
|
c_bool del_by_prefix,
|
|
int64_t timeout_ms,
|
|
const OptionalItemPyCallback[int] &callback)
|
|
|
|
cdef cppclass CRuntimeEnvAccessor "ray::gcs::RuntimeEnvAccessor":
|
|
CRayStatus PinRuntimeEnvUri(
|
|
const c_string &uri,
|
|
int expiration_s,
|
|
int64_t timeout_ms)
|
|
|
|
cdef cppclass CAutoscalerStateAccessor "ray::gcs::AutoscalerStateAccessor":
|
|
|
|
CRayStatus RequestClusterResourceConstraint(
|
|
int64_t timeout_ms,
|
|
const c_vector[unordered_map[c_string, double]] &bundles,
|
|
const c_vector[unordered_map[c_string, c_string]] &label_selectors,
|
|
const c_vector[int64_t] &count_array,
|
|
)
|
|
|
|
CRayStatus GetClusterResourceState(
|
|
int64_t timeout_ms,
|
|
c_string &serialized_reply
|
|
)
|
|
|
|
CRayStatus GetClusterStatus(
|
|
int64_t timeout_ms,
|
|
c_string &serialized_reply
|
|
)
|
|
|
|
void AsyncGetClusterStatus(
|
|
int64_t timeout_ms,
|
|
const OptionalItemPyCallback[CGetClusterStatusReply] &callback)
|
|
|
|
CRayStatus ReportAutoscalingState(
|
|
int64_t timeout_ms,
|
|
const c_string &serialized_state
|
|
)
|
|
|
|
CRayStatus ReportClusterConfig(
|
|
int64_t timeout_ms,
|
|
const c_string &serialized_cluster_config
|
|
)
|
|
|
|
CRayStatus DrainNode(
|
|
const c_string &node_id,
|
|
int32_t reason,
|
|
const c_string &reason_message,
|
|
int64_t deadline_timestamp_ms,
|
|
int64_t timeout_ms,
|
|
c_bool &is_accepted,
|
|
c_string &rejection_reason_message
|
|
)
|
|
|
|
CRayStatus ResizeRayletResourceInstances(
|
|
const c_string &node_id,
|
|
const unordered_map[c_string, double] &resources,
|
|
int64_t timeout_ms,
|
|
unordered_map[c_string, double] &total_resources
|
|
)
|
|
|
|
cdef cppclass CPublisherAccessor "ray::gcs::PublisherAccessor":
|
|
CRayStatus PublishError(
|
|
c_string key_id,
|
|
CErrorTableData data,
|
|
int64_t timeout_ms)
|
|
|
|
CRayStatus PublishLogs(
|
|
c_string key_id,
|
|
CLogBatch data,
|
|
int64_t timeout_ms)
|
|
|
|
void AsyncPublishNodeResourceUsage(
|
|
c_string key_id,
|
|
c_string node_resource_usage,
|
|
const StatusPyCallback &callback
|
|
)
|
|
|
|
cdef cppclass CTaskInfoAccessor "ray::gcs::TaskInfoAccessor":
|
|
void AsyncAddEvents(
|
|
CAddEventsRequest &&request,
|
|
const StatusPyCallback &callback,
|
|
int64_t timeout_ms)
|
|
|
|
|
|
cdef extern from "ray/gcs_rpc_client/gcs_client.h" nogil:
|
|
cdef enum CGrpcStatusCode "grpc::StatusCode":
|
|
UNAVAILABLE "grpc::StatusCode::UNAVAILABLE",
|
|
UNKNOWN "grpc::StatusCode::UNKNOWN",
|
|
DEADLINE_EXCEEDED "grpc::StatusCode::DEADLINE_EXCEEDED",
|
|
RESOURCE_EXHAUSTED "grpc::StatusCode::RESOURCE_EXHAUSTED",
|
|
UNIMPLEMENTED "grpc::StatusCode::UNIMPLEMENTED",
|
|
|
|
cdef cppclass CGcsClientOptions "ray::gcs::GcsClientOptions":
|
|
CGcsClientOptions(
|
|
c_string gcs_address, int port, CClusterID cluster_id,
|
|
c_bool allow_cluster_id_nil, c_bool fetch_cluster_id_if_nil)
|
|
|
|
cdef cppclass CGcsClient "ray::gcs::GcsClient":
|
|
CGcsClient(CGcsClientOptions options)
|
|
|
|
c_pair[c_string, int] GetGcsServerAddress() const
|
|
CClusterID GetClusterId() const
|
|
|
|
CActorInfoAccessorInterface& Actors()
|
|
CJobInfoAccessor& Jobs()
|
|
CInternalKVAccessor& InternalKV()
|
|
CNodeInfoAccessor& Nodes()
|
|
CNodeResourceInfoAccessor& NodeResources()
|
|
CRuntimeEnvAccessor& RuntimeEnvs()
|
|
CAutoscalerStateAccessor& Autoscaler()
|
|
CPublisherAccessor& Publisher()
|
|
CTaskInfoAccessor& Tasks()
|
|
CGcsRpcClient& GetGcsRpcClient()
|
|
|
|
cdef CRayStatus ConnectOnSingletonIoContext(CGcsClient &gcs_client, int timeout_ms)
|
|
|
|
cdef extern from "ray/gcs_rpc_client/rpc_client.h" namespace "ray::rpc::events" nogil:
|
|
cdef cppclass CAddEventsRequest "ray::rpc::events::AddEventsRequest":
|
|
bint ParseFromString(const c_string &data)
|
|
cdef cppclass CAddEventsReply "ray::rpc::events::AddEventsReply":
|
|
pass
|
|
|
|
cdef extern from "ray/gcs_rpc_client/rpc_client.h" namespace "ray::rpc" nogil:
|
|
cdef cppclass CGcsRpcClient "ray::rpc::GcsRpcClient":
|
|
pass
|
|
|
|
cdef extern from "ray/gcs_rpc_client/gcs_client.h" namespace "ray::gcs" nogil:
|
|
unordered_map[c_string, double] PythonGetResourcesTotal(
|
|
const CGcsNodeInfo& node_info)
|
|
|
|
cdef extern from "ray/pubsub/python_gcs_subscriber.h" nogil:
|
|
cdef cppclass CPythonGcsSubscriber "ray::pubsub::PythonGcsSubscriber":
|
|
|
|
CPythonGcsSubscriber(
|
|
const c_string& gcs_address, int gcs_port, CChannelType channel_type,
|
|
const c_string& subscriber_id, const c_string& worker_id)
|
|
|
|
CRayStatus Subscribe()
|
|
|
|
int64_t last_batch_size()
|
|
|
|
CRayStatus PollError(
|
|
c_string* key_id, int64_t timeout_ms, CErrorTableData* data)
|
|
|
|
CRayStatus PollLogs(
|
|
c_string* key_id, int64_t timeout_ms, CLogBatch* data)
|
|
|
|
CRayStatus Close()
|
|
|
|
cdef extern from "ray/pubsub/python_gcs_subscriber.h" namespace "ray::pubsub" nogil:
|
|
c_vector[c_string] PythonGetLogBatchLines(CLogBatch log_batch)
|
|
|
|
cdef extern from "ray/gcs_rpc_client/gcs_client.h" namespace "ray::gcs" nogil:
|
|
unordered_map[c_string, c_string] PythonGetNodeLabels(
|
|
const CGcsNodeInfo& node_info)
|
|
|
|
cdef extern from "src/ray/protobuf/gcs.pb.h" nogil:
|
|
cdef enum CChannelType "ray::rpc::ChannelType":
|
|
RAY_ERROR_INFO_CHANNEL "ray::rpc::ChannelType::RAY_ERROR_INFO_CHANNEL",
|
|
RAY_LOG_CHANNEL "ray::rpc::ChannelType::RAY_LOG_CHANNEL",
|
|
GCS_ACTOR_CHANNEL "ray::rpc::ChannelType::GCS_ACTOR_CHANNEL",
|
|
|
|
cdef cppclass CJobConfig "ray::rpc::JobConfig":
|
|
c_string ray_namespace() const
|
|
const c_string &SerializeAsString() const
|
|
|
|
cdef cppclass CNodeDeathInfo "ray::rpc::NodeDeathInfo":
|
|
int reason() const
|
|
c_string reason_message() const
|
|
|
|
cdef cppclass CGcsNodeInfo "ray::rpc::GcsNodeInfo":
|
|
c_string node_id() const
|
|
c_string node_name() const
|
|
int state() const
|
|
c_string node_manager_address() const
|
|
c_string node_manager_hostname() const
|
|
int node_manager_port() const
|
|
int object_manager_port() const
|
|
c_string object_store_socket_name() const
|
|
c_string raylet_socket_name() const
|
|
int metrics_export_port() const
|
|
int metrics_agent_port() const
|
|
int dashboard_agent_listen_port() const
|
|
int runtime_env_agent_port() const
|
|
CNodeDeathInfo death_info() const
|
|
void ParseFromString(const c_string &serialized)
|
|
const c_string& SerializeAsString() const
|
|
|
|
cdef enum CGcsNodeState "ray::rpc::GcsNodeInfo_GcsNodeState":
|
|
ALIVE "ray::rpc::GcsNodeInfo_GcsNodeState_ALIVE",
|
|
|
|
cdef cppclass CNodeSelector "ray::rpc::GetAllNodeInfoRequest::NodeSelector":
|
|
CNodeSelector()
|
|
void set_node_id(const c_string &node_id)
|
|
void set_node_name(const c_string &node_name)
|
|
void set_node_ip_address(const c_string &node_ip_address)
|
|
void set_is_head_node(c_bool is_head_node)
|
|
void ParseFromString(const c_string &serialized)
|
|
|
|
cdef cppclass CJobTableData "ray::rpc::JobTableData":
|
|
c_string job_id() const
|
|
c_bool is_dead() const
|
|
CJobConfig config() const
|
|
const c_string &SerializeAsString() const
|
|
|
|
cdef cppclass CGetAllResourceUsageReply "ray::rpc::GetAllResourceUsageReply":
|
|
const c_string& SerializeAsString() const
|
|
|
|
cdef cppclass CPythonFunction "ray::rpc::PythonFunction":
|
|
void set_key(const c_string &key)
|
|
c_string key() const
|
|
|
|
cdef cppclass CErrorTableData "ray::rpc::ErrorTableData":
|
|
c_string job_id() const
|
|
c_string type() const
|
|
c_string error_message() const
|
|
double timestamp() const
|
|
|
|
void set_job_id(const c_string &job_id)
|
|
void set_type(const c_string &type)
|
|
void set_error_message(const c_string &error_message)
|
|
void set_timestamp(double timestamp)
|
|
|
|
cdef cppclass CLogBatch "ray::rpc::LogBatch":
|
|
c_string ip() const
|
|
c_string pid() const
|
|
c_string job_id() const
|
|
c_bool is_error() const
|
|
c_string actor_name() const
|
|
c_string task_name() const
|
|
|
|
void set_ip(const c_string &ip)
|
|
void set_pid(const c_string &pid)
|
|
void set_job_id(const c_string &job_id)
|
|
void set_is_error(c_bool is_error)
|
|
void add_lines(const c_string &line)
|
|
void set_actor_name(const c_string &actor_name)
|
|
void set_task_name(const c_string &task_name)
|
|
|
|
cdef cppclass CActorTableData "ray::rpc::ActorTableData":
|
|
CAddress address() const
|
|
void ParseFromString(const c_string &serialized)
|
|
const c_string &SerializeAsString() const
|
|
|
|
cdef extern from "src/ray/protobuf/autoscaler.pb.h" nogil:
|
|
cdef cppclass CGetClusterStatusReply "ray::rpc::autoscaler::GetClusterStatusReply":
|
|
c_string serialized_cluster_status() const
|
|
void ParseFromString(const c_string &serialized)
|
|
const c_string &SerializeAsString() const
|
|
|
|
cdef extern from "ray/raylet_rpc_client/raylet_client_with_io_context.h" nogil:
|
|
cdef cppclass CRayletClientWithIoContext "ray::rpc::RayletClientWithIoContext":
|
|
CRayletClientWithIoContext(const c_string &ip_address, int port)
|
|
CRayStatus GetWorkerPIDs(const OptionalItemPyCallback[c_vector[int32_t]] &callback,
|
|
int64_t timeout_ms)
|
|
CRayStatus GetAgentPIDs(const OptionalItemPyCallback[c_vector[int32_t]] &callback,
|
|
int64_t timeout_ms)
|
|
|
|
cdef extern from "ray/common/task/task_spec.h" nogil:
|
|
cdef cppclass CConcurrencyGroup "ray::ConcurrencyGroup":
|
|
CConcurrencyGroup(
|
|
c_string name,
|
|
uint32_t max_concurrency,
|
|
c_vector[CFunctionDescriptor] c_fds)
|
|
CConcurrencyGroup()
|
|
c_string GetName() const
|
|
uint32_t GetMaxConcurrency() const
|
|
c_vector[CFunctionDescriptor] GetFunctionDescriptors() const
|
|
|
|
cdef extern from "ray/common/constants.h" nogil:
|
|
cdef const char[] kWorkerSetupHookKeyName
|
|
cdef int kResourceUnitScaling
|
|
cdef const char[] kImplicitResourcePrefix
|
|
cdef int kStreamingGeneratorReturn
|
|
cdef const char[] kGcsAutoscalerStateNamespace
|
|
cdef const char[] kGcsAutoscalerV2EnabledKey
|
|
cdef const char[] kGcsAutoscalerClusterConfigKey
|
|
cdef const char[] kGcsPidKey
|
|
cdef const char[] kNodeTypeNameEnv
|
|
cdef const char[] kNodeMarketTypeEnv
|
|
cdef const char[] kNodeRegionEnv
|
|
cdef const char[] kNodeZoneEnv
|
|
cdef const char[] kLabelKeyNodeID
|
|
cdef const char[] kLabelKeyNodeAcceleratorType
|
|
cdef const char[] kLabelKeyNodeMarketType
|
|
cdef const char[] kLabelKeyNodeRegion
|
|
cdef const char[] kLabelKeyNodeZone
|
|
cdef const char[] kLabelKeyNodeGroup
|
|
cdef const char[] kLabelKeyTpuTopology
|
|
# Port names for local port discovery
|
|
cdef const char[] kRuntimeEnvAgentPortName
|
|
cdef const char[] kMetricsAgentPortName
|
|
cdef const char[] kMetricsExportPortName
|
|
cdef const char[] kDashboardAgentListenPortName
|
|
cdef const char[] kGcsServerPortName
|
|
cdef const char[] kLabelKeyTpuSliceName
|
|
cdef const char[] kLabelKeyTpuWorkerId
|
|
cdef const char[] kLabelKeyTpuPodType
|
|
cdef const char[] kRayInternalNamespacePrefix
|