nemo_rl.data_plane.nixl.errors#

Exceptions raised across the data plane.

Module Contents#

API#

exception nemo_rl.data_plane.nixl.errors.UnitFull#

Bases: Exception

A storage unit cannot satisfy an allocation.

Initialization

Initialize self. See help(type(self)) for accurate signature.

exception nemo_rl.data_plane.nixl.errors.DataPlaneLostKeys(keys: list[str], reason: str = '')#

Bases: Exception

Some keys are unreadable because the unit holding them is gone.

keys lists the affected keys so the caller can drop and regenerate.

Initialization

Initialize self. See help(type(self)) for accurate signature.

global_indexes() → list[int]#
fields() → list[str]#
exception nemo_rl.data_plane.nixl.errors.DataPlaneTransferFailed(
keys: list[str],
reason: str = '',
*,
in_flight: bool = False,
)#

Bases: Exception

A transfer or a unit reply failed, but the unit still holds the data.

Retry the operation. in_flight is True when a NIXL transfer may still be running; its local buffer is retired and the retry gets a fresh one.

Initialization

Initialize self. See help(type(self)) for accurate signature.

exception nemo_rl.data_plane.nixl.errors.DataPlaneTimeout#

Bases: Exception

An operation ran out of its deadline (op_timeout_s). Retryable.

Initialization

Initialize self. See help(type(self)) for accurate signature.

exception nemo_rl.data_plane.nixl.errors.DataPlaneBusy(msg: str = '', reason: str | None = None)#

Bases: Exception

A unit is temporarily unable to serve; retried inside the operation.

Initialization

Initialize self. See help(type(self)) for accurate signature.

exception nemo_rl.data_plane.nixl.errors.DataPlaneFatal#

Bases: RuntimeError

This process can no longer move data safely. Not retryable.

Raised once the endpoint is POISONED (unfinished transfers retain more than graveyard_max_bytes) or the client pool has no buffer left.

Initialization

Initialize self. See help(type(self)) for accurate signature.

exception nemo_rl.data_plane.nixl.errors.TransferError(msg: str = '', *, in_flight: bool = False)#

Bases: Exception

A NIXL transfer finished in the ERR state or timed out.

in_flight is True when the transfer was posted and never seen DONE. Releasing its handle does not stop it (UCX cancels asynchronously, POSIX just drops the handle), so its destination may still be written later and must not be reused.

Initialization

Initialize self. See help(type(self)) for accurate signature.

exception nemo_rl.data_plane.nixl.errors.LostBlobs(blob_ids: list[str], reason: str)#

Bases: Exception

Some blobs are unreadable for good; the client maps them back to keys.

Raised only when the bytes are confirmed gone: the unit replied that it no longer has the blob, or the unit itself is dead.

Initialization

Initialize self. See help(type(self)) for accurate signature.

exception nemo_rl.data_plane.nixl.errors.StaleRead#

Bases: Exception

A read outlived its pin; the caller must re-resolve.

Initialization

Initialize self. See help(type(self)) for accurate signature.

exception nemo_rl.data_plane.nixl.errors.TransportPolicyError#

Bases: RuntimeError

UCX is configured so that NIXL could move bytes over TCP sockets.

the NIXL data plane only runs over RDMA (plus same-host shared memory). NIXL’s UCX backend honours UCX_* environment variables over anything passed in backend_init_params, so the environment is where this is decided.

Initialization

Initialize self. See help(type(self)) for accurate signature.