GBASE南大通用数据库-GBase 8a MPP Cluster之木桶效应降低技术

2023-12-30 08:02:42

几千年前,因为金属冶炼、塑料成型技术不成熟,盛产在水源丰富的江南一带的用来洗衣服、盛水的容器都是用那种木板与竹钉合围并在外部用绳索、皮条之类紧箍起来的木桶,名字叫箍木桶。一个木桶由于老化或者损坏,桶上的个别木板发生断裂,导致了木桶的盛水能力减少,最短的那块木板高度就成为了盛水能力的瓶颈。美国的管理学家彼得把这个现象称之为“木桶效应”或“短板效应”,借用网上一幅图来形象表达一下:

图片

再说MPP分布式数据库,MPP是Massively Parallel Processing的简称,中文翻译过来就是“大规模并行处理”。该架构的运算逻辑流程是将计算任务并行的分散到多个服务器的节点上,每个节点使用本地资源进行计算,最后各个节点将自己处理部分的结果汇总到任务发起节点,再把汇总结果返回给用户的一个过程。MPP数据库最大特点就是多节点并行处理、多节点协同计算,每个计算任务必须等待最后一个节点计算完成才能最终返回完整结果,这就产生了MPP数据库的“木桶效应”。木桶效应永远存在,只能无限度的降低其影响,而不能最终消除。计算任务的性能只能取决于最慢的那台节点的性能。虽然MPP有此缺点,但始终不会影响MPP数据库在市场上的强劲发展,归根到底就是MPP数据库厂家对此问题有积极向上的技术对策,最大化降低木桶效应所带来的负面性能效果。

GBase 8a MPP Cluster对降低MPP数据库木桶效应的处理较为极致,主要用到了它的关键技术—多分片。GBase 8a MPP产品的数据分片技术,这里的分片概念别被误导,不是MPP数据库常说的横向数据切片,而是副本数据的存放分片。可能比较难以理解,这里用四幅图做个清晰明了的对比说明。图一是大部分MPP数据库厂家常用的技术,以4个计算节点为例说明数据及副本的存放规则,一份主数据,一份副本数据:

图片

从图中可以看出,Table1的数据先以某种规则(hash、roundrobin)横向分割成4份,分别是Table1_n1_主、Table1_n2_主、Table1_n3_主、Table1_n4_主,且分别放置到每个节点。对应四份数据的副本数据分别是Table1_n1_副、Table1_n2_副、Table1_n3_副、Table1_n4_副,主副本数据完全一致。正常情况下四个节点使用主数据(红色圈圈的数据)对外提供服务。现在假设节点4故障,则对外服务时,数据使用(仍然是红圈圈)情况如下图:

图片

是不是非常明显看到原节点4上的数据Table1_n4_主用节点1的Table1_n4_副接替来对外继续服务。节点1上的数据负载增加一倍,性能会因数据增大一倍,而执行效率理论降低((2-1)/1) * 100% =100%。此时木桶效应就被放大,这也是众多用户所不能忍受,最不愿意看到的情况发生。对于这种情况,GBase 8a MPP采用数据多分片技术后,那上述的这种情况就会得到很大的改善。还是用4个节点举例,采用3分片切片副本,那么数据是如何分布的呢?

图片

从上图可以看到采用3分片后的数据,不是存放到一个节点上,而是分布到了3台节点,比如节点4的副本数据,不再在只有存在节点1上,而是同时存在于节点1、节点2、节点3,数据分别是Table1_n4_副本_分片1、Table1_n4_副本_分片2、Table1_n4_副本_分片3。

当节点4因某种原因下线后,那么节点4的主数据需要由其他节点上存放的副本数据来接替继续对外提供服务,此时对外提供服务所使用到数据如图4红圈圈中的内容,此时副本数据已经被均匀打散到节点1、2、3三台机器。对比只有节点1接替故障节点4的副本数据,其性能影响已经由下降100%优化到下降((1.33 – 1)/1) * 100% = 33%,木桶效应的负面影响降低了三分之二。

图片

MPP数据库规避木桶效应的方式很多,除了GBase 8a MPP使用技术硬性降低之外,还有其他的方式,比如选择服务器的时候,尽可能配置相同;人为用技术影响数据分布,让配置高的节点多承接数据等方式降低木桶效应,但无论如何都不如从技术上处理更专业。

文章来源:https://blog.csdn.net/weixin_47390342/article/details/135292394
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。