PCTA考前辅导

目录

TiDB功能与特点

TiDB Server功能

TiDB Server模块 

TiDB Server GC机制

TiDB Server缓存 

TiKV RocksDB 

TiKV RocksDB读写

TiKV MVCC

TiKV读写

TiKV Coprocessor

PD TSO

PD label

数据读取必须步骤

Online DDL

满足HTAP的场景

TiDB数据库的MPP功能特性


TiDB功能与特点

正确

具有同时支持OLTP与OLAP业务的能力(即支持HTAP) 

能够同时存储一份数据的行存版本(TiKV)和列存版本(TiFlash),并保证一致性读取 

不正确 

TiDB数据库需要通过数据复制的方式(搭建从库)才能保证数据的高可用性

只有在云原生模式下,TiDB 数据库能够实现水平扩容或者缩容

TiDB Server功能

正确

TiDB Server在开始执行SQL语句时,会从PD节点获取当前的TSO

不正确 

TiDB Server负责SQL的解析和编译,而PD负责(TiDB Server负责在关系型数把和KV存储间相互转换

TiKV的元数据,在数据库启动后会全部载入到TiDB Server的缓存中,加快查询效率

即使TiDB有information schema提供“非持久化”的对表元数据的访问和TiKV Client提供最近使用过的region数据【region cache】,但也不可能将其全部载入到TiDB Server缓存

TiDB Server的缓存中除了有表的元数据外还会存储Online DDL的job 队列(由TiKV负责存储

TiDB Server模块 

正确

Executor模块负责执行SQL执行计划

不正确 

PD Client模块只是负责TiDB Server向PD请求TSO,并接受返回的TSO(PD Client) 

PD不仅负责TiDB Server向PD请求并接受TSO,还具有批处理功能为多个事务或SQL分配TSO 

TiKV Client模块只负责执行Coprocessor request,比如,过滤,聚合或列投影等等,点查操作由KV模块直接发给TiKV

1.TiKV Client还负责缓存和提供TiKV region的元数据【region cache】,还负责与TiKV进行交互

2.必须通过TiKV Client与TiKV进行交互 

DistSQL模块负责将包含JOIN,SUBQUERY等复杂算子和涉及很多的表的SQL抽象为只涉及到单个表数据的多个操作,并将这些操作直接发给TiKV(必须通过TiKV Client与TiKV进行交互

TiDB Server将关系型数据(含有主键,并希望key中含有主键)转化为key-value数 

1.将主键(Primary Key)单独分离出来,与表的Table ID拼接,作为 key序列

2.主键(Primary Key)对应的单行数据作为value,形成key-value对

3.将这些 key-value存储在一个region中

4.如果region大小超过96 MB,则分裂为2个region大小范围96mb~144mb

TiDB Server GC机制

正确

GC会被自动触发,默认是10分钟一次

每次GC操作过后,修改时间在safe point之前的旧版本数据快照可能会被删除掉,之后的不会

不正确 

如果有多个TiDB Server,则这些TiDB Server可以并行来执行GC操作

只有作为GC leader的TiDB Server才能控制整个GC进行并行操作

GC life time是无法手工调整的,由系统根据数据库压力情况自动调整

可以通过GC_life_time参数设置保留多长时间的历史版本

TiDB Server缓存 

正确

复杂SQL的查询中间结果,往往会存储在TiDB Server的缓存中

通过tidb-mem-quota-query参数能够控制每个查询的缓存使用量

oom-action参数用来设置SQL语句超过内存使用阈值后的行为

不正确 

information schema和表的统计信息都是存储在TiDB Server的持久化存储中,启动后载入TiDBServer的缓存中TiDB Server不负责数据的“落地 ”,即持久化,而应在TiKV中

TiKV RocksDB 

正确

持久化机制,同时保证性能和安全性

性能随CPU数量线性提升

RocksDB使用LSM存储引擎

不正确 

支持key-value、jsonxml和图数据的存储仅支持key-value,图数据的存储

TiKV RocksDB读写

正确

写入操作(增删改)的数据最开始都是保存在内存中的

immutable MemTable不支持继续写入

Level 0层的SST文件是immutable MemTable的转储

Column Families共享WAL文件

(图a)  

不正确 

WAL的作用是为了加速磁盘的写入速度,将随机写变为顺序写

WAL预写日志是为了保证写入的原子性和持久性,即使系统宕机也能进行故障恢复 

读取时,内存中只读Block Cache,不会去读MemTable,目的是不会影响写的效率读取时,如果内存中没有找到的key一定不会出现在Level 0的SST文件中

1.读取时从Block Cache,至MemTable,在至immutable memTable和各级SST文件中

2.内存中未找到,不意味着磁盘中的各级SST文件中没有相应的数据

(图b) 

Column Families共享SST文件(Column Families共享WAL文件,而不是SST文件,如上图a

TiKV Raft日志复制 :Propose ->Append -> Replicate ->Committed -> Apply 

TiKV MVCC

正确

在TiDB 数据库中,一旦数据被修改并且事务被提交,新的读取(select操作并且tidb_snapshot="")则无法读取到修改之前的任何版本

不正确 

MVCC机制只存在于支持分布式事务的数据库中

MVCC多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段;而不是支持分布式事务的数据库中独有的

只有当隔离级别为snapshot isolation或者repeatable read时候,MVCC才会生效

MVCC只在read commited和repeatable read两个隔离级别下工作,与隔离级别snapshot isolation无关 

TiDB数据库中存储了数据从写入至当前的所有版本

由于垃圾回收GC的存在,生成的版本快照,每隔一段时间就会被清除,故不可能存储写入至当前的所有版本 

TiKV读写

正确

单条select语句读取到的任何数据都是已经从raft log日志中apply到 RocksDB KV中的

最开始从PD中读取到的路由信息中的leader所在TiKV节点,不一定是最终读取数据的节点 

TiKV有多种读取方式,ReadIndex Read,Lease Read均是从leader上读取数据;而Follower Read是从follower上读取数据

不正确 

follower read不可能比leader read先读到数据

大多数情况下,follower read往往比leader read先读到数据,因为leader要等待Replicate和Commited阶段

当集群中所有的follower节点都收到了这个日志( raft log ),我们才认为这个( raft log )是commited当大多数(超过一半的)follower将raft log持久化成功,才认为是commited

TiKV Coprocessor

正确

Coprocessor功能能够减少TiDB Server与TiKV节点间的网络开销 

表的统计信息收集可以借助Coprocessor由TiKV来完成

导入数据后的一致性校验可以借助Coprocessor由TiKV来完成

不正确 

将SQL的计算下推到TiKV节点,TiDB Server不再负责SQL的计算,从而降低CPU使用率

算子下推只是根据物理执行计划,将一部分计算下推至TiKV节点,并不意味着TiDB Server不负责任何计算

PD TSO

正确

TSO的组成为︰物理时钟+逻辑时钟

ps:TSO=物理时间 physical time + 逻辑时间 logical time (不能交换顺序) 

TSO的申请者是通过PD Client模块来向PD申请TSO的

SQL语句的解析和编译可以与TSO的获取异步执行

PD发出的 TSO只会递增不会递减

时间本身是不断累积的,即使身为leader的PD宕机,也只能等待下一个时间窗口

不正确 

当PD Client模块过于繁忙时,PD会直接将TSO返回给申请者

必须通过PD Client与PD的交互

PD label

正确

label的配置需要在PD和TiKV上进行操作

如果不使用label ,PD仅仅保证region的多个副本不会存储在同一个TiKV实例上

Label的作用之一是控制region副本的存放位置,比如 host,rack或者DC

不正确 

 Zone必须对应一个数据中心(DC),不能对应一个机柜

server.label与location-labels设置的层级对应,不意味着与现实中的设备相对应,如果愿意 Zone可以代表TiKV节点

数据读取必须步骤

正确

获取到当前SQL开始执行的TSO

进行PointGet检测点查的处理由TiDB Server的KV负责

不正确 

扫描RocksDB实例中所有SST文件

即使在内存中没找到数据,也不会扫描RocksDB中的所有SST,而是根据SST的储存层级至顶向下扫描直到找到最新的数据,详见TikV RocksDB读写-图b

扫描RocksDB实例中最新的WAL文件

WAL预写日志是为了保证写入的原子性和持久性并进行进行故障恢复,在查询中不会扫描描RocksDB实例中WAL文件

Online DDL

正确

Online DDL的job队列被持久化在TiKV中,不是TiDB Server中

详见TiDB Server功能关于DDL的内容

不正确 

Online DDL操作指的是DDL操作并不影响线上业务,对于性能监控也是无感知的

如果有多个TiDB Server,所有TiDB Server中的worker模块会并行处理添加索引的操作,加快进度

同一时刻只有一个身为owner的Tidb server处理DDL操作,但是index queue中的索引DDL和job queue中的job是可以被owner并行执行的

接收到DDL SQL的TiDB Server,会先启动自己的worker模块处理DDL,之后根据负载情况可能转移给owner角色的TiDB Server中的worker模块处理

当接收到DDL SQL时,TiDB Server会先尝试检测自己的worker模块是否是owner角色,若不是这只能放入jop queue中等待owner角色的TiDB Server中的worker模块处理

满足HTAP的场景

正确

同时支持OLTP和OLAP两种业务HTAP要求同时支持OLTP和OLAP

承担着实时数据写入的行存,并且能够实时将数据变化同步到列存储

不正确 

能够支持PB级数据分析(HTAP对高数据级别的数据分析没有要求

能够支持高并发的交易场景,且保证强一致性

HTAP不适用于高并发的场景,同时异步复制,无法保证强一致性

TiDB数据库的MPP功能特性

正确

聚合查询也可以通过MPP功能提速

TiFlash节点的内存承担了MPP中的计算功能

MPP功能对于大表连接有提高效率的作用

MPP架构实现在TiFlash上对于聚合和连接操作的加速且仅支持等值连接,但只限于TiFlash,而不能作用于TiKV 

不正确 

将行存数据转为列存由TiFlash的负责

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39557.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【托业】新托业全真题库---TEST1

clearly indicate ——clearly可以修饰indicate(表明;暗示;指示) recently只用于现在完成时和过去完成时中 municipal gallery 市立美术馆 permanently 永久地 nearly 和approximately 具有“大约;大概”的含义的副词&…

足不出户怎么在家赚钱,暑假在家别闲着,给自己赚点生活费吧

在当今快节奏的现代生活中,人们面临着越来越大的竞争压力。为了过上舒适的生活、提前退休、创业或增加收入,许多人都希望能够在家中赚钱。那么,在家里如何可以找到赚钱的项目呢?本文将为您详细介绍一些方法。 一、在家工作有很多好…

加速超级个体,携手迈向 Web3.0 新纪元,峻海资本与 Mixlab 无界社区达成战略合作...

我们正生存在一个比以往都更接近于「未来」的时代,技术壁垒降低带来的可能性在每一个个体面前平等地展开。面对新的未知的技术,你是选择固步自封?还是往前一步? 当有些人还在按部就班地「刻苦」学习写作、绘画、剪辑技能时&#x…

Postgresql无法通过PGAdmin4连接应用程序服务器

Postgresql无法通过PGAdmin4连接应用程序服务器 通过下载的postgresql进行安装后,pgadmin打不开 把原先版本卸载后安装,还是以上问题,分别试了,13,15,均出现,postgresql能正常运行,但pgadmin不可以联接,网上有说需单独安装,我又试了试,记录如下:

kettle开发-Day38-其实chatGPT一直在身边

前言: 最近chatGPT火出圈,其实不是chatGPT多智能,只是它用了一种新的交互方式来组织我们现有的知识,然后通过“高智商”的表达来使我们惊艳。但是目前或者未来的人工智能缺少创造力,他们只会整合信息目的是提高我们的效…

阿里国际站P4P直通车玩法

首先大部分人or大部分老板对于P4P的想法就是,我怎么花最少的直通车创造最多的点击和曝光? 这是很正常的,对于直通车,我们大多数都是平民玩家,不像有些店铺,一天就是几百一千的烧,当然玩不过他们…

python获取阿里巴巴国际站商家信息

帮一个做外贸的朋友搞的,他需要电话号去和商家沟通,提供国际货运一条龙服务,不停地切换页面查看手机号,比较麻烦,帮他写个脚本,一次性获取下来,存成Excel。现在分享一下过程,同时记录…

阿里巴巴国际站业务如何写出高效便捷的客户开发跟进邮件?

阿里巴巴国际站客户开发商务邮件该如何写?? 以下是我个人的一些小经验,希望对大家有所帮助。 对于有知识基础的外贸业务同学,特别是大学就是这方向的专业的同学,如果不是有其他的明确方向,我建议是可以看看…

阿里巴巴国际站组合标题的小技巧

首先按照我之前说的,通过引流关键词or关键词指数下载到平台上的关键词,然后得到Excel,那么现在打开,随便以bags为例,下载得到的词表里面是按照热度排列的, 词的长短不一,不方便我们组合标题&…

业界标杆,直达P8,阿里巴巴面试参考指南(2022泰山版)发布

阿里巴巴面试参考指南(2022泰山版) 全篇共计分为以下七个部分: 阿里巴巴:设计模式与最佳实践阿里巴巴:高并发编程阿里巴巴:数据库阿里巴巴:分布式阿里巴巴:中间件阿里巴巴&#xff…

阿里巴巴中国站获得店铺详情 API 返回值说明

请求地址: https://api-gw.onebound.cn/1688/seller_info 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_sea…

阿里巴巴国际站如何查看优秀同行产品关键词方法?

阿里巴巴国际站如何查看优秀同行产品关键词方法? 最近事情有点多,所以一直没来更新文章,希望忙过这段时间能有更多时间来写文章和大家分享。 自从我在之前的文章 2021阿里巴巴国际站产品关键词来源(一)中提到阿里国际…

阿里巴巴国际站关键词的收集

hi,4月份快要过去,大家的数据有涨吗? 最近的自然点击和自然曝光已经快追上TOP了,询盘TM也有增长在稳步上升。 说回正题,如何找到应对自己产品的关键词? 你要的都在数据管家-关键词指数里。搜索自家产品&a…

阿里巴巴国际站平台上,大家最容易忽视的问题!

01.产品成长管理,优化分数到达实力优品 大家平台上有挺多76-78,甚至79分数的产品,只要稍微优化下上面提示的指标即可。但很多人是没有去做的,因为很多是老产品,而实力优品的考核,一些新指标出现&#xff0…

阿里巴巴国际站产品标题的组合和优化方法一览

发产品这件事情上,到底什么问题最困扰你?答案肯定是:关键词和产品标题! 无论是刚入门的运营小白还是操作多年的大神,每天要做的事情就是发产品,那在发产品这件事情上,到底什么问题最困扰你&…

阿里巴巴国际站之关键词整理

这是我在知乎上看到的关于阿里巴巴国际站关键词收集整理的文章。现转载过来和大家分享,我觉得这位运营很实在,这也是我喜欢他的文章的原因。 今天和大家讲讲关键词的收集,想跳出的朋友先别着急,请耐心看下去。 说到关键词来源&a…

阿里巴巴国际站—产品运营工作台操作指南

阿里巴巴国际站—产品运营工作台操作指南 这个标题有点夸大了,没办法,感觉现在不把事情说的大点,牛X点的话根本没人看,这样的例子大家应该都遇到过,标题说的是一回事,确实吸引了你,但点开之后发…

纯干货版阿里巴巴国际站入门攻略

阿里巴巴国际站作为目前全球排名名列前茅的B2B电商平台,很多跨境电商卖家都很想入局。但是目前很多公司的国际站都没有专职运营的人员,只是靠外贸业务员操作,所以涉猎的都是比较浅的东西。今天龙哥就来讲讲如果想要深研这个平台的话&#xff…

阿里巴巴国际站询盘是什么意思?如何提高询盘率

阿里巴巴国际站询盘是什么意思? 目录 阿里巴巴国际站询盘是什么意思? 询盘一般分为两种: 阿里巴巴国际站询盘有什么技巧吗? 阿里巴巴国际站询盘是什么意思? 询盘(inquiry)也叫询价&#xff…

【考研政治】时政(思维导图)

【考研政治】时政(思维导图) 前言 写一下时政的笔记。 时政的内容其实包括形势与政策以及当代世界经济与政治。其中形势与政策每年有变化,当代世界经济与政治没有变化。 我先写一下当代政治与经济的内容。 文章目录 【考研政治】时政&…