mirror of https://github.com/tikv/website.git
48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
---
|
|
title: Distributed SQL over TiKV
|
|
menu:
|
|
docs:
|
|
parent: Deep Dive
|
|
weight: 8
|
|
---
|
|
|
|
TiKV is the storage layer for [TiDB], a distributed HTAP SQL database. So far,
|
|
we have only explained how a distributed transactional Key-Value database is
|
|
implemented. However this is still far from serving a SQL database. We will
|
|
explore and cover the following things in this chapter:
|
|
|
|
* **Storage**
|
|
|
|
In this section we will see how the TiDB relational structure (i.e. SQL table
|
|
records and indexes) are encoded into the Key-Value form in the latest
|
|
version. We will also explore a new Key-Value format that is going to be
|
|
implemented soon and some insights on even better Key-Value formats in future.
|
|
|
|
* **Distributed SQL (DistSQL)**
|
|
|
|
Storing data in a distributed manner using TiKV only utilizes distributed I/O
|
|
resources, while the TiDB node that receives SQL query is still in charge of
|
|
processing all rows. We can go a step further by delegating some processing
|
|
tasks into TiKV nodes. This way, we can utilize distributed CPU resources! In
|
|
this section, we will take a look at these supported physical plan executors
|
|
so far in TiKV and see how they enable TiDB executing SQL queries in a
|
|
distributed way.
|
|
|
|
* **TiKV Query Execution Engine**
|
|
|
|
When talking about executors we cannot ignore discussing the execution engine.
|
|
Although executors running on TiKV are highly simplified and limited, we still
|
|
need to carefully design the execution engine. It is critical to the
|
|
performance of the system. This section will cover the traditional Volcano
|
|
model execution engine used before TiKV 3.0, for example, how it works, pros
|
|
and cons, and the architecture.
|
|
|
|
* **Vectorization**
|
|
|
|
Vectorization is a technique that performs computing over a batch of values.
|
|
By introducing vectorization into the execution engine, we will achieve higher
|
|
performance. This section will introduce its theory and the architecture of
|
|
the vectorized execution engine introduced in TiKV 3.0.
|
|
|
|
[TiDB]: https://github.com/pingcap/tidb
|