This directory holds Kudu design documents. These documents are typically written from a point-of-time view, and do not necessarily represent the current state of the system. They are useful for learning why design decisions were made.
Document | Component(s) | Discussion |
---|---|---|
Scan optimization and partition pruning | Client, Tablet | gerrit |
CFile format | Tablet | N/A |
Codegen API and impl. details | Server | N/A |
Consensus design | Consensus | N/A |
Raft config change design | Consensus | N/A |
Tablet Copy design | Consensus | N/A |
Master design | Master | N/A |
RPC design and impl. details | RPC | N/A |
Tablet design, impl. details and comparison to other systems | Tablet | N/A |
Tablet compaction design and impl. | Tablet | N/A |
Tablet compaction policy | Tablet | N/A |
Schema change design | Master, Tablet | N/A |
Maintenance operation scheduling | Master, Tablet Server | N/A |
C++ client design and impl. details | Client | N/A |
(old) Heartbeating between tservers and multiple masters | Master | gerrit |
Scan Token API | Client | gerrit |
Full multi-master support for Kudu 1.0 | Master, Client | gerrit |
Non-covering Range Partitions | Master, Client | gerrit |
Permanent failure handling of masters for Kudu 1.0 | Master | |
RPC Retry/Failover semantics | Client/TS/Master | gerrit |
Tablet history garbage collection | Tablet | gerrit |
Documentation Style Guide | Documentation |