admin管理员组

文章数量:1028177

【赵渝强老师】TiDB的数据存储模型

TiDB作为数据保存系统,首先要决定数据的存储模型,即数据的保存形式。TiKV选择使用Key-Value模型,并提供有序遍历方法。TiKV数据存储的两个关键点:

  • TiKV实现了一个巨大的Map用于存储Key-Value Pairs(键值对)。
  • Map中的键值对按照键的二进制顺序排序。

视频讲解如下:

TiKV的KV存储模型与SQL中的表无关。SQL表中的一行数据会被转换成Key-Value的键值对形式存储在RocksDB中。

TiKV将整个Key-Value空间分成很多段,每一段是由一系列连续的Key组成。这里的段就叫做Region。Region可以用[StartKey,EndKey)这样一个左闭右开区间来描述。每个Region中保存的数据量默认维持在256M左右,可以通过配置进行修改。

将数据划分成Region后,TiKV执行两项重要操作:

  • 数据按Key切分成多个Region。在不考虑多副本的情况下,每个Region的数据仅保存在一个节点上。TiDB系统中的PD组件负责将Region尽可能均匀地分布在集群节点上,实现存储容量的水平扩展。当集群中增加新节点后会自动进行调度,从而避免某节点存储过多数据而其他节点存储较少。为了确保上层客户端能访问所需数据,PD组件会记录Region的分布情况,可通过任意Key查询其所在的Region及其对应的节点。
  • TiKV以Region为单位进行数据复制,一个Region的数据会保存多个副本,称为Replica。Replica之间通过Raft保持数据一致性,构成一个Raft Group,其中一个Replica作为Leader,其他作为Follower。默认情况下,所有读写操作均通过Leader进行。

【赵渝强老师】TiDB的数据存储模型

TiDB作为数据保存系统,首先要决定数据的存储模型,即数据的保存形式。TiKV选择使用Key-Value模型,并提供有序遍历方法。TiKV数据存储的两个关键点:

  • TiKV实现了一个巨大的Map用于存储Key-Value Pairs(键值对)。
  • Map中的键值对按照键的二进制顺序排序。

视频讲解如下:

TiKV的KV存储模型与SQL中的表无关。SQL表中的一行数据会被转换成Key-Value的键值对形式存储在RocksDB中。

TiKV将整个Key-Value空间分成很多段,每一段是由一系列连续的Key组成。这里的段就叫做Region。Region可以用[StartKey,EndKey)这样一个左闭右开区间来描述。每个Region中保存的数据量默认维持在256M左右,可以通过配置进行修改。

将数据划分成Region后,TiKV执行两项重要操作:

  • 数据按Key切分成多个Region。在不考虑多副本的情况下,每个Region的数据仅保存在一个节点上。TiDB系统中的PD组件负责将Region尽可能均匀地分布在集群节点上,实现存储容量的水平扩展。当集群中增加新节点后会自动进行调度,从而避免某节点存储过多数据而其他节点存储较少。为了确保上层客户端能访问所需数据,PD组件会记录Region的分布情况,可通过任意Key查询其所在的Region及其对应的节点。
  • TiKV以Region为单位进行数据复制,一个Region的数据会保存多个副本,称为Replica。Replica之间通过Raft保持数据一致性,构成一个Raft Group,其中一个Replica作为Leader,其他作为Follower。默认情况下,所有读写操作均通过Leader进行。

本文标签: 赵渝强老师TiDB的数据存储模型