本文知识点来源于官网地址https://www.cockroachlabs.com/docs/stable/architecture/reads-and-writes-overview.html
当CRDB执行查询时,集群将请求路由到包含相关数据的范围的Leaseholder。如果查询涉及多个范围,则请求将发送给多个Leaseholder。对于读请求,只有相关范围的Leaseholder检索数据。对于写请求,Raft共识协议规定,在提交写请求之前,相关范围的大部分副本必须一致。
假设场景:

如果查询被具有相关range的Leaseholder的节点接收,则网络跳数会减少:

假设一个简单的写场景,对节点3执行一个查询,写入表1:

在这个例子中:
就像在读场景中一样,如果写请求是由拥有相关range的Leaseholder和Raft leader的节点接收的,那么网络跳数就会更少:

记住上面的例子,将网络延迟和磁盘I/O视为潜在的性能瓶颈总是很重要的。总而言之:
对于读取,网关节点和Leaseholder之间的跳转增加了延迟。
对于写,在网关节点和Leaseholder/Raft leader之间跳跃,以及在Leaseholder/Raft leader和Raft follower之间跳跃,增加延迟。此外,由于在提交写操作之前,Raft日志条目被持久化到磁盘,因此磁盘I/O非常重要。