Sort by:  

Authors: Shuning Chen, Ping Yu

To meet the requirement of Multi-Tenancy and Change Data Capture (for RawKV), TiKV introduces significant changes as follows: Separate data space into logical sub ranges for different tenancies, and add timestamp as key postfix for MVCC. But these changes bring great challenge includes: * Region management becomes a bottleneck of region lookup while multi-tenancy brings many more regions, and it is difficult to limit blast radius among tenancies. * TSO service become a bottleneck of performance and resilience, as every write requires a timestamp. To make multi-tenancy elastic and resilient, we first refactor region management and TSO service as micro-services, and isolate tenancies according to their scale and QoS. Second, we implement an TSO cache in TiKV, to acquire TSO in batch for performance and tolerate service interruption during fault and failover of PD. At the same time, handle the causality consistence brought by TSO cache with caption.