006、体系结构之TiKV读取和Coprocessor

news/2024/5/19 15:21:47 标签: tidb, TiDB, 分布式数据库, 数据库

TiKV读取和Coprocessor

  • 1、数据的读取
    • 1.1、ReadIndex Read
    • 1.2、Follower Read
  • 协同处理器(Coprocessor)

1、数据的读取

1.1、ReadIndex Read

例如此时要读取 key =1 的内容,它不能直接去kv中读取,因为它是分布式的,它经过TiDB Server 收到读取请求,然后到PD 当中,找到这个key = 1 再哪个region,在哪个leader上,例如查到了在TiKV node 2上。 然后经过层层路径,终于到了rocksdb kv。 从这个TiDB Server 一直到kv 的数据返回,假设有50ms,则在这50ms 有可能会变更leader,(例如leader 热点平衡,将这个leader切换到其他节点)
在这里插入图片描述
如何保证数据返回过程中,节点不切换
读取的时候。leader会向其他flower发送心跳,告知我在读取的时候,就是读leader
在这里插入图片描述
在这里插入图片描述

1.2、Follower Read

也就是读取的数据,是最新提交的数据。

在这里插入图片描述
注意一点:现在不考虑MVCC 读旧版本数据的情况。

读肯定是需要提交完成之后(1-95). 由于raft log 都是排好序的,读取的动作是在 raft 提交动作之后,它肯定是大于(1_95) 当前的raft_log (1_97) 一定实在之后,这这个1_97就是ReadIndex .这个值就会记录下来。

简而言之,事务开始时间能读取的内容,是已经提交的数据。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

协同处理器(Coprocessor)

在这里插入图片描述
问题1: region散落在不同节点,大量数据需要通过网络汇聚到TiDB上,TiKV上都要返回到TiDB网络开销太大。问题2:所有计算都需要在TiDB上操作,CPU消耗太大

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Coprocessor: 作用将计算下推到TiKV上。


http://www.niftyadmin.cn/n/432048.html

相关文章

【AUTOSAR】UDS协议的代码分析与解读(三)----ECU诊断故障管理

故障管理 5.1 自诊断需求 故障自检测是指电控单元在运行应用软件时所执行的全部检测(包括初始化阶段自诊断和持续运行 时的自诊断)。所有电控单元都应持续地进行故障自检测, 以监控功能运行状态下的异常事件(错误)。 如果检测到的故障被视为潜在危险, 为…

延时函数:普通延时,硬件定时器延时,系统定时器延时

一、普通延时函数 此种延时是基于让MCU做一些无意义的循环操作来打发时间,优点是简单易懂,缺点是会占用MCU的处理资源且精度较低,主要用于程序简单、无严格时间要求的场景中。 //微秒级的延时 void delay_us(uint32_t delay_us) { volat…

给图片添加水印的最简单方法

给图片添加水印的最简单方法在数字化时代,图片广泛应用于社交媒体、网站、电商平台等各种场景中。然而,由于互联网分享的便捷性,图片的盗用问题也越来越严重。为了保护图片版权,给图片添加水印已经成为一个非常必要和重要的步骤。…

Spark面试题二十道

问题 1:什么是Apache Spark? 答案:Apache Spark是一个快速、通用的集群计算系统,旨在处理大规模数据处理和分析任务。它提供了高级的编程模型和丰富的库,可以在分布式环境中进行数据处理、机器学习、图计算等。 问题…

Android使用WebView与Native交互的三种方式 ( 附源码 )

先附上assets目录中html的源代码文件内容&#xff0c;下面的demo都是使用这几个文件&#xff1a; javascript.html: <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>Carson</title><script>function callAn…

互联网架构师联合总结的 Java 面试攻略,GitHub 标星 30K!

2023 年的互联网行业竞争越来越严峻&#xff0c;面试也是越来越难&#xff0c;一直以来我都想整理一套完美的面试宝典&#xff0c;奈何难抽出时间&#xff0c;这套 1000道的 Java 面试手册是行业内各大神联合总结出来的&#xff0c;上传到 Git 上目前 star 数达到了 30K 这套互…

一文看懂MySQL是什么

你可以前往我的博客查看更多关于云服务器和数据库以及域名注册、建站等相关文章。 MySQL是一种开源关系型数据库管理系统&#xff0c;它是最受欢迎的数据库之一。MySQL是由瑞典公司MySQL AB创建的&#xff0c;后来被Sun Microsystems收购&#xff0c;现在是Oracle Corporation…

开发者必备:动态贴纸和美颜SDK的集成教程

动态贴纸和美颜技术不仅能带来多样的拍摄方案&#xff0c;还可以增加应用的吸引力。本篇文章将为开发者提供动态贴纸和美颜SDK的集成教程、技术方案&#xff0c;帮助开发者快速实现这些功能。 一、动态贴纸美颜SDK集成教程 导入SDK 在Android Studio中&#xff0c;开发者需要…