common.pxd 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885
  1. from libcpp cimport bool as c_bool
  2. from libcpp.memory cimport shared_ptr, unique_ptr
  3. from libcpp.string cimport string as c_string
  4. from libc.stdint cimport uint8_t, int32_t, uint64_t, int64_t, uint32_t
  5. from libcpp.unordered_map cimport unordered_map
  6. from libcpp.vector cimport vector as c_vector
  7. from libcpp.pair cimport pair as c_pair
  8. from ray.includes.optional cimport (
  9. optional,
  10. )
  11. from ray.includes.unique_ids cimport (
  12. CActorID,
  13. CJobID,
  14. CClusterID,
  15. CWorkerID,
  16. CObjectID,
  17. CTaskID,
  18. CPlacementGroupID,
  19. CNodeID,
  20. )
  21. from ray.includes.function_descriptor cimport (
  22. CFunctionDescriptor,
  23. )
  24. cdef extern from * namespace "polyfill" nogil:
  25. """
  26. namespace polyfill {
  27. template <typename T>
  28. inline typename std::remove_reference<T>::type&& move(T& t) {
  29. return std::move(t);
  30. }
  31. template <typename T>
  32. inline typename std::remove_reference<T>::type&& move(T&& t) {
  33. return std::move(t);
  34. }
  35. } // namespace polyfill
  36. """
  37. cdef T move[T](T)
  38. cdef extern from "ray/common/status.h" namespace "ray" nogil:
  39. cdef enum class CStatusCode "ray::StatusCode":
  40. pass
  41. c_bool operator==(CStatusCode lhs, CStatusCode rhs)
  42. cdef cppclass CRayStatus "ray::Status":
  43. CRayStatus()
  44. CRayStatus(CStatusCode code, const c_string &msg)
  45. CRayStatus(CStatusCode code, const c_string &msg, int rpc_code)
  46. CRayStatus(const CRayStatus &s)
  47. @staticmethod
  48. CRayStatus OK()
  49. @staticmethod
  50. CRayStatus OutOfMemory(const c_string &msg)
  51. @staticmethod
  52. CRayStatus KeyError(const c_string &msg)
  53. @staticmethod
  54. CRayStatus Invalid(const c_string &msg)
  55. @staticmethod
  56. CRayStatus IOError(const c_string &msg)
  57. @staticmethod
  58. CRayStatus TypeError(const c_string &msg)
  59. @staticmethod
  60. CRayStatus UnknownError(const c_string &msg)
  61. @staticmethod
  62. CRayStatus NotImplemented(const c_string &msg)
  63. @staticmethod
  64. CRayStatus ObjectStoreFull(const c_string &msg)
  65. @staticmethod
  66. CRayStatus RedisError(const c_string &msg)
  67. @staticmethod
  68. CRayStatus TimedOut(const c_string &msg)
  69. @staticmethod
  70. CRayStatus InvalidArgument(const c_string &msg)
  71. @staticmethod
  72. CRayStatus Interrupted(const c_string &msg)
  73. @staticmethod
  74. CRayStatus IntentionalSystemExit(const c_string &msg)
  75. @staticmethod
  76. CRayStatus UnexpectedSystemExit(const c_string &msg)
  77. @staticmethod
  78. CRayStatus CreationTaskError(const c_string &msg)
  79. @staticmethod
  80. CRayStatus NotFound()
  81. @staticmethod
  82. CRayStatus ObjectRefEndOfStream()
  83. c_bool ok()
  84. c_bool IsOutOfMemory()
  85. c_bool IsKeyError()
  86. c_bool IsInvalid()
  87. c_bool IsIOError()
  88. c_bool IsTypeError()
  89. c_bool IsUnknownError()
  90. c_bool IsNotImplemented()
  91. c_bool IsObjectStoreFull()
  92. c_bool IsAlreadyExists()
  93. c_bool IsOutOfDisk()
  94. c_bool IsRedisError()
  95. c_bool IsTimedOut()
  96. c_bool IsInvalidArgument()
  97. c_bool IsInterrupted()
  98. c_bool IsObjectNotFound()
  99. c_bool IsNotFound()
  100. c_bool IsObjectUnknownOwner()
  101. c_bool IsRpcError()
  102. c_bool IsOutOfResource()
  103. c_bool IsObjectRefEndOfStream()
  104. c_bool IsIntentionalSystemExit()
  105. c_bool IsUnexpectedSystemExit()
  106. c_bool IsChannelError()
  107. c_bool IsChannelTimeoutError()
  108. c_bool IsUnauthenticated()
  109. c_string ToString()
  110. c_string CodeAsString()
  111. CStatusCode code()
  112. c_string message()
  113. int rpc_code()
  114. # We can later add more of the common status factory methods as needed
  115. cdef CRayStatus RayStatus_OK "Status::OK"()
  116. cdef CRayStatus RayStatus_Invalid "Status::Invalid"()
  117. cdef CRayStatus RayStatus_NotImplemented "Status::NotImplemented"()
  118. cdef extern from "ray/common/status_or.h" namespace "ray" nogil:
  119. cdef cppclass CStatusOr "ray::StatusOr"[T]:
  120. c_bool ok()
  121. const CRayStatus &status() const
  122. T &value()
  123. cdef extern from "ray/common/status.h" namespace "ray::StatusT" nogil:
  124. cdef cppclass CStatusTIOError "ray::StatusT::IOError":
  125. CStatusTIOError(const c_string &msg)
  126. c_string message() const
  127. cdef cppclass CStatusTTimedOut "ray::StatusT::TimedOut":
  128. CStatusTTimedOut(const c_string &msg)
  129. c_string message() const
  130. cdef cppclass CStatusTInvalid "ray::StatusT::Invalid":
  131. CStatusTInvalid(const c_string &msg)
  132. c_string message() const
  133. cdef extern from "ray/common/status.h" namespace "ray" nogil:
  134. cdef cppclass CWaitForPersistedPortResult "ray::StatusSetOr<int, ray::StatusT::IOError, ray::StatusT::TimedOut, ray::StatusT::Invalid>":
  135. c_bool has_value()
  136. c_bool has_error()
  137. int &value()
  138. c_string message()
  139. cdef extern from "ray/util/port_persistence.h" namespace "ray" nogil:
  140. c_string GetPortFileName "ray::GetPortFileName"(
  141. const CNodeID &node_id,
  142. const c_string &port_name)
  143. CRayStatus PersistPort "ray::PersistPort"(
  144. const c_string &dir,
  145. const CNodeID &node_id,
  146. const c_string &port_name,
  147. int port)
  148. CWaitForPersistedPortResult WaitForPersistedPort "ray::WaitForPersistedPort"(
  149. const c_string &dir,
  150. const CNodeID &node_id,
  151. const c_string &port_name,
  152. int timeout_ms,
  153. int poll_interval_ms)
  154. cdef extern from "ray/common/id.h" namespace "ray" nogil:
  155. const CTaskID GenerateTaskId(const CJobID &job_id,
  156. const CTaskID &parent_task_id,
  157. int parent_task_counter)
  158. cdef extern from "src/ray/protobuf/common.pb.h" nogil:
  159. cdef cppclass CLanguage "ray::Language":
  160. pass
  161. cdef cppclass CWorkerType "ray::core::WorkerType":
  162. pass
  163. cdef cppclass CWorkerExitType "ray::rpc::WorkerExitType":
  164. pass
  165. cdef cppclass CTaskType "ray::TaskType":
  166. pass
  167. cdef cppclass CPlacementStrategy "ray::core::PlacementStrategy":
  168. pass
  169. cdef cppclass CDefaultSchedulingStrategy "ray::rpc::DefaultSchedulingStrategy": # noqa: E501
  170. CDefaultSchedulingStrategy()
  171. cdef cppclass CSpreadSchedulingStrategy "ray::rpc::SpreadSchedulingStrategy": # noqa: E501
  172. CSpreadSchedulingStrategy()
  173. cdef cppclass CPlacementGroupSchedulingStrategy "ray::rpc::PlacementGroupSchedulingStrategy": # noqa: E501
  174. CPlacementGroupSchedulingStrategy()
  175. void set_placement_group_id(const c_string& placement_group_id)
  176. void set_placement_group_bundle_index(int64_t placement_group_bundle_index) # noqa: E501
  177. void set_placement_group_capture_child_tasks(c_bool placement_group_capture_child_tasks) # noqa: E501
  178. cdef cppclass CNodeAffinitySchedulingStrategy "ray::rpc::NodeAffinitySchedulingStrategy": # noqa: E501
  179. CNodeAffinitySchedulingStrategy()
  180. void set_node_id(const c_string& node_id)
  181. void set_soft(c_bool soft)
  182. void set_spill_on_unavailable(c_bool spill_on_unavailable)
  183. void set_fail_on_unavailable(c_bool fail_on_unavailable)
  184. cdef cppclass CSchedulingStrategy "ray::rpc::SchedulingStrategy":
  185. CSchedulingStrategy()
  186. void clear_scheduling_strategy()
  187. CSpreadSchedulingStrategy* mutable_spread_scheduling_strategy()
  188. CDefaultSchedulingStrategy* mutable_default_scheduling_strategy()
  189. CPlacementGroupSchedulingStrategy* mutable_placement_group_scheduling_strategy() # noqa: E501
  190. CNodeAffinitySchedulingStrategy* mutable_node_affinity_scheduling_strategy()
  191. CNodeLabelSchedulingStrategy* mutable_node_label_scheduling_strategy()
  192. cdef cppclass CAddress "ray::rpc::Address":
  193. CAddress()
  194. const c_string &SerializeAsString() const
  195. void ParseFromString(const c_string &serialized)
  196. void CopyFrom(const CAddress& address)
  197. const c_string &worker_id()
  198. cdef cppclass CObjectReference "ray::rpc::ObjectReference":
  199. CObjectReference()
  200. CAddress owner_address() const
  201. const c_string &object_id() const
  202. const c_string &call_site() const
  203. c_bool has_tensor_transport() const
  204. const c_string &tensor_transport() const
  205. cdef cppclass CNodeLabelSchedulingStrategy "ray::rpc::NodeLabelSchedulingStrategy": # noqa: E501
  206. CNodeLabelSchedulingStrategy()
  207. CLabelMatchExpressions* mutable_hard()
  208. CLabelMatchExpressions* mutable_soft()
  209. cdef cppclass CLabelMatchExpressions "ray::rpc::LabelMatchExpressions": # noqa: E501
  210. CLabelMatchExpressions()
  211. CLabelMatchExpression* add_expressions()
  212. cdef cppclass CLabelMatchExpression "ray::rpc::LabelMatchExpression": # noqa: E501
  213. CLabelMatchExpression()
  214. void set_key(const c_string &key)
  215. CLabelOperator* mutable_operator_()
  216. cdef cppclass CLabelIn "ray::rpc::LabelIn": # noqa: E501
  217. CLabelIn()
  218. void add_values(const c_string &value)
  219. cdef cppclass CLabelNotIn "ray::rpc::LabelNotIn": # noqa: E501
  220. CLabelNotIn()
  221. void add_values(const c_string &value)
  222. cdef cppclass CLabelExists "ray::rpc::LabelExists": # noqa: E501
  223. CLabelExists()
  224. cdef cppclass CLabelDoesNotExist "ray::rpc::LabelDoesNotExist": # noqa: E501
  225. CLabelDoesNotExist()
  226. cdef cppclass CLabelNotIn "ray::rpc::LabelNotIn": # noqa: E501
  227. CLabelNotIn()
  228. void add_values(const c_string &value)
  229. cdef cppclass CLabelOperator "ray::rpc::LabelOperator": # noqa: E501
  230. CLabelOperator()
  231. CLabelIn* mutable_label_in()
  232. CLabelNotIn* mutable_label_not_in()
  233. CLabelExists* mutable_label_exists()
  234. CLabelDoesNotExist* mutable_label_does_not_exist()
  235. cdef cppclass CLineageReconstructionTask "ray::rpc::LineageReconstructionTask":
  236. CLineageReconstructionTask()
  237. const c_string &SerializeAsString() const
  238. cdef extern from "ray/common/scheduling/cluster_resource_data.h" namespace "ray" nogil:
  239. cdef cppclass CNodeResources "ray::NodeResources":
  240. CNodeResources()
  241. unordered_map[c_string, c_string] labels
  242. c_bool HasRequiredLabels(const CLabelSelector &label_selector) const
  243. void SetNodeResourcesLabels(CNodeResources& resources, const unordered_map[c_string, c_string]& labels)
  244. cdef extern from "ray/common/scheduling/label_selector.h" namespace "ray":
  245. cdef cppclass CLabelSelector "ray::LabelSelector":
  246. CLabelSelector() nogil except +
  247. void AddConstraint(const c_string& key, const c_string& value) nogil except +
  248. cdef extern from "ray/common/scheduling/fallback_strategy.h" namespace "ray":
  249. cdef cppclass CFallbackOption "ray::FallbackOption":
  250. CLabelSelector label_selector
  251. CFallbackOption() nogil except +
  252. CFallbackOption(CLabelSelector) nogil except +
  253. # This is a workaround for C++ enum class since Cython has no corresponding
  254. # representation.
  255. cdef extern from "src/ray/protobuf/common.pb.h" nogil:
  256. cdef CLanguage LANGUAGE_PYTHON "ray::Language::PYTHON"
  257. cdef CLanguage LANGUAGE_CPP "ray::Language::CPP"
  258. cdef CLanguage LANGUAGE_JAVA "ray::Language::JAVA"
  259. cdef extern from "src/ray/protobuf/common.pb.h" nogil:
  260. cdef CWorkerType WORKER_TYPE_WORKER "ray::core::WorkerType::WORKER"
  261. cdef CWorkerType WORKER_TYPE_DRIVER "ray::core::WorkerType::DRIVER"
  262. cdef CWorkerType WORKER_TYPE_SPILL_WORKER "ray::core::WorkerType::SPILL_WORKER" # noqa: E501
  263. cdef CWorkerType WORKER_TYPE_RESTORE_WORKER "ray::core::WorkerType::RESTORE_WORKER" # noqa: E501
  264. cdef CWorkerType WORKER_TYPE_UTIL_WORKER "ray::core::WorkerType::UTIL_WORKER" # noqa: E501
  265. cdef CWorkerExitType WORKER_EXIT_TYPE_USER_ERROR "ray::rpc::WorkerExitType::USER_ERROR" # noqa: E501
  266. cdef CWorkerExitType WORKER_EXIT_TYPE_SYSTEM_ERROR "ray::rpc::WorkerExitType::SYSTEM_ERROR" # noqa: E501
  267. cdef CWorkerExitType WORKER_EXIT_TYPE_INTENTIONAL_SYSTEM_ERROR "ray::rpc::WorkerExitType::INTENDED_SYSTEM_EXIT" # noqa: E501
  268. cdef extern from "src/ray/protobuf/common.pb.h" nogil:
  269. cdef CTaskType TASK_TYPE_NORMAL_TASK "ray::TaskType::NORMAL_TASK"
  270. cdef CTaskType TASK_TYPE_ACTOR_CREATION_TASK "ray::TaskType::ACTOR_CREATION_TASK" # noqa: E501
  271. cdef CTaskType TASK_TYPE_ACTOR_TASK "ray::TaskType::ACTOR_TASK"
  272. cdef extern from "src/ray/protobuf/common.pb.h" nogil:
  273. cdef CPlacementStrategy PLACEMENT_STRATEGY_PACK \
  274. "ray::core::PlacementStrategy::PACK"
  275. cdef CPlacementStrategy PLACEMENT_STRATEGY_SPREAD \
  276. "ray::core::PlacementStrategy::SPREAD"
  277. cdef CPlacementStrategy PLACEMENT_STRATEGY_STRICT_PACK \
  278. "ray::core::PlacementStrategy::STRICT_PACK"
  279. cdef CPlacementStrategy PLACEMENT_STRATEGY_STRICT_SPREAD \
  280. "ray::core::PlacementStrategy::STRICT_SPREAD"
  281. cdef extern from "ray/common/buffer.h" namespace "ray" nogil:
  282. cdef cppclass CBuffer "ray::Buffer":
  283. uint8_t *Data() const
  284. size_t Size() const
  285. c_bool IsPlasmaBuffer() const
  286. cdef cppclass LocalMemoryBuffer(CBuffer):
  287. LocalMemoryBuffer(uint8_t *data, size_t size, c_bool copy_data)
  288. LocalMemoryBuffer(size_t size)
  289. cdef cppclass SharedMemoryBuffer(CBuffer):
  290. SharedMemoryBuffer(
  291. const shared_ptr[CBuffer] &buffer,
  292. int64_t offset,
  293. int64_t size)
  294. c_bool IsPlasmaBuffer() const
  295. cdef extern from "ray/common/ray_object.h" nogil:
  296. cdef cppclass CRayObject "ray::RayObject":
  297. CRayObject(const shared_ptr[CBuffer] &data,
  298. const shared_ptr[CBuffer] &metadata,
  299. const c_vector[CObjectReference] &nested_refs)
  300. c_bool HasData() const
  301. c_bool HasMetadata() const
  302. const size_t DataSize() const
  303. const shared_ptr[CBuffer] &GetData()
  304. const shared_ptr[CBuffer] &GetMetadata() const
  305. c_bool IsInPlasmaError() const
  306. optional[c_string] GetTensorTransport() const
  307. void SetDirectTransportMetadata(c_string direct_transport_metadata)
  308. cdef extern from "ray/core_worker/common.h" nogil:
  309. cdef cppclass CRayFunction "ray::core::RayFunction":
  310. CRayFunction()
  311. CRayFunction(CLanguage language,
  312. const CFunctionDescriptor &function_descriptor)
  313. CLanguage GetLanguage()
  314. const CFunctionDescriptor GetFunctionDescriptor()
  315. cdef cppclass CTaskArg "ray::TaskArg":
  316. pass
  317. cdef cppclass CTaskArgByReference "ray::TaskArgByReference":
  318. CTaskArgByReference(const CObjectID &object_id,
  319. const CAddress &owner_address,
  320. const c_string &call_site,
  321. optional[c_string] tensor_transport)
  322. cdef cppclass CTaskArgByValue "ray::TaskArgByValue":
  323. CTaskArgByValue(const shared_ptr[CRayObject] &data)
  324. cdef cppclass CTaskOptions "ray::core::TaskOptions":
  325. CTaskOptions()
  326. CTaskOptions(c_string name, int num_returns,
  327. unordered_map[c_string, double] &resources,
  328. c_string concurrency_group_name,
  329. int64_t generator_backpressure_num_objects)
  330. CTaskOptions(c_string name, int num_returns,
  331. unordered_map[c_string, double] &resources,
  332. c_string concurrency_group_name,
  333. int64_t generator_backpressure_num_objects,
  334. c_string serialized_runtime_env)
  335. CTaskOptions(c_string name, int num_returns,
  336. unordered_map[c_string, double] &resources,
  337. c_string concurrency_group_name,
  338. int64_t generator_backpressure_num_objects,
  339. c_string serialized_runtime_env,
  340. c_bool enable_task_events,
  341. const unordered_map[c_string, c_string] &labels,
  342. CLabelSelector label_selector,
  343. optional[c_string] tensor_transport,
  344. c_vector[CFallbackOption] fallback_strategy)
  345. cdef cppclass CActorCreationOptions "ray::core::ActorCreationOptions":
  346. CActorCreationOptions()
  347. CActorCreationOptions(
  348. int64_t max_restarts,
  349. int64_t max_task_retries,
  350. int32_t max_concurrency,
  351. const unordered_map[c_string, double] &resources,
  352. const unordered_map[c_string, double] &placement_resources,
  353. const c_vector[c_string] &dynamic_worker_options,
  354. optional[c_bool] is_detached, c_string &name, c_string &ray_namespace,
  355. c_bool is_asyncio,
  356. const CSchedulingStrategy &scheduling_strategy,
  357. c_string serialized_runtime_env,
  358. const c_vector[CConcurrencyGroup] &concurrency_groups,
  359. c_bool allow_out_of_order_execution,
  360. int32_t max_pending_calls,
  361. c_bool enable_tensor_transport,
  362. c_bool enable_task_events,
  363. const unordered_map[c_string, c_string] &labels,
  364. CLabelSelector label_selector,
  365. c_vector[CFallbackOption] fallback_strategy)
  366. cdef cppclass CPlacementGroupCreationOptions \
  367. "ray::core::PlacementGroupCreationOptions":
  368. CPlacementGroupCreationOptions()
  369. CPlacementGroupCreationOptions(
  370. const c_string &name,
  371. CPlacementStrategy strategy,
  372. const c_vector[unordered_map[c_string, double]] &bundles,
  373. c_bool is_detached,
  374. CNodeID soft_target_node_id,
  375. const c_vector[unordered_map[c_string, c_string]] &bundle_label_selector,
  376. )
  377. cdef cppclass CObjectLocation "ray::core::ObjectLocation":
  378. const int64_t GetObjectSize() const
  379. const c_vector[CNodeID] &GetNodeIDs() const
  380. c_bool IsSpilled() const
  381. const c_string &GetSpilledURL() const
  382. const CNodeID &GetSpilledNodeID() const
  383. const c_bool GetDidSpill() const
  384. cdef extern from "ray/common/python_callbacks.h" namespace "ray":
  385. cdef cppclass MultiItemPyCallback[T]:
  386. MultiItemPyCallback(
  387. object (*)(CRayStatus, c_vector[T]) nogil,
  388. void (object, object) nogil,
  389. object) nogil
  390. cdef cppclass OptionalItemPyCallback[T]:
  391. OptionalItemPyCallback(
  392. object (*)(CRayStatus, optional[T]) nogil,
  393. void (object, object) nogil,
  394. object) nogil
  395. cdef cppclass StatusPyCallback:
  396. StatusPyCallback(
  397. object (*)(CRayStatus) nogil,
  398. void (object, object) nogil,
  399. object) nogil
  400. cdef extern from "ray/gcs_rpc_client/accessors/actor_info_accessor_interface.h" nogil:
  401. cdef cppclass CActorInfoAccessorInterface "ray::gcs::ActorInfoAccessorInterface":
  402. void AsyncGetAllByFilter(
  403. const optional[CActorID] &actor_id,
  404. const optional[CJobID] &job_id,
  405. const optional[c_string] &actor_state_name,
  406. const MultiItemPyCallback[CActorTableData] &callback,
  407. int64_t timeout_ms)
  408. cdef extern from "ray/gcs_rpc_client/accessor.h" nogil:
  409. cdef cppclass CJobInfoAccessor "ray::gcs::JobInfoAccessor":
  410. CRayStatus GetAll(
  411. const optional[c_string] &job_or_submission_id,
  412. c_bool skip_submission_job_info_field,
  413. c_bool skip_is_running_tasks_field,
  414. c_vector[CJobTableData] &result,
  415. int64_t timeout_ms)
  416. void AsyncGetAll(
  417. const optional[c_string] &job_or_submission_id,
  418. c_bool skip_submission_job_info_field,
  419. c_bool skip_is_running_tasks_field,
  420. const MultiItemPyCallback[CJobTableData] &callback,
  421. int64_t timeout_ms)
  422. cdef cppclass CNodeInfoAccessor "ray::gcs::NodeInfoAccessor":
  423. CRayStatus CheckAlive(
  424. const c_vector[CNodeID] &node_ids,
  425. int64_t timeout_ms,
  426. c_vector[c_bool] &result)
  427. void AsyncCheckAlive(
  428. const c_vector[CNodeID] &node_ids,
  429. int64_t timeout_ms,
  430. const MultiItemPyCallback[c_bool] &callback)
  431. CRayStatus DrainNodes(
  432. const c_vector[CNodeID] &node_ids,
  433. int64_t timeout_ms,
  434. c_vector[c_string] &drained_node_ids)
  435. CStatusOr[c_vector[CGcsNodeInfo]] GetAllNoCache(
  436. int64_t timeout_ms,
  437. optional[CGcsNodeState] state_filter,
  438. const c_vector[CNodeSelector] &node_selectors)
  439. void AsyncGetAll(
  440. const MultiItemPyCallback[CGcsNodeInfo] &callback,
  441. int64_t timeout_ms,
  442. c_vector[CNodeID] node_ids)
  443. cdef cppclass CNodeResourceInfoAccessor "ray::gcs::NodeResourceInfoAccessor":
  444. CRayStatus GetAllResourceUsage(
  445. int64_t timeout_ms,
  446. CGetAllResourceUsageReply &serialized_reply)
  447. cdef cppclass CInternalKVAccessor "ray::gcs::InternalKVAccessor":
  448. CRayStatus Keys(
  449. const c_string &ns,
  450. const c_string &prefix,
  451. int64_t timeout_ms,
  452. c_vector[c_string] &value)
  453. CRayStatus Put(
  454. const c_string &ns,
  455. const c_string &key,
  456. const c_string &value,
  457. c_bool overwrite,
  458. int64_t timeout_ms,
  459. c_bool &added)
  460. CRayStatus Get(
  461. const c_string &ns,
  462. const c_string &key,
  463. int64_t timeout_ms,
  464. c_string &value)
  465. CRayStatus MultiGet(
  466. const c_string &ns,
  467. const c_vector[c_string] &keys,
  468. int64_t timeout_ms,
  469. unordered_map[c_string, c_string] &values)
  470. CRayStatus Del(
  471. const c_string &ns,
  472. const c_string &key,
  473. c_bool del_by_prefix,
  474. int64_t timeout_ms,
  475. int& num_deleted)
  476. CRayStatus Exists(
  477. const c_string &ns,
  478. const c_string &key,
  479. int64_t timeout_ms,
  480. c_bool &exists)
  481. void AsyncInternalKVKeys(
  482. const c_string &ns,
  483. const c_string &prefix,
  484. int64_t timeout_ms,
  485. const OptionalItemPyCallback[c_vector[c_string]] &callback)
  486. void AsyncInternalKVGet(
  487. const c_string &ns,
  488. const c_string &key,
  489. int64_t timeout_ms,
  490. const OptionalItemPyCallback[c_string] &callback)
  491. void AsyncInternalKVMultiGet(
  492. const c_string &ns,
  493. const c_vector[c_string] &keys,
  494. int64_t timeout_ms,
  495. const OptionalItemPyCallback[unordered_map[c_string, c_string]] &callback)
  496. void AsyncInternalKVPut(
  497. const c_string &ns,
  498. const c_string &key,
  499. const c_string &value,
  500. c_bool overwrite,
  501. int64_t timeout_ms,
  502. const OptionalItemPyCallback[c_bool] &callback)
  503. void AsyncInternalKVExists(
  504. const c_string &ns,
  505. const c_string &key,
  506. int64_t timeout_ms,
  507. const OptionalItemPyCallback[c_bool] &callback)
  508. void AsyncInternalKVDel(
  509. const c_string &ns,
  510. const c_string &key,
  511. c_bool del_by_prefix,
  512. int64_t timeout_ms,
  513. const OptionalItemPyCallback[int] &callback)
  514. cdef cppclass CRuntimeEnvAccessor "ray::gcs::RuntimeEnvAccessor":
  515. CRayStatus PinRuntimeEnvUri(
  516. const c_string &uri,
  517. int expiration_s,
  518. int64_t timeout_ms)
  519. cdef cppclass CAutoscalerStateAccessor "ray::gcs::AutoscalerStateAccessor":
  520. CRayStatus RequestClusterResourceConstraint(
  521. int64_t timeout_ms,
  522. const c_vector[unordered_map[c_string, double]] &bundles,
  523. const c_vector[unordered_map[c_string, c_string]] &label_selectors,
  524. const c_vector[int64_t] &count_array,
  525. )
  526. CRayStatus GetClusterResourceState(
  527. int64_t timeout_ms,
  528. c_string &serialized_reply
  529. )
  530. CRayStatus GetClusterStatus(
  531. int64_t timeout_ms,
  532. c_string &serialized_reply
  533. )
  534. void AsyncGetClusterStatus(
  535. int64_t timeout_ms,
  536. const OptionalItemPyCallback[CGetClusterStatusReply] &callback)
  537. CRayStatus ReportAutoscalingState(
  538. int64_t timeout_ms,
  539. const c_string &serialized_state
  540. )
  541. CRayStatus ReportClusterConfig(
  542. int64_t timeout_ms,
  543. const c_string &serialized_cluster_config
  544. )
  545. CRayStatus DrainNode(
  546. const c_string &node_id,
  547. int32_t reason,
  548. const c_string &reason_message,
  549. int64_t deadline_timestamp_ms,
  550. int64_t timeout_ms,
  551. c_bool &is_accepted,
  552. c_string &rejection_reason_message
  553. )
  554. cdef cppclass CPublisherAccessor "ray::gcs::PublisherAccessor":
  555. CRayStatus PublishError(
  556. c_string key_id,
  557. CErrorTableData data,
  558. int64_t timeout_ms)
  559. CRayStatus PublishLogs(
  560. c_string key_id,
  561. CLogBatch data,
  562. int64_t timeout_ms)
  563. void AsyncPublishNodeResourceUsage(
  564. c_string key_id,
  565. c_string node_resource_usage,
  566. const StatusPyCallback &callback
  567. )
  568. cdef cppclass CTaskInfoAccessor "ray::gcs::TaskInfoAccessor":
  569. void AsyncAddEvents(
  570. CAddEventsRequest &&request,
  571. const StatusPyCallback &callback,
  572. int64_t timeout_ms)
  573. cdef extern from "ray/gcs_rpc_client/gcs_client.h" nogil:
  574. cdef enum CGrpcStatusCode "grpc::StatusCode":
  575. UNAVAILABLE "grpc::StatusCode::UNAVAILABLE",
  576. UNKNOWN "grpc::StatusCode::UNKNOWN",
  577. DEADLINE_EXCEEDED "grpc::StatusCode::DEADLINE_EXCEEDED",
  578. RESOURCE_EXHAUSTED "grpc::StatusCode::RESOURCE_EXHAUSTED",
  579. UNIMPLEMENTED "grpc::StatusCode::UNIMPLEMENTED",
  580. cdef cppclass CGcsClientOptions "ray::gcs::GcsClientOptions":
  581. CGcsClientOptions(
  582. c_string gcs_address, int port, CClusterID cluster_id,
  583. c_bool allow_cluster_id_nil, c_bool fetch_cluster_id_if_nil)
  584. cdef cppclass CGcsClient "ray::gcs::GcsClient":
  585. CGcsClient(CGcsClientOptions options)
  586. c_pair[c_string, int] GetGcsServerAddress() const
  587. CClusterID GetClusterId() const
  588. CActorInfoAccessorInterface& Actors()
  589. CJobInfoAccessor& Jobs()
  590. CInternalKVAccessor& InternalKV()
  591. CNodeInfoAccessor& Nodes()
  592. CNodeResourceInfoAccessor& NodeResources()
  593. CRuntimeEnvAccessor& RuntimeEnvs()
  594. CAutoscalerStateAccessor& Autoscaler()
  595. CPublisherAccessor& Publisher()
  596. CTaskInfoAccessor& Tasks()
  597. CGcsRpcClient& GetGcsRpcClient()
  598. cdef CRayStatus ConnectOnSingletonIoContext(CGcsClient &gcs_client, int timeout_ms)
  599. cdef extern from "ray/gcs_rpc_client/rpc_client.h" namespace "ray::rpc::events" nogil:
  600. cdef cppclass CAddEventsRequest "ray::rpc::events::AddEventsRequest":
  601. bint ParseFromString(const c_string &data)
  602. cdef cppclass CAddEventsReply "ray::rpc::events::AddEventsReply":
  603. pass
  604. cdef extern from "ray/gcs_rpc_client/rpc_client.h" namespace "ray::rpc" nogil:
  605. cdef cppclass CGcsRpcClient "ray::rpc::GcsRpcClient":
  606. pass
  607. cdef extern from "ray/gcs_rpc_client/gcs_client.h" namespace "ray::gcs" nogil:
  608. unordered_map[c_string, double] PythonGetResourcesTotal(
  609. const CGcsNodeInfo& node_info)
  610. cdef extern from "ray/pubsub/python_gcs_subscriber.h" nogil:
  611. cdef cppclass CPythonGcsSubscriber "ray::pubsub::PythonGcsSubscriber":
  612. CPythonGcsSubscriber(
  613. const c_string& gcs_address, int gcs_port, CChannelType channel_type,
  614. const c_string& subscriber_id, const c_string& worker_id)
  615. CRayStatus Subscribe()
  616. int64_t last_batch_size()
  617. CRayStatus PollError(
  618. c_string* key_id, int64_t timeout_ms, CErrorTableData* data)
  619. CRayStatus PollLogs(
  620. c_string* key_id, int64_t timeout_ms, CLogBatch* data)
  621. CRayStatus Close()
  622. cdef extern from "ray/pubsub/python_gcs_subscriber.h" namespace "ray::pubsub" nogil:
  623. c_vector[c_string] PythonGetLogBatchLines(CLogBatch log_batch)
  624. cdef extern from "ray/gcs_rpc_client/gcs_client.h" namespace "ray::gcs" nogil:
  625. unordered_map[c_string, c_string] PythonGetNodeLabels(
  626. const CGcsNodeInfo& node_info)
  627. cdef extern from "src/ray/protobuf/gcs.pb.h" nogil:
  628. cdef enum CChannelType "ray::rpc::ChannelType":
  629. RAY_ERROR_INFO_CHANNEL "ray::rpc::ChannelType::RAY_ERROR_INFO_CHANNEL",
  630. RAY_LOG_CHANNEL "ray::rpc::ChannelType::RAY_LOG_CHANNEL",
  631. GCS_ACTOR_CHANNEL "ray::rpc::ChannelType::GCS_ACTOR_CHANNEL",
  632. cdef cppclass CJobConfig "ray::rpc::JobConfig":
  633. c_string ray_namespace() const
  634. const c_string &SerializeAsString() const
  635. cdef cppclass CNodeDeathInfo "ray::rpc::NodeDeathInfo":
  636. int reason() const
  637. c_string reason_message() const
  638. cdef cppclass CGcsNodeInfo "ray::rpc::GcsNodeInfo":
  639. c_string node_id() const
  640. c_string node_name() const
  641. int state() const
  642. c_string node_manager_address() const
  643. c_string node_manager_hostname() const
  644. int node_manager_port() const
  645. int object_manager_port() const
  646. c_string object_store_socket_name() const
  647. c_string raylet_socket_name() const
  648. int metrics_export_port() const
  649. int metrics_agent_port() const
  650. int dashboard_agent_listen_port() const
  651. int runtime_env_agent_port() const
  652. CNodeDeathInfo death_info() const
  653. void ParseFromString(const c_string &serialized)
  654. const c_string& SerializeAsString() const
  655. cdef enum CGcsNodeState "ray::rpc::GcsNodeInfo_GcsNodeState":
  656. ALIVE "ray::rpc::GcsNodeInfo_GcsNodeState_ALIVE",
  657. cdef cppclass CNodeSelector "ray::rpc::GetAllNodeInfoRequest::NodeSelector":
  658. CNodeSelector()
  659. void set_node_id(const c_string &node_id)
  660. void set_node_name(const c_string &node_name)
  661. void set_node_ip_address(const c_string &node_ip_address)
  662. void set_is_head_node(c_bool is_head_node)
  663. void ParseFromString(const c_string &serialized)
  664. cdef cppclass CJobTableData "ray::rpc::JobTableData":
  665. c_string job_id() const
  666. c_bool is_dead() const
  667. CJobConfig config() const
  668. const c_string &SerializeAsString() const
  669. cdef cppclass CGetAllResourceUsageReply "ray::rpc::GetAllResourceUsageReply":
  670. const c_string& SerializeAsString() const
  671. cdef cppclass CPythonFunction "ray::rpc::PythonFunction":
  672. void set_key(const c_string &key)
  673. c_string key() const
  674. cdef cppclass CErrorTableData "ray::rpc::ErrorTableData":
  675. c_string job_id() const
  676. c_string type() const
  677. c_string error_message() const
  678. double timestamp() const
  679. void set_job_id(const c_string &job_id)
  680. void set_type(const c_string &type)
  681. void set_error_message(const c_string &error_message)
  682. void set_timestamp(double timestamp)
  683. cdef cppclass CLogBatch "ray::rpc::LogBatch":
  684. c_string ip() const
  685. c_string pid() const
  686. c_string job_id() const
  687. c_bool is_error() const
  688. c_string actor_name() const
  689. c_string task_name() const
  690. void set_ip(const c_string &ip)
  691. void set_pid(const c_string &pid)
  692. void set_job_id(const c_string &job_id)
  693. void set_is_error(c_bool is_error)
  694. void add_lines(const c_string &line)
  695. void set_actor_name(const c_string &actor_name)
  696. void set_task_name(const c_string &task_name)
  697. cdef cppclass CActorTableData "ray::rpc::ActorTableData":
  698. CAddress address() const
  699. void ParseFromString(const c_string &serialized)
  700. const c_string &SerializeAsString() const
  701. cdef extern from "src/ray/protobuf/autoscaler.pb.h" nogil:
  702. cdef cppclass CGetClusterStatusReply "ray::rpc::autoscaler::GetClusterStatusReply":
  703. c_string serialized_cluster_status() const
  704. void ParseFromString(const c_string &serialized)
  705. const c_string &SerializeAsString() const
  706. cdef extern from "ray/raylet_rpc_client/raylet_client_with_io_context.h" nogil:
  707. cdef cppclass CRayletClientWithIoContext "ray::rpc::RayletClientWithIoContext":
  708. CRayletClientWithIoContext(const c_string &ip_address, int port)
  709. CRayStatus GetWorkerPIDs(const OptionalItemPyCallback[c_vector[int32_t]] &callback,
  710. int64_t timeout_ms)
  711. CRayStatus GetAgentPIDs(const OptionalItemPyCallback[c_vector[int32_t]] &callback,
  712. int64_t timeout_ms)
  713. cdef extern from "ray/common/task/task_spec.h" nogil:
  714. cdef cppclass CConcurrencyGroup "ray::ConcurrencyGroup":
  715. CConcurrencyGroup(
  716. c_string name,
  717. uint32_t max_concurrency,
  718. c_vector[CFunctionDescriptor] c_fds)
  719. CConcurrencyGroup()
  720. c_string GetName() const
  721. uint32_t GetMaxConcurrency() const
  722. c_vector[CFunctionDescriptor] GetFunctionDescriptors() const
  723. cdef extern from "ray/common/constants.h" nogil:
  724. cdef const char[] kWorkerSetupHookKeyName
  725. cdef int kResourceUnitScaling
  726. cdef const char[] kImplicitResourcePrefix
  727. cdef int kStreamingGeneratorReturn
  728. cdef const char[] kGcsAutoscalerStateNamespace
  729. cdef const char[] kGcsAutoscalerV2EnabledKey
  730. cdef const char[] kGcsAutoscalerClusterConfigKey
  731. cdef const char[] kGcsPidKey
  732. cdef const char[] kNodeTypeNameEnv
  733. cdef const char[] kNodeMarketTypeEnv
  734. cdef const char[] kNodeRegionEnv
  735. cdef const char[] kNodeZoneEnv
  736. cdef const char[] kLabelKeyNodeAcceleratorType
  737. cdef const char[] kLabelKeyNodeMarketType
  738. cdef const char[] kLabelKeyNodeRegion
  739. cdef const char[] kLabelKeyNodeZone
  740. cdef const char[] kLabelKeyNodeGroup
  741. cdef const char[] kLabelKeyTpuTopology
  742. # Port names for local port discovery
  743. cdef const char[] kRuntimeEnvAgentPortName
  744. cdef const char[] kMetricsAgentPortName
  745. cdef const char[] kMetricsExportPortName
  746. cdef const char[] kDashboardAgentListenPortName
  747. cdef const char[] kGcsServerPortName
  748. cdef const char[] kLabelKeyTpuSliceName
  749. cdef const char[] kLabelKeyTpuWorkerId
  750. cdef const char[] kLabelKeyTpuPodType
  751. cdef const char[] kRayInternalNamespacePrefix