Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RawKV CDC Prototype Development Task #1

Open
45 of 55 tasks
pingyu opened this issue Dec 3, 2021 · 0 comments
Open
45 of 55 tasks

RawKV CDC Prototype Development Task #1

pingyu opened this issue Dec 3, 2021 · 0 comments

Comments

@pingyu
Copy link
Owner

pingyu commented Dec 3, 2021

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.
@pingyu pingyu changed the title RawKV CDC Development Task RawKV CDC Prototype Development Task Dec 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant