From fbfc8ee773a57c131f4bc59c5fa64215a26ea5fd Mon Sep 17 00:00:00 2001 From: ystaticy Date: Fri, 15 Jul 2022 15:35:34 +0800 Subject: [PATCH] add tikv keyspace init Signed-off-by: ystaticy --- media/keyspace.png | Bin 0 -> 27212 bytes text/0097-tikv-keyspace.md | 91 +++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 media/keyspace.png create mode 100644 text/0097-tikv-keyspace.md diff --git a/media/keyspace.png b/media/keyspace.png new file mode 100644 index 0000000000000000000000000000000000000000..b66bc325b04685f935d306be84d2cc9977986184 GIT binary patch literal 27212 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 config = 7; +} + +enum KeyspaceState { + ENABLED = 0; + DISABLED = 1; + ARCHIVED = 2; +} +``` + +keysapce state machine: + +![keyspace state machine](../media/keyspace.png) + + +There is few etcd path to store keyspace metadata: +```shell +// Store KeyspaceMeta protobuf in etcd +/keyspaces/meta/{keyspace_id} + +// Store the mapping from name to id in etcd +/keyspaces/id/{keyspace_name} + +// Store keyspace alloc_id info in etcd +/keyspaces/alloc_id + +``` + +#### Metadata managment +Add keyspace managment capability in PD. It contains several basic capabilities: +1. Allocate keyspace id by keyspace name; +2. Create a new keyspace by keyspace meta; +3. Update keyspace meta and configuration; +4. Manage keyspace state machine; +5. Get keyspace metadata from PD; + +#### More resource divided by keyspace + +1. The gc safepoint,service safepoint,txn safepoint store in etcd of PD, it's need to divide into different etcd path by keyspace. +2. Add a GC worker processor to update safepoint by keyspace + + +