pub enum RollbackOperation {
Show 13 variants
NodeInsert {
node_id: NativeNodeId,
node_data: Vec<u8>,
},
NodeUpdate {
node_id: NativeNodeId,
old_data: Vec<u8>,
},
NodeDelete {
node_id: NativeNodeId,
slot_offset: u64,
old_data: Vec<u8>,
outgoing_edges: Vec<CompactEdgeRecord>,
incoming_edges: Vec<CompactEdgeRecord>,
},
StringInsert {
string_id: u64,
string_value: String,
},
HeaderUpdate {
header_offset: u64,
new_data: Vec<u8>,
old_data: Vec<u8>,
},
EdgeInsert {
cluster_key: (u64, u64),
insertion_point: u32,
edge_record: Vec<u8>,
cluster_offset: u64,
cluster_size: u32,
},
EdgeUpdate {
cluster_key: (i64, Direction),
position: u32,
old_edge: Vec<u8>,
new_edge: Vec<u8>,
},
EdgeDelete {
cluster_key: (i64, Direction),
position: u32,
old_edge: Vec<u8>,
},
ClusterCreate {
node_id: u64,
direction: Direction,
cluster_offset: u64,
cluster_size: u64,
cluster_data: Vec<u8>,
},
FreeSpaceAllocate {
block_offset: u64,
block_size: u64,
block_type: u8,
},
FreeSpaceDeallocate {
block_offset: u64,
block_size: u64,
block_type: u8,
},
KvSet {
key: Vec<u8>,
value_bytes: Vec<u8>,
value_type: u8,
ttl_seconds: Option<u64>,
version: u64,
},
KvDelete {
key: Vec<u8>,
old_value_bytes: Option<Vec<u8>>,
old_value_type: u8,
version: u64,
},
}Expand description
Rollback operation for transaction recovery
This enum defines operations that can be rolled back during transaction replay failure scenarios.
Variants§
NodeInsert
Rollback node insertion by deleting the node
NodeUpdate
Rollback node update by restoring old data
NodeDelete
Rollback node deletion by reinserting the node with all edges
Fields
§
node_id: NativeNodeId§
outgoing_edges: Vec<CompactEdgeRecord>§
incoming_edges: Vec<CompactEdgeRecord>StringInsert
Rollback string insertion (NEW: for string table operations)
HeaderUpdate
Rollback header update by restoring old data
EdgeInsert
Fields
EdgeUpdate
EdgeDelete
ClusterCreate
Fields
FreeSpaceAllocate
FreeSpaceDeallocate
KvSet
Rollback KV set operation
KvDelete
Rollback KV delete operation
Implementations§
Source§impl RollbackOperation
impl RollbackOperation
Sourcepub fn operation_name(&self) -> &'static str
pub fn operation_name(&self) -> &'static str
Get a descriptive name for the rollback operation
Sourcepub fn affects_nodes(&self) -> bool
pub fn affects_nodes(&self) -> bool
Check if this operation affects node data
Sourcepub fn affects_strings(&self) -> bool
pub fn affects_strings(&self) -> bool
Check if this operation affects string data
Sourcepub fn affects_free_space(&self) -> bool
pub fn affects_free_space(&self) -> bool
Check if this operation affects free space
Sourcepub fn affects_edges(&self) -> bool
pub fn affects_edges(&self) -> bool
Check if this operation affects edge data
Sourcepub fn affects_kv(&self) -> bool
pub fn affects_kv(&self) -> bool
Check if this operation affects KV data
Trait Implementations§
Source§impl Clone for RollbackOperation
impl Clone for RollbackOperation
Source§fn clone(&self) -> RollbackOperation
fn clone(&self) -> RollbackOperation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for RollbackOperation
impl RefUnwindSafe for RollbackOperation
impl Send for RollbackOperation
impl Sync for RollbackOperation
impl Unpin for RollbackOperation
impl UnwindSafe for RollbackOperation
Blanket Implementations§
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more