TransactionScheduler: Id Generators (#33207)

This commit is contained in:
Andrew Fitzgerald 2023-09-18 10:07:40 -07:00 committed by GitHub
parent e860019687
commit 86dd18bfb5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 0 deletions

View File

@ -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)
}
}

View File

@ -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;

View File

@ -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)
}
}