pub struct GhostStub {
pub node_id: String,
pub target_shard: u16,
pub refcount: u32,
pub created_at_ms: u64,
}Expand description
Ghost edge stub.
When vShard rebalancing moves a node to a new shard, a ghost stub
(node_id, target_shard_id, refcount) remains on the source.
During traversal, ghost stubs trigger transparent scatter-gather
to the target shard. Ghosts are garbage-collected when refcount
(number of inbound edges from this shard) reaches zero.
Fields§
§node_id: StringThe node ID that was moved.
target_shard: u16The target vShard where the node now lives.
refcount: u32Number of local edges that still reference this ghost.
created_at_ms: u64When this ghost was created.
Implementations§
Source§impl GhostStub
impl GhostStub
pub fn new(node_id: String, target_shard: u16, initial_refcount: u32) -> Self
Sourcepub fn decrement_ref(&mut self) -> bool
pub fn decrement_ref(&mut self) -> bool
Decrement refcount when a local edge pointing to this ghost is deleted. Returns true if refcount reached zero (ghost can be purged).
Sourcepub fn increment_ref(&mut self)
pub fn increment_ref(&mut self)
Increment refcount when a local edge pointing to this ghost is added.
Trait Implementations§
impl Eq for GhostStub
impl StructuralPartialEq for GhostStub
Auto Trait Implementations§
impl Freeze for GhostStub
impl RefUnwindSafe for GhostStub
impl Send for GhostStub
impl Sync for GhostStub
impl Unpin for GhostStub
impl UnsafeUnpin for GhostStub
impl UnwindSafe for GhostStub
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.