Documentation ¶
Overview ¶
Package api implements the transaction scheduler algorithm API.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Scheduler ¶
type Scheduler interface { // Name is the scheduler algorithm name. Name() string // Initialize initializes the internal scheduler state. // Scheduler should use the provided transaction dispatcher to dispatch // transactions. Initialize(td TransactionDispatcher) error // IsInitialized returns true, if the scheduler has been initialized. IsInitialized() bool // ScheduleTx attempts to schedule a transaction. // // The scheduling algorithm may peek into the transaction to extract // metadata needed for scheduling. In this case, the transaction bytes // must correspond to a transaction.TxnCall structure. ScheduleTx(tx []byte) error // AppendTxBatch appends a transaction batch for scheduling. // // Note: the AppendTxBatch is not required to be atomic. Semantics depend // on the specific scheduler implementation. AppendTxBatch(batch [][]byte) error // RemoveTxBatch removes a transaction batch. RemoveTxBatch(tx [][]byte) error // Flush flushes queued transactions. Flush(force bool) error // UnscheduledSize returns number of unscheduled items. UnscheduledSize() uint64 // IsQueued returns if a transaction is queued. IsQueued(hash.Hash) bool // UpdateParameters updates the scheduling parameters. UpdateParameters(registry.TxnSchedulerParameters) error // Clear clears the transaction queue. Clear() }
Scheduler defines an algorithm for scheduling incoming transactions.
type TransactionDispatcher ¶
type TransactionDispatcher interface { // Dispatch attempts to dispatch a batch to a executor committee. Dispatch(batch transaction.RawBatch) error }
TransactionDispatcher dispatches transactions to a scheduled executor committee.
Click to show internal directories.
Click to hide internal directories.