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;
|
||||
#[allow(dead_code)]
|
||||
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