Placement Driver

article/2025/8/30 11:43:15

目录

PD架构

路由功能

TSO分配

时间窗口

调度

Label

例题


PD架构

PD由至少三个节点组成,并集成了ETCD,支持自动故障转移,无需担心单点故障 ;同时ETCD raft 保证数据一致性

三个PD节点中有一个leader,当leader出故障时根据raft协议重新选举

ps:*PD代表为PD leader(*标识leader)

store:集群中的的储存节点(一个TiKV node中有多个store,一个store中有多个region)
peer:region的副本,包括leader和follower

ps:region负责集群中一段连续是数据

元数据储存,用于相应数据的查找(对应的leader region在哪一个TiKV node上) 级调度region在TiKV上的分布,缓解热点

路由功能

当Executer收到SQL时,向TiKV Client发起请求,有TiKV Client向PD获取相关数据的位置(路由信息)

TSO分配

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

TSO是一个int64类型的数据,包括物理时间和逻辑时间

  • 物理时间 physical time:以毫秒为单位
  • 逻辑时间 logical time:将1ms分成262144个TSO

tsFuture:用于标识什么时刻请求TSO
tsFuture.wait:等待PD client从PD返回TSO

整个过程是一个异步过程

当SQL到达并向PD Client发起TSO请求,首先PD Client返回tsFuture对象(用于标识什么时刻请求TSO),同时PD Client向PD请求TSO,而SQL进入解析编译阶段;当解析编译完成,若TSO为分配,调用tsFuture.wait方法(等待PD client从PD返回TSO),直到从PD Client获取TSO

总结:

PD Client具有批处理功能用于为多个事务或SQL分配TSO

TiKV Client内的region cache用于缓存最近访问的region位置

时间窗口

时间窗口机制用于防止会话过多时PD生成过多TSO对持久化存储造成负担,导致IO瓶颈

一次分配一段时间的TSO,将一段时间的TSO放入缓存中

如图leader PD为三个会话分配了3s的TSO,此时也只需向PD存储一次

若PD leader宕机,raft选取新的leader;而原leader缓存丢失,只能重新开始下一段时间的tso分配

如上图,每次分配3s的TSO,下一次为703-706,若此时PD leader,而新的PD收到请求TSO,则在706-709中分配,故PD发出的TSO只会递增不会递减

调度

TiKV node和region每隔一段时间向PD发出心跳,PD根据心跳信息进行调度

  • Store Heartbeat:来自存储阶段TiKV node的心跳,含有region分布等信息
  • Region Heartbeat:来自存储阶段region的心跳,含有访问频率等信息

Balance Leader:读写均衡

Balance Region:存储均衡 

Hot region:可能热点region将其split成多个region发布在其他TiKV node,缓解热点
Region merge:合并过小的region,减小负载

Label

假设:DC代表数据中心,Rack代表机柜

其中假设Rack 4或DC 2不可用将导致整个Region 1不可用

同理,假设DC 1不可用,将导致Region 2不可用

(3副本情况下,如果副本中两个(超过一半的)region不可用则导致整个region不可用)

location-labels设置label层级,如图有三层,zone,rack,host

ps:location-labels中设置的label与现实中的物理设备没有直接联系,如根据配置Zone既可以代表机柜,也可以代表一个TiKV节点

isolation-level设置隔离级别,如图中设置隔离基本为zone,则region副本不应在同一个zone层上

server.label是设置存储单元的label,如上图中TiKV的labels为zone=1(1号数据中心),rack=1(1号机柜),host=1(1号服务器)

例题

1.下列关于PD (Placement Driver)架构和功能正确的是?

A.访问PD集群中的任何一个节点都可以获得TSO

B.TiKV会周期性地向PD上报状态

C.PD会周期性地查询TikV的状态,不需要TiKV上报,目的是为了高效

D.PD的调度功能只能平衡region的分布,无法对leader进行调度

答案:B

解析:A:只有访问作为leader的PD才能获取TSO;C:TiKV和Region

会周期性的发出含有自身状态的心跳给PD,而不是PD主动查询;D:PD的平衡包括region和leader

2.关于label,下列说法不正确的是?

A. label的本质是个调度系统,可以人为控制region副本的存放位置

B. label需要在PD和TiKV上进行配置

C. isolation-level要和数据中心(DC)对应,这样可以获得最大的可用性

D.如果某个region的所有副本不可用,有可能造成整个TiDB数据库不可用

答案: C

解析:A:label的机制就是将region分散化,避免集中存储,较低数据丢失的风险;B:label需要在TiKV(server.label)和PD(location-labels和isolation-level)上配置;C:isolation-level的设置应根据实际情况设定;D:如果该region存储元数据,例如数据库的用户名,密码等,则有可能造成整个TiDB数据库不可用


http://chatgpt.dhexx.cn/article/52qWK2Uw.shtml

相关文章

Placement

程序功能:进入brd版图环境下的布局显示模式。 快捷键为:p或者P 布局模式,只显示器件的焊盘、器件外形丝印、ROUTE KEEPOUT铜皮、PACKAGE KEEPOUT铜皮和器件的PLACE_BOUND铜皮。

ICC图文流程——(三)布局Placement

ICC布局阶段 在布局规划阶段完成了芯片的整体规划,而布局阶段主要是软件自动的标准单元的摆放。 在布局开始之前,需要对设计进行确认和检查。 主要确认内容包括: 检查设计中的所有macro是否设置为dont_touch属性。在大多数情况下&#xff0…

想要彻底掌握placement各种技巧,这个一定可以如你所愿

想要彻底掌握placement各种技巧,这个一定可以如你所愿! 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。 大家应该也都知道最近小编在忙项目,而且是相当的忙,到处…

openstack 【T版】(四)——部署placement

openstack 【T版】(四)——部署placement 一、Placement概念二、OpenStack-Placement组件部署1.创建数据库实例和数据库用户2.创建placement用户、授权、创建placement服务3.注册API端口到placement的service中;注册的信息会写入到mysql中4.安…

牛血清白蛋白标记微囊藻毒素(MCLR)(BSA-MCLR)

本制品以牛血清白蛋白BSA-微囊藻毒素MCLR经化学交联获得的偶联物。 微囊藻毒素(Microcystin,MC)是一类具有生物活性的环状七肽化合物 MC具有水溶性和耐热性,加热煮沸都不能将毒素破坏;自来水处理工艺的混凝沉淀、过滤、加氯、氧化、活性炭吸…

you-get使用二三谈 (亲测感想 )

1.you-get是什么 you-get是Github上的一个项目,源项目托管地址对其介绍如下:You-Get is a tiny command-line utility to download media contents (videos, audios, images) from the Web, in case there is no other handy way to do it. You-Get是一…

预训练语言模型论文分类整理

© 作者|王晓磊 机构|中国人民大学高瓴人工智能学院博士生 导师|赵鑫教授 研究方向 | 对话系统 1. 引言 近年来,以 BERT 和 GPT 系列为代表的大规模预训练语言模型(Pre-trained Language Model, PLM&#…

Antigen for exchange 部署+评测

antigen系列是Forefront系列的早期版本,基本上除了换了个名字意外别的界面都没有换,微软的windows让我们家喻户晓,可是微软做杀毒软件却远不及诺顿等杀软大牌厂商,当微软推出Forefront的时候,又一次的给人以惊喜&#…

Windows10内置Linux子系统初体验

转载自: http://www.jianshu.com/p/bc38ed12da1d WSL 前言 前段时间,机子上的win10又偷偷摸摸升级到了一周年正式版,比较无奈。不过之前听闻这个版本已经支持内置的linux子系统,于是就怀着好奇心试玩了一把。虽然期间遇到了很多问…

《预训练周刊》第29期:Swin Transformer V2:扩大容量和分辨率、SimMIM:用于遮蔽图像建模的简单框架...

No.29 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 本期周刊,我们选择了10篇预训练相关的论文,涉及图像处理、图像屏蔽编码、推荐系统、语言模型解释、多模态表征、多语言建模、推理优化、细胞抗原预测、蛋白结构理解和化学反应的探索。此…

《预训练周刊》第51期:无重构预训练、零样本自动微调、一键调用OPT

No.51 智源社区 预训练组 预 训 练 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,《预训练周刊》已经开启“订阅功能”,以后我们会向您自动推送最新版的《预训练周刊》。订阅方法: 方式1:扫描下面二维码,进入《预…

Antigen for LCS2005

Antigen For LCS2005<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /> Antigen for LCS2005是一款应用于即时通信内的杀毒&#xff0c;防毒软件。 试验拓扑图如下&#xff1a; Berlin是域LCS的域控制器也是DNS服务器&#xff0c;…

forefront for antigen

forefront for antigen antigen软件是保护企业Exchange 2003和Exchange 2000的。可以有效的防止病毒通过邮件的传输来危害计算机&#xff0c;而且antigen软件集合了八家杀毒公司的引擎&#xff0c;是让人心动的一面&#xff0c;如果能把杀毒的工作做好&#xff0c;那是很有潜力…

详解Microsoft Antigen for exchange9.0部署与测试

今天为大家介绍的是Microsoft Forefront系列的早期版本Antiget&#xff0c;Antigen for exchange9.0集成了九款杀毒引擎。微软的windows已经让我们家喻户晓了&#xff0c;当微软推出Forefront的时候&#xff0c;又一次的给人以惊喜&#xff0c;最具有竞争力的就是微软用自己雄厚…

antigen for exchange 部署

今天部署antigen for exchange。这是基于exchange 的安全软件&#xff0c;有扫描邮件病毒的功能&#xff0c;等。搭建exchange 就不说了。 拓扑图如下&#xff0c; <?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /><?xml:namespace pre…

Microsoft Antigen for Exchange 9.0+Exchangesp2 简单搭建与测试

网络的安全性一直是大家所讨论的问题&#xff0c;有完全的安全吗&#xff1f;呵呵&#xff0c;大家都是明白人&#xff0c;明白人不用细说&#xff0c;没有绝对的安全&#xff0c;只有相对意义下的安全&#xff0c;在企业中无所谓一些常用的服务安全性了&#xff0c;对于安全的…

Microsoft Antigen for LCS2005详细部署、客户端测试

前面的博文中我说了下Microsoft Antigen for Exchange搭建&#xff0c;今天我们在来说说微软在Forefront配合LCS详细搭建&#xff0c;大家知道LCS(Live Communications Server)即时通讯产品&#xff0c;和我们用的Q&#xff0c;MSN&#xff0c;旺旺一样&#xff0c;而我们有的企…

详解部署antigen for exchange及配置来实现邮件的安全及优化

详解部署antigen for exchange及实现邮件的安全及优化 现在科学技术越来越发达&#xff0c;竞争越来越激烈&#xff0c;安全成为忧患&#xff0c;尤其是自己发的邮件及给自己的邮件怕被别的公司知道&#xff0c;或者是怕别人利用邮件给自己发一些病毒之类的东西今天我们利用ant…

Antigen Detector(新冠试剂盒检测)

转自AI Studio&#xff0c;原文链接&#xff1a;Antigen Detector&#xff08;新冠试剂盒检测&#xff09; - 飞桨AI Studio 1、检测效果展示 2、Antigener_Detector思路说明 Antigener Detector通过两种方法串行&#xff0c;来完成检测。从而提高阳性样本的召回率。 首先是…

antigen简介

在Linux下经常需要进行终端操作&#xff0c;一个好的shell解释器可以帮助我们极大提高工作效率。有些同学可能听说过zshell和oh-my-zsh&#xff0c;前者是一个shell程序&#xff0c;由于功能比较强大&#xff0c;所以叫做z shell&#xff0c;意为终极shell&#xff1b;而后者是…