TransactionScheduler: Id Generators (#33207)
This commit is contained in:
parent
e860019687
commit
86dd18bfb5
|
@ -0,0 +1,14 @@
|
||||||
|
use crate::banking_stage::scheduler_messages::TransactionBatchId;
|
||||||
|
|
||||||
|
#[derive(Default)]
|
||||||
|
pub struct BatchIdGenerator {
|
||||||
|
next_id: u64,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl BatchIdGenerator {
|
||||||
|
pub fn next(&mut self) -> TransactionBatchId {
|
||||||
|
let id = self.next_id;
|
||||||
|
self.next_id = self.next_id.wrapping_sub(1);
|
||||||
|
TransactionBatchId::new(id)
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,3 +6,9 @@ mod transaction_priority_id;
|
||||||
mod transaction_state;
|
mod transaction_state;
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
mod transaction_state_container;
|
mod transaction_state_container;
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
mod transaction_id_generator;
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
mod batch_id_generator;
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
use crate::banking_stage::scheduler_messages::TransactionId;
|
||||||
|
|
||||||
|
/// Simple sequential ID generator for `TransactionId`s.
|
||||||
|
/// These IDs uniquely identify transactions during the scheduling process.
|
||||||
|
#[derive(Default)]
|
||||||
|
pub struct TransactionIdGenerator {
|
||||||
|
next_id: u64,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TransactionIdGenerator {
|
||||||
|
pub fn next(&mut self) -> TransactionId {
|
||||||
|
let id = self.next_id;
|
||||||
|
self.next_id = self.next_id.wrapping_add(1);
|
||||||
|
TransactionId::new(id)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue