Struct engine_rocks::RocksWriteBatchVec[][src]

pub struct RocksWriteBatchVec {
    db: Arc<DB>,
    wbs: Vec<RawWriteBatch>,
    save_points: Vec<usize>,
    index: usize,
    cur_batch_size: usize,
    batch_size_limit: usize,
}

RocksWriteBatchVec is for method multi_batch_write of RocksDB, which splits a large WriteBatch into many smaller ones and then any thread could help to deal with these small WriteBatch when it is calling AwaitState and wait to become leader of WriteGroup. multi_batch_write will perform much better than traditional pipelined_write when TiKV writes very large data into RocksDB. We will remove this feature when unordered_write of RocksDB becomes more stable and becomes compatible with Titan.

Fields

db: Arc<DB>wbs: Vec<RawWriteBatch>save_points: Vec<usize>index: usizecur_batch_size: usizebatch_size_limit: usize

Implementations

impl RocksWriteBatchVec[src]

pub fn new(
    db: Arc<DB>,
    batch_size_limit: usize,
    cap: usize
) -> RocksWriteBatchVec
[src]

pub fn as_inner(&self) -> &[RawWriteBatch]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

pub fn as_raw(&self) -> &RawWriteBatch[src]

pub fn get_db(&self) -> &DB[src]

fn check_switch_batch(&mut self)[src]

check_switch_batch will split a large WriteBatch into many smaller ones. This is to avoid a large WriteBatch blocking write_thread too long.

Trait Implementations

impl Mutable for RocksWriteBatchVec[src]

impl WriteBatch<RocksEngine> for RocksWriteBatchVec[src]

Auto Trait Implementations

impl RefUnwindSafe for RocksWriteBatchVec

impl Send for RocksWriteBatchVec

impl !Sync for RocksWriteBatchVec

impl Unpin for RocksWriteBatchVec

impl UnwindSafe for RocksWriteBatchVec

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<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> Same<T> for T[src]

type Output = T

Should always be Self

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

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?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]