当前位置: 首页 > news >正文

南充公司做网站嘉兴房产网站建设

南充公司做网站,嘉兴房产网站建设,网站运营流程,高端企业网站建设随着数据驱动的应用日益增多#xff0c;数据查询和分析的量级和时效性要求也在不断提升#xff0c;对数据库的查询性能提出了更高的要求。为了满足这一需求#xff0c;数据库引擎不断经历创新#xff0c;其中并行执行引擎是性能提升的重要手段之一#xff0c;逐渐成为数据…随着数据驱动的应用日益增多数据查询和分析的量级和时效性要求也在不断提升对数据库的查询性能提出了更高的要求。为了满足这一需求数据库引擎不断经历创新其中并行执行引擎是性能提升的重要手段之一逐渐成为数据库系统的标配特性。 Cloudberry Database简称为“CBDB”或“CloudberryDB”是面向分析和AI场景打造的下一代统一型开源数据库搭载了PostgreSQL 14.4内核采用Apache License 2.0许可协议。CBDB在Postgres的基础之上对已有的并行执行计划进行了大量的调整和优化实现了显著的性能提升。 在这次的直播中HashData数据库内核研发专家介绍了Postgres的并行化原理CBDB在并行化上的优化与改进、功能特性及实践演示。以下内容根据直播文字整理。 并行化查询介绍 PostgreSQL在很多场景下会启用并行执行计划创建多个并行工作子进程提升查询效率。PostgreSQL的并行化包含三个重要组件进程本身(leader进程)、gather、workers。没有开启并行化的时候进程自身处理所有的数据一旦计划器决定某个查询或查询中某个部分可以使用并行的时候就会在查询的并行化部分添加一个gather节点将gather节点作为子查询树的根节点。 HashData研发团队在对CloudberryDB实现并行化查询时主要对查询执行算子、Join的实现以及存储引擎并行化扫描等进行了调整和优化。 图1非并行化查询与并行并查询对比示例 如图1所示以3个节点的集群为例在不开启并行化进行Not in操作时需要耗时50多秒而在CBDB中开启并行化查询后用时仅需119毫秒效率大约提升600倍。 在开启并行化查询时有以下几处变化 Gather Motion从3:1提升至12:1意味着集群的每个节点上有4个进程在同时并行工作Hash节点变为Parallel Hash新算子Broadcast Workers Motion 广播每一份数据到一组并行工作的进程中的一个避免在共享Hash表的情况下出现数据重复。底层的扫描由Seq Scan变为Parallel Seq Scan。 并行扫描原理 在PostgreSQL中数据以Heap表的形式存储。在读取时通常有顺序扫描Seq Scan、索引扫描Index Scan和位图扫描Bitmap scan三种扫描方式。接下来我们对以上三种扫描方式的并行化进行介绍。 图2PostgreSQL Heap表并行顺序扫描示意图 如图2所示在并行顺序扫描时两个子进程的快照是统一共享的。进程之间通过原子操作动态获得每次要读取的Page范围避免频繁使用锁从而造成瓶颈。Page的范围并不固定会根据数据量和读取进度进行动态调整使得任务尽量均分在不同进程中避免木桶效应。 图3PostgreSQL 并行索引扫描示意图 使用索引扫描并行化查询时子进程只需要读取对应索引的Page每个进程每次只读取一个索引Page再读取Heap表数据如果Page为全体可见可以不读取Heap表。 图4PostgreSQL 并行位图扫描示意图 并行位图扫描在建立底层索引的Page范围时只有一个进程按照索引信息(CTID)进行顺序扫描。与PostgreSQL使用leader进程不同的是CBDB在并行化查询时会通过竞争的方式选择一个X进程X进程负责建立位图之后多个workers竞争读取数据。 图5CloudberryDB AO表并行化查询示意图 除了Heap表之外CBDB还引入了AO表用来专门存储以追加方式插入的元组。如图5所示AO表的并行扫描是通过原子操作获取Segfiles让各个进程通过竞争的方式读取数据。 并行Join实现 并行能力的优化需要从多方面来实现仅凭优化扫描方式能实现的性能提升有限Join的并行化改造是另一个重要方向。 在PG中有三种Join分别为Nestloop Join、Merge Join和Hash JoinCBDB对上述三种Join均实现了并行化。此外一大特色是增加了共享内表的Hash JoinParallel-aware Hash Join。 Parallel-aware Hash Join与Hash Join相似区别在于前者是可以共享的进程之间相互协作共同建立共享的Hash内表。 图6Build a Join并行化实现流程示意图 如图6所示在PG非并行的情况下构建Join时从目标对象Table A、Table B各选取一条综合代价最低的执行路径合成Join relations路径。在开启并行化后会在上述情况下增加一条并行化最佳路径与非并行化路径构建Join。 数据分布并行化 在Greenplum 中数据分布有Partitioned、Replicated、Bottleneck三种情况它们之间可以通过Motion改变Locus的属性进行互相转化实现数据重分布CBDB也沿用了这一特性。 图7CBDB数据分布特性示意图 在CBDB构建Join的时候可以通过改变Locus进行数据相容。在转化过程中遵循两个原则 在Join时要保证数据不重复、不丢失要选择代价最小的方式。 与Greenplum 不同的是CBDB在开启并行化之后新建了三个新的Locus 并行模式实现不同的数据分布HashedWorkers、SegmentGeneralWorkers和ReplicatedWorkers。 HashedWorkers Locus表示数据分布在同一组进程之间是随机的但是合并后数据分布变成Hashed Locus。同理SegmentGeneralWorkers 和ReplicatedWorkers也代表了数据在进程间随机合并后满足各自的分布状态。 此外CBDB还实现了并行刷新物化视图、并行Create Table AS、多阶段并行化Aggregation/Limit等。通过以上诸多并行优化措施后CBDB性能得到大幅度的提升在特定场景下甚至可以实现千百倍的查询效率提升支持企业海量数据的复杂分析需求。 图8CBDB并行化性能曲线图 并行化查询是CBDB在研发立项之初就确定的产品方向我们希望能够通过多线程并行执行来充分释放现代多核大内存的硬件能力降低包括IO以及CPU计算在内的处理时间实现响应时间的大幅下降更好地提升用户使用体验和业务敏捷度。
http://www.huolong8.cn/news/201145/

相关文章:

  • 可以免费发广告的网站有哪些优化营商环境指什么
  • 广州网站设计提供商软文营销文章案例
  • 用前端做的比较酷的网站泸州网站建设
  • 代做网站关键词公司部门划分
  • 网站空间怎么备份网页制作外包
  • ftp网站上传成功后怎么做百度天眼查公司
  • 盐边网站建设深圳营销型网站建设费用
  • 什么网站可以找人做设计线上编程课推荐哪一个
  • 北京海淀国税局网站网页设计学什么软件
  • 宜昌皓月建设工程有限公司网站wordpress后台没有菜单
  • 付费阅读小说网站开发建设源码网站开发形式
  • 北京网站推广排名公司漳州手机网站建设
  • 网站开发与设计实训报告总结wordpress 修改仪表盘
  • 创新创业教育课程网站建设方案北京seo公司网站
  • 网站管理的含义网页界面设计的要求是什么
  • .net做网站的方式代理网址ip
  • 烟台市铁路建设管理局网站电子商务网站开发开发背景
  • 网站建设互联网加次世代建模培训
  • 商丘做网站建设广元百度做网站多少钱
  • 做公司网站需要会什么在哪个网站找学做包子
  • seo免费优化网站怎么用dw软件做网站
  • 学校网站建设学生文明上网做网站宿迁
  • 个人网站免费空间云服务器怎么用详细步骤
  • 上海市网站seonet网站开发
  • 网站轮播图制作怎么使用wordpress
  • 网站怎样优化关键词好网站制作怎么做下拉菜单
  • 在家做的打字兼职的网站电脑禁止访问网站设置
  • 建设网站需要什么设施?wordpress获取当前页地址
  • 如何注册网站做网站用什么语言制作最安全?
  • 中山手机网站建设三水区建设局网站