Skip to content

RawKV CDC Prototype Development Task #1

@pingyu

Description

@pingyu

Development Task

On branch https://github.com/pingyu/tikv/tree/feat-rawkv-cdc-prototype, based on tag v5.0.4-20211201

Objectives

  1. Validate correctness of proposal
  2. Gain less than 10% performance regression by a coarse implementation

Sub Tasks

Totally: 2 weeks
TiKV: 1 weeks, BR/TiCDC/Observation: 0.5 week, Testing: 0.5 week

  • TiKV (1 week)
    • causal timestamp (0.2 week)
      • RPC with PD
      • next ts
      • causally advance
      • cache management (a HLC likeness)
    • raw_put (0.5 week)
      • service tier
      • value encoding
      • raftstore tier
        • cb, raft message
        • Region-Max-TS
        • follower capture ts from raft
          • msg append
          • snapshot
        • ts advance on leader transfer
        • split
        • merge
    • raw_delete
    • read: deleted flag
    • cdc (0.3 week)
      • raw CmdObserver
      • incremental scan
      • RPC with TiCDC
    • resolved_ts
      • advance
      • improvement by no locking
    • Performance metrics
      • pre-propose coprocessor
  • BR (0.1 week)
    • functional verification
    • command line arguments
    • deleted flag
  • TiCDC (0.4 week)
    • raw changefeed
    • raw task
    • upstream RPC from TikV
    • downstream RPC to TiKV
    • checkpoint
    • RPO capture, calculation & report
    • scheduler by key span
  • Prom & Grafana
    • RPO monitoring
  • PD (no change)
  • Test (0.5 week)
    • Correctness validation
      • Workload: N threads x M keys, PUT (k{m}, v), (k{m}, v+1). Verify values of all N x M keys are v+1. N=400, M=1000
      • Case 1: Workload on a main (1 PD + 1 KV + 1 TiCDC) + recovery (1 PD + 1 KV) clusters.
      • Case 2: The deployment as Case 1, but as TiCDC startup BETWEEN & AFTER workload.
      • Case 3: Workload on a main (1 PD + 3 KV + 1 TiCDC) + recovery (1 PD + 1 KV) clusters, trigger the following:
        • Case 3.1: Region SPLIT.
        • Case 3.2: Region MERGE.
        • Case 3.3: Leader TRANSFER.
    • Benchmark
      • Case 1: YCSB workloada (50 read / 50 write). Observing write QPS, P99 latency, CDC latency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions