Expand description
Transactional chunk operations for atomic storage writes.
This module provides ACID-compliant transaction support for chunk storage, ensuring that multi-chunk writes are atomic (all-or-nothing). If any chunk fails to write, all previously written chunks in the transaction are rolled back.
§Example
use chie_core::transaction::{Transaction, TransactionManager};
use chie_core::ChunkStorage;
use chie_crypto::{generate_key, generate_nonce};
use std::path::PathBuf;
let mut storage = ChunkStorage::new(PathBuf::from("/tmp/storage"), 1_000_000_000).await?;
let mut tx_mgr = TransactionManager::new();
// Begin a transaction
let tx_id = tx_mgr.begin_transaction();
let key = generate_key();
let nonce = generate_nonce();
let chunks = vec![vec![1, 2, 3], vec![4, 5, 6]];
// Perform transactional write
match tx_mgr.transactional_write(&mut storage, tx_id, "QmTest", &chunks, &key, &nonce).await {
Ok(()) => {
// Commit transaction
tx_mgr.commit(tx_id)?;
}
Err(e) => {
// Rollback on error
tx_mgr.rollback(&mut storage, tx_id).await?;
return Err(e.into());
}
}Structs§
- Transaction
- A transaction for atomic chunk operations.
- Transaction
Manager - Manages transactions for atomic chunk operations.
Enums§
- Transaction
Error - Transaction error types.
- Transaction
State - Transaction state.