Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.
Original topic: TIFLASH支持MVCC吗?
Regarding the role and characteristics of TiFlash, which of the following is incorrect?
A. Users can manually choose to execute SQL on TiFlash nodes.
B. The regions in TiFlash are the columnar storage version of TiKV, but the reads on them do not support MVCC.
C. Using both TiKV and TiFlash in the same query can speed up query performance.
D. As long as the data in TiKV is not lost, the TiFlash replica can be restored at any time.
Should we choose option A for this question?
I think it’s C, TiFlash is not necessarily faster than TiKV with indexes
TiFlash is a key component of the TiDB HTAP architecture. It is a columnar storage extension of TiKV that provides good isolation while also ensuring strong consistency. The columnar replicas are asynchronously replicated through the Raft Learner protocol, but during reads, they achieve Snapshot Isolation consistency level by using Raft to verify indexes in conjunction with MVCC. This architecture effectively addresses the isolation and columnar synchronization issues in HTAP scenarios.
The beginning states that it supports MVCC.
Choose B, TiFlash supports MVCC.
I also think it’s option B.
Where did you get this question?
Practice questions found online
It’s obvious that MVCC is supported, so we must choose B. What’s the point of using a database that doesn’t support MVCC?
Choose B, the description of option B is incorrect. TiFlash provides Multi-Version Concurrency Control (MVCC), which is a key feature used to support transactions and read-write concurrency. MVCC allows queries to see a snapshot of the data within a certain time range, even if the data is being modified or deleted during the query process.