Struct tikv::storage::txn::scheduler::SchedulerInner[][src]

struct SchedulerInner<L: LockManager> {
    task_slots: Vec<CachePadded<Mutex<HashMap<u64, TaskContext>>>>,
    id_alloc: CachePadded<AtomicU64>,
    latches: Latches,
    sched_pending_write_threshold: usize,
    worker_pool: SchedPool,
    high_priority_pool: SchedPool,
    running_write_bytes: CachePadded<AtomicUsize>,
    lock_mgr: L,
    concurrency_manager: ConcurrencyManager,
    pipelined_pessimistic_lock: Arc<AtomicBool>,
    enable_async_apply_prewrite: bool,
}

Fields

task_slots: Vec<CachePadded<Mutex<HashMap<u64, TaskContext>>>>id_alloc: CachePadded<AtomicU64>latches: Latchessched_pending_write_threshold: usizeworker_pool: SchedPoolhigh_priority_pool: SchedPoolrunning_write_bytes: CachePadded<AtomicUsize>lock_mgr: Lconcurrency_manager: ConcurrencyManagerpipelined_pessimistic_lock: Arc<AtomicBool>enable_async_apply_prewrite: bool

Implementations

impl<L: LockManager> SchedulerInner<L>[src]

fn gen_id(&self) -> u64[src]

Generates the next command ID.

fn get_task_slot(&self, cid: u64) -> MutexGuard<'_, HashMap<u64, TaskContext>>[src]

fn new_task_context(&self, task: Task, callback: StorageCallback) -> TaskContext[src]

fn dequeue_task_context(&self, cid: u64) -> TaskContext[src]

fn take_task_cb_and_pr(
    &self,
    cid: u64
) -> (Option<StorageCallback>, Option<ProcessResult>)
[src]

fn store_pr(&self, cid: u64, pr: ProcessResult)[src]

fn too_busy(&self) -> bool[src]

fn acquire_lock(&self, cid: u64) -> Result<Option<Task>, StorageError>[src]

Tries to acquire all the required latches for a command.

Returns the Task if successful; returns None otherwise.

fn dump_wait_for_entries(&self, cb: Callback)[src]

Auto Trait Implementations

impl<L> !RefUnwindSafe for SchedulerInner<L>

impl<L> Send for SchedulerInner<L>

impl<L> Sync for SchedulerInner<L> where
    L: Sync

impl<L> Unpin for SchedulerInner<L> where
    L: Unpin

impl<L> !UnwindSafe for SchedulerInner<L>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<V, W> ConvertFrom<W> for V where
    W: ConvertTo<V>, 
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]