Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一张图让您秒懂 PD是怎样计算出region的最佳机架放置位置

一张图让您秒懂 PD是怎样计算出region的最佳机架放置位置

原创
作者头像
杨漆
修改于 2021-01-25 02:20:48
修改于 2021-01-25 02:20:48
7340
举报
文章被收录于专栏:TidbTidb

何谓机架感知 ?

答 : 让Region知道自己的放置位置(城市、机房、数据中心、机架)

在Tidb中 PD是怎样计算出region的最佳机架放置位置的 ?

看完下图让您瞬间秒懂了这个精妙 :

1. 划红线处,由1 replication.location_labels中的值 推导出len为2

2. 当p1,p2在第三点位上位置重叠时,该点位数值计为-1

3. 当p1,p2同dc ,不同host时计为2

4. diff(p1,p3) 对应六个位置的数值推导原理同 diff(p1,p2)

将len=2, diff(p1,p2),diff(p1,p3) 在六个位置上对应的不同数值代入score的计算公式可得出Best Location

既上图中将划红线处的 1,2,3(p3上面的红线)计算结果代入,得出P1在不同位置的score分值。

conclusion : p1在host1、host2时计算出的Score值最大值,证明放在这两个位置中任意一个位置,当一个数据中心灾难时,仍然有2个副本存在,保障了raft的多数派存在,保障了数据安全性。

Tidb做为第四代HTAP数据库,它的best location 设计就是这样精妙,哈哈哈......

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
重温前端-js篇
instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上
kif
2023/03/10
5.5K0
《移动互联网技术》第三章 无线定位技术:掌握位置服务和室内定位的基本概念和工作原理
《移动互联网技术》课程是软件工程、电子信息等专业的专业课,主要介绍移动互联网系统及应用开发技术。课程内容主要包括移动互联网概述、无线网络技术、无线定位技术、Android应用开发和移动应用项目实践等五个部分。移动互联网概述主要介绍移动互联网的概况和发展,以及移动计算的特点。无线网络技术部分主要介绍移动通信网络(包括2G/3G/4G/5G技术)、无线传感器网络、Ad hoc网络、各种移动通信协议,以及移动IP技术。无线定位技术部分主要介绍无线定位的基本原理、定位方法、定位业务、数据采集等相关技术。Android应用开发部分主要介绍移动应用的开发环境、应用开发框架和各种功能组件以及常用的开发工具。移动应用项目实践部分主要介绍移动应用开发过程、移动应用客户端开发、以及应用开发实例。 课程的教学培养目标如下: 1.培养学生综合运用多门课程知识以解决工程领域问题的能力,能够理解各种移动通信方法,完成移动定位算法的设计。 2.培养学生移动应用编程能力,能够编写Andorid应用的主要功能模块,并掌握移动应用的开发流程。 3. 培养工程实践能力和创新能力。  通过本课程的学习应达到以下目的: 1.掌握移动互联网的基本概念和原理; 2.掌握移动应用系统的设计原则; 3.掌握Android应用软件的基本编程方法; 4.能正确使用常用的移动应用开发工具和测试工具。
猫头虎
2024/04/08
4860
《移动互联网技术》第三章 无线定位技术:掌握位置服务和室内定位的基本概念和工作原理
TensorFlow 深度学习实战指南:1~5 全
TensorFlow 是 Google 最近发布的新的机器学习和图计算库。 其 Python 接口可确保通用模型的优雅设计,而其编译后的后端可确保速度。
ApacheCN_飞龙
2023/04/23
1.9K0
TensorFlow 深度学习实战指南:1~5 全
Hadoop周边组件学习笔记
Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,它能让用户轻松地开发处理海量数据的应用程序,其主要优点有:
数据社
2021/01/22
5860
UIUC CS241 讲义:众包系统编程书
欢迎来到 Angrave 的众包系统编程维基书!这个维基是由伊利诺伊大学的学生和教师共同建立的,是伊利诺伊大学 CS 的 Lawrence Angrave 的众包创作实验。
ApacheCN_飞龙
2024/01/12
9010
UIUC CS241 讲义:众包系统编程书
使用计算机视觉实战项目精通 OpenCV:1~5
本章将向您展示如何为 Android 智能手机和平板电脑编写一些图像处理过滤器,该过滤器首先针对台式机(使用 C/C++)编写,然后移植到 Android(使用相同的 C/C++ 代码,但使用 Java GUI), 这是为移动设备开发时的推荐方案。 本章将涵盖:
ApacheCN_飞龙
2023/04/27
2.4K0
UCB Data100:数据科学的原理和技巧:第二十一章到第二十六章
HAVING通过在每个组的所有行上应用一些条件来过滤组。我们将其解释为只保留具有某些条件的组的一种方式。请注意WHERE和HAVING之间的区别:我们使用WHERE来过滤行,而我们使用HAVING来过滤组。在 SQL 执行查询时,WHERE在HAVING之前。
ApacheCN_飞龙
2024/01/13
3390
UCB Data100:数据科学的原理和技巧:第二十一章到第二十六章
c#实战教程_ps初学者入门视频
大家好,又见面了,我是你们的朋友全栈君。 C#基础教程-c#实例教程,适合初学者。 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。当然仅靠一章的内容就完全掌握C#语言是不可能的,如需进一步学习C#语言,还需要认真阅读有关C#语言的专著。 1.1 C#语言特点 Microsoft.NET(以下简称.NET)框架是微软提出的新一代Web软件开发模型,C#语言是.NET框架中新一代的开发工具。C#语言是一种现代、面向对象的语言,它简化了C++语言在类、命名空间、方法重载和异常处理等方面的操作,它摒弃了C++的复杂性,更易使用,更少出错。它使用组件编程,和VB一样容易使用。C#语法和C++和JAVA语法非常相似,如果读者用过C++和JAVA,学习C#语言应是比较轻松的。 用C#语言编写的源程序,必须用C#语言编译器将C#源程序编译为中间语言(MicroSoft Intermediate Language,MSIL)代码,形成扩展名为exe或dll文件。中间语言代码不是CPU可执行的机器码,在程序运行时,必须由通用语言运行环境(Common Language Runtime,CLR)中的既时编译器(JUST IN Time,JIT)将中间语言代码翻译为CPU可执行的机器码,由CPU执行。CLR为C#语言中间语言代码运行提供了一种运行时环境,C#语言的CLR和JAVA语言的虚拟机类似。这种执行方法使运行速度变慢,但带来其它一些好处,主要有:  通用语言规范(Common Language Specification,CLS):.NET系统包括如下语言:C#、C++、VB、J#,他们都遵守通用语言规范。任何遵守通用语言规范的语言源程序,都可编译为相同的中间语言代码,由CLR负责执行。只要为其它操作系统编制相应的CLR,中间语言代码也可在其它系统中运行。  自动内存管理:CLR内建垃圾收集器,当变量实例的生命周期结束时,垃圾收集器负责收回不被使用的实例占用的内存空间。不必象C和C++语言,用语句在堆中建立的实例,必须用语句释放实例占用的内存空间。也就是说,CLR具有自动内存管理功能。  交叉语言处理:由于任何遵守通用语言规范的语言源程序,都可编译为相同的中间语言代码,不同语言设计的组件,可以互相通用,可以从其它语言定义的类派生出本语言的新类。由于中间语言代码由CLR负责执行,因此异常处理方法是一致的,这在调试一种语言调用另一种语言的子程序时,显得特别方便。  增加安全:C#语言不支持指针,一切对内存的访问都必须通过对象的引用变量来实现,只允许访问内存中允许访问的部分,这就防止病毒程序使用非法指针访问私有成员。也避免指针的误操作产生的错误。CLR执行中间语言代码前,要对中间语言代码的安全性,完整性进行验证,防止病毒对中间语言代码的修改。  版本支持:系统中的组件或动态联接库可能要升级,由于这些组件或动态联接库都要在注册表中注册,由此可能带来一系列问题,例如,安装新程序时自动安装新组件替换旧组件,有可能使某些必须使用旧组件才可以运行的程序,使用新组件运行不了。在.NET中这些组件或动态联接库不必在注册表中注册,每个程序都可以使用自带的组件或动态联接库,只要把这些组件或动态联接库放到运行程序所在文件夹的子文件夹bin中,运行程序就自动使用在bin文件夹中的组件或动态联接库。由于不需要在注册表中注册,软件的安装也变得容易了,一般将运行程序及库文件拷贝到指定文件夹中就可以了。  完全面向对象:不象C++语言,即支持面向过程程序设计,又支持面向对象程序设计,C#语言是完全面向对象的,在C#中不再存在全局函数、全局变量,所有的函数、变量和常量都必须定义在类中,避免了命名冲突。C#语言不支持多重继承。 1.2 编写控制台应用程序 使用SDK命令行工具编写控制台程序 第一个程序总是非常简单的,程序首先让用户通过键盘输入自己的名字,然后程序在屏幕上打印一条欢迎信息。程序的代码是这样的: using System;//导入命名空间。//为C#语言新增解释方法,解释到本行结束 class Welcome//类定义,类的概念见下一节 { /*解释开始,和C语言解释用法相同 解释结束*/ static void Main()//主程序,程序入口函数,必须在一个类中定义 { Console.WriteLine(“请键入你的姓名:”);//控制台输出字符串 Console.ReadLine();//从键盘读入数据,输入回车结束 Console.WriteLine(“欢迎!”); } } 可以用任意一种文本编辑软件完成上述代码的编写,然后把文件存盘,假设文件名叫做welcome.c
全栈程序员站长
2022/09/30
16K0
脑科学磁共振成像(MRI)初学者必看——功能脑网络、小世界网络、FDR校正、脑电信号频率变换、模板、假设检验、广义线性模型、独立成分分析、影像组学、任务态和静息态方法汇总「建议收藏」
首先,甲学员从他人那里获取了每个脑区的信号序列。其次,计算任意两个信号序列间的相关(皮尔逊相关)。这样,把脑区视为节点,相关值视为边,功能网络就构建好啦!
全栈程序员站长
2022/09/15
13.6K0
脑科学磁共振成像(MRI)初学者必看——功能脑网络、小世界网络、FDR校正、脑电信号频率变换、模板、假设检验、广义线性模型、独立成分分析、影像组学、任务态和静息态方法汇总「建议收藏」
Transformers 4.37 中文文档(十二)
🤗 Transformers 是一个预训练的最先进模型库,用于自然语言处理(NLP)、计算机视觉以及音频和语音处理任务。这个库不仅包含了 Transformer 模型,还有像现代卷积网络这样的非 Transformer 模型,用于计算机视觉任务。如果你看一下今天最流行的消费产品,比如智能手机、应用和电视,很可能背后都有某种深度学习技术。想要从智能手机拍摄的照片中移除背景物体?这就是一个全景分割任务的例子(如果你还不知道这是什么,不用担心,我们将在接下来的部分中描述!)。
ApacheCN_飞龙
2024/06/26
6160
Transformers 4.37 中文文档(十二)
OpenCV3 和 Qt5 计算机视觉:6~10
它始终以未经处理的原始图像开始,这些图像是使用智能手机,网络摄像头,DSLR 相机,或者简而言之,是能够拍摄和记录图像数据的任何设备拍摄的。 但是,通常以清晰或模糊结束。 明亮,黑暗或平衡; 黑白或彩色; 以及同一图像数据的许多其他不同表示形式。 这可能是计算机视觉算法中的第一步(也是最重要的步骤之一),通常被称为图像处理(目前,让我们忘记一个事实,有时计算机视觉和图像处理可互换使用;这是历史专家的讨论。 当然,您可以在任何计算机视觉过程的中间或最后阶段进行图像处理,但是通常,用大多数现有设备记录的任何照片或视频首先都要经过某种图像处理算法。 这些算法中的某些仅用于转换图像格式,某些用于调整颜色,消除噪点,还有很多我们无法开始命名。 OpenCV 框架提供了大量功能来处理各种图像处理任务,例如图像过滤,几何变换,绘图,处理不同的色彩空间,图像直方图等,这将是本章的重点。
ApacheCN_飞龙
2023/04/27
2.8K0
五万字 | Hive知识体系保姆级教程
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
数据社
2021/08/27
2.2K0
五万字 | Hive知识体系保姆级教程
Python3 OpenCV4 计算机视觉学习手册:6~11
与人眼和大脑相似,OpenCV 可以检测图像的主要特征并将其提取到所谓的图像描述符中。 然后可以将这些特征用作数据库,从而启用基于图像的搜索。 此外,我们可以使用关键点将图像拼接在一起并组成更大的图像。 (请考虑将许多图片组合在一起以形成 360° 全景图。)
ApacheCN_飞龙
2023/04/27
4.4K0
Python3 OpenCV4 计算机视觉学习手册:6~11
PyTorch 深度学习(GPT 重译)(六)
在过去的几章中,我们已经构建了许多对我们的项目至关重要的系统。我们开始加载数据,构建和改进结节候选的分类器,训练分割模型以找到这些候选,处理训练和评估这些模型所需的支持基础设施,并开始将我们的训练结果保存到磁盘。现在是时候将我们拥有的组件统一起来,以便实现我们项目的完整目标:是时候自动检测癌症了。
ApacheCN_飞龙
2024/03/21
2260
PyTorch 深度学习(GPT 重译)(六)
Qt5 和 OpenCV4 计算机视觉项目:6~9
在上一章中,我们了解了光学字符识别(OCR)技术。 我们借助 Tesseract 库和预训练的深度学习模型(EAST 模型)来识别扫描文档和照片中的文本,该模型已随 OpenCV 一起加载。 在本章中,我们将继续进行对象检测这一主题。 我们将讨论 OpenCV 以及其他库和框架提供的几种对象检测方法。
ApacheCN_飞龙
2023/04/27
3.4K0
Qt5 和 OpenCV4 计算机视觉项目:6~9
开源数据代码,学习如何通过单细胞多组学数据鉴定关键因子
◉ 研究设计和计算分析的示意图。3DG,三维基因组。◉ WNN 表示的单核 RNA 测序和单核 ATAC 测序数据投影到 UMAP 上,显示主要细胞类型。◉ 伴随的饼图展示了在主要协变量(性别、脑库、脑区、年龄组和细胞类型)中代表的细胞核比例。MSSM,西奈山医学院。◉ 基于最高平均表达量的前两个基因标记可视化其在主要细胞类型中的基因表达。◉ 主要细胞类型中基因表达与相应基因活性(由染色质可及性推导)之间的余弦相似度。◉ 使用方差分解方法分析协变量对基因表达(左,n = 16,661 基因)、染色质可及性(中,n = 181,432 峰值)和细胞类型组成(右,n = 10 种细胞类型)的解释方差。在每个小提琴图中,中心线表示中位数,箱子表示四分位距(IQR),而须线表示在 1.5× IQR 范围内的最高/最低值。超出第一和第三四分位数 1.5 倍 IQR 的点被视为异常值。
生信菜鸟团
2025/04/04
1080
开源数据代码,学习如何通过单细胞多组学数据鉴定关键因子
悄悄学习Doris,偷偷惊艳所有人 | Apache Doris四万字小总结
DorisDB是由Apache Doris核心研发团队打造的新一代企业级MPP数据库。它继承了Apache Doris项目十多年研发成果,累积了线上数千台服务器稳定运行经验,并在此基础上,对传统MPP数据库进行了开创性的革新。
王知无-import_bigdata
2021/09/22
7.8K1
从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章待写:1、KD树;2、神经网络;3、编程艺术第28章。你看到,blog内的文章与你于别处所见的任何都不同。于是,等啊等,等一台电脑,只好等待..”。得益于田,借了我一台电脑(借他电脑的时候,我连表示感谢,他说“能找到工作全靠你的博客,这点儿小忙还说,不地道”,有的时候,稍许感受到受人信任也是一种压力,愿我不辜负大家对我的信任),于是今天开始Top 10 Algorithms in Data Mining系列第三篇文章,即本文「从K近邻算法谈到KD树、SIFT+BBF算法」的创作。
全栈程序员站长
2022/09/06
1.1K0
从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
大学课程 | 计算机网络
2.互连网:网络之间通过路由器互连起来,就构成了一个覆盖范围更大的计算机网络,因此互连网是“网络中的网络” 3.网络:网络把许多计算机连接在一起,而互连网则把许多网络通过路由器连接在一起。与网络相连的计算机称为主机。 4.计算机网络的三种定义:
Justlovesmile
2021/12/14
9420
大学课程 | 计算机网络
Python100Days
这可能是我目前发现最好最好的Python教程了,故整理至我的博客。 原项目GitHub地址https://github.com/jackfrued/Python-100-Days
一点儿也不潇洒
2018/08/07
10K0
推荐阅读
相关推荐
重温前端-js篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档