TiFlash is a columnar storage engine designed for TiDB and TiDB Cloud, providing analytical processing (AP) capabilities within a Hybrid Transactional/Analytical Processing (HTAP) architecture. It offers real-time data synchronization from TiKV with sub-second latency and transactionally consistent reads, accelerating analytical workloads through a Massively Parallel Processing (MPP) architecture. The project is based on ClickHouse.
How It Works
TiFlash stores data in a columnar format, enabling efficient analytical queries. It synchronizes data updates from TiKV via Raft logs, ensuring near real-time consistency. Its MPP architecture distributes query execution across multiple nodes, significantly speeding up complex analytical operations. The project leverages ClickHouse's robust columnar storage and query engine as its foundation.
Quick Start & Requirements
- Installation: Building from source is the primary method. A free trial of TiDB Cloud is available for quick exploration.
- Prerequisites: CMake 3.23.0+, Clang 17.0.0+, Rust, Python 3.0+, Ninja-build or GNU Make, and optionally Ccache. Specific OS instructions for Ubuntu, Archlinux, Rocky Linux, and macOS are provided.
- Build:
cmake --workflow --preset dev
(for development builds).
- Documentation: TiDB Cloud Quick Start Guide, Use TiFlash.
Highlighted Details
- Columnar storage for accelerated analytics.
- Real-time data synchronization from TiKV via Raft logs.
- MPP architecture for parallel query execution.
- Transactionally consistent reads (Snapshot Isolation).
Maintenance & Community
- The project is actively maintained by PingCAP.
- Contributing guidelines and development documentation are available.
Licensing & Compatibility
- Licensed under the Apache 2.0 license.
- Permissive license suitable for commercial use and integration with closed-source applications.
Limitations & Caveats
- Building from source requires specific compiler and toolchain versions, with potential complexities on certain OS versions (e.g., older Ubuntu CMake versions).
- Production builds are recommended to use specific CMake build types and options, as development flags may cause instability.
- AMD64 architecture builds require AVX2 instruction set support, with an option to disable this requirement.