Design Docs

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.

Scan optimization and partition pruningClient, Tabletgerrit
CFile formatTabletN/A
Codegen API and impl. detailsServerN/A
Consensus designConsensusN/A
Raft config change designConsensusN/A
Tablet Copy designConsensusN/A
Master designMasterN/A
RPC design and impl. detailsRPCN/A
Tablet design, impl. details and comparison to other systemsTabletN/A
Tablet compaction design and impl.TabletN/A
Tablet compaction policyTabletN/A
Schema change designMaster, TabletN/A
Maintenance operation schedulingMaster, Tablet ServerN/A
C++ client design and impl. detailsClientN/A
(old) Heartbeating between tservers and multiple mastersMastergerrit
Scan Token APIClientgerrit
Full multi-master support for Kudu 1.0Master, Clientgerrit
Non-covering Range PartitionsMaster, Clientgerrit
Permanent failure handling of masters for Kudu 1.0Master
RPC Retry/Failover semanticsClient/TS/Mastergerrit
Tablet history garbage collectionTabletgerrit
Documentation Style GuideDocumentation