TiKV 不同节点数据如何进行查看

原本,我有三台tikv,后面进行扩容了三台tikv,我想知道当我客户端调用写入数据至tikv时,是写入至哪个节点中,这个需要如何进行查看,客户端通过pd发现tikv集群节点时是否会选择最优路径进行写入数据,以及是否会选择最优路径节点进行获取数据

有人知道,这个客户端连接pd写入和查询数据时是走的哪个tikv节点嘛?

:thinking:最优路径写入和读取?应该只有一个路径读写吧,都是读写leader。

raw kv 写入吗?可以通过 pd 获取 region 相关信息,看 region 范围判断写入位置

建议你看看101课程。这里表述的不太对。
我简单描述下:
客户端连的是tidb节点而不是pd节点,tikv会向pd询问tikv上数据分布,数据按连续主键分成region,默认3副本,1 leader 2个follower,tidb请求会发到1 leader所在的tikv上。
所以不存在所谓最有写入路径,写入的就是保存数据所属的region leader的tikv上

那我客户端写入数据到tikv总得选择一个tikv的节点吧,我想知道这个节点是哪个

是只有一个,但我想知道每次写入数据或者读取数据的时候,这个leader的节点是哪一个

tidb设计上对客户端来说是无感知的,自动化分region了,如果你一定要查清楚也是可以查的,只是意义不大

这样才能知道每次写入数据和读取数据是从哪个tikv节点进出的,我现在有六个tikv节点,就想知道不通区域的服务端走的tikv进出数据是不是会是最优的那个,还是通过pd选择的tikv最优的那个节点

这么看意义不大,region的leader会变化的,现在看到访问哪个tikv不代表过一会儿就是那个。
简单的想看看可以查表如下:给定表看看数据在那个store_id上,对应tikv在INFORMATION_SCHEMA.TIKV_STORE_STATUS表里面查看
select s.REGION_ID,p.STORE_ID
from information_schema.TIKV_REGION_STATUS s,information_schema.TIKV_REGION_PEERS p
where s.REGION_ID=p.REGION_ID
and p.is_leader=1
and s.TABLE_NAME=‘t1’
and s.DB_NAME=‘test’

没,我就是想看变化,我打算客户端一直写入数据,然后观测写入数据的tikv leader是哪个

如果你需要一个表数据在特定一些tikv上,需要手工配置Placement Rules,参考文档
Placement Rules 使用文档 | TiDB 文档中心

rust的客户端可以看到,go语言的就找不到


应该是这个参数了,但没看到怎么触发的,按道理来说我每次读数据写数据都得经过这个才对

有人知道怎么打印出来不,找半天没找到具体走的哪个tikv节点

这种只能从leader看吧

那个storeid就是tikv吧

我获取的region 缓存是三个tikv节点,但我实际有六个,而且看这个也分不出来数据是从哪个节点出来的

leader节点自主选择的

嗯,这个我知道,我看rust会返回出来,go的话只能通过region_id才能知道写入的tikv节点是哪一个,还得去日志里查