# TiFlash Server
+ Asynchronous replication
+ Consistency
+ Columnar store improves analysis query efficiency
+ Transaction and analytical processing workloads isolation
+ Engine smart selection

![`smart`](TiFlash_aa_001_20220506.png)

--------------------------------------------------------------
The important features of TiFlash cluster include the following:

Asynchronous replication
- Replica in TiFlash performs asynchronous data replication via Raft Learner. This means that when the TiFlash node goes down or the network experiences high latency, TiKV can still ensure normal operation. This replication mechanism also inherits the automatic load balancing and high availability of the TiKV system: it does not rely on an additional replication pipeline, but directly receives TiKV data transmission in a many-to-many manner; and as long as the data in TiKV is not lost, a replica of TiFlash can be recovered at any time.

Consistency
- TiFlash provides the same snapshot isolation support as TiKV, and ensures that the data be read is up-to-date. This consistency is achieved by verifying the replication progress of the data. Each time a read request is received, the Region replica in TiFlash initiates a progress check (a very light RPC request) to the Leader replica and only valid data can serve the read request.

Columnar store improves analysis query efficiency
- Unlike TiKV, TiFlash uses a columnar store data structure. Column store storage is very friendly to statistical analysis queries, and row storage is friendly to transaction business, so we can put statistical analysis queries and other services that require full table scanning on TiFlash to improve efficiency, plus The introduction of MPP (Massively Parallel Processing) architecture distributes computing tasks to multiple server nodes in parallel. After the calculation is completed on each node, the results of each part are summarized together to obtain the final result, making the analysis query service on TiFlash more efficient.

Workloads isolation
- As mentioned earlier, the column store is very friendly to statistical analysis queries (OLAP) and the row store is friendly to transaction (OLTP), so TiKV cluster and TiFlash cluster can be used in two workload scenarios, OLTP and OLAP respectively. In this way, the two workloads are isolated and will not interfere with each other.

Engine smart selection
- Whether it is TiKV or TiFlash, their SQL root node is TiDB server. The optimizer in TiDB server can dynamically decide whether to read data from TiKV row store or TiFlash column store according to the characteristics of the SQL statement.