CMU Database Systems - Parallel Execution

栏目: 数据库 · 发布时间: 5年前

内容简介:并发执行,主要为了增大吞吐,降低延迟,提高数据库的可用性先区分一组概念,parallel和distributed的区别总的来说,parallel是指在物理上很近的节点,比如本机的多个线程或进程,不用考虑通信代价

并发执行,主要为了增大吞吐,降低延迟,提高数据库的可用性

先区分一组概念,parallel和distributed的区别

总的来说,parallel是指在物理上很近的节点,比如本机的多个线程或进程,不用考虑通信代价

distributed,要充分的考虑通信代价,failover的问题,更为复杂

CMU Database Systems - Parallel Execution

Process Model

先解释一下概念,

process model,指数据库系统架构设计,用于支持多用户的并发请求

worker,用于执行客户端tasks的DBMS组件

CMU Database Systems - Parallel Execution

通常的process model有3种,

Process Per Worker,每个worker都是一个系统进程,

进程最大优点,隔离好,不会因为一个worker影响整个库,但问题肯定是太重,比较低效,支持不了高并发

早期的数据库往往采用这个方案,是因为那个时候线程的方案还不成熟

CMU Database Systems - Parallel Execution

Process Pool,这个方案和上面的没有本质不同,只是worker从只用一个进程,到使用一个进程pool

Pool的好处,一个worker可以同时相应多个请求,而且一个进程hang住了,不会影响worker工作

坏处,一个client的连续的请求会分配到不同的进程,那么CPU cache locality上就不是很好

CMU Database Systems - Parallel Execution

Thread Per Worker

这个是当前主流的process model,

一个数据库实例是一个进程,worker通过线程实现,这样由DBMS自己进行线程调度

线程模型明显更加轻量,更容易应对高并发的场景,而且线程间通信的成本很低

最大的问题是隔离性不好,一个线程可能把整个库搞挂

CMU Database Systems - Parallel Execution CMU Database Systems - Parallel Execution

Parallel Execution

并行有两种,

不同的query,并行的执行

一条query中不同的operation并行的执行

CMU Database Systems - Parallel Execution

Inter-query,很容易理解,要解决的也就是并发控制问题,这个后面会讲

这里重点说下Intra-query,它也是包含两种类型,

首先是Intra-operator,水平并行,MPP

把数据水平分成多份,分别执行,有个Exchange,类似latch,等待所有分片都执行完,做相应的merge然后再往上发送

CMU Database Systems - Parallel Execution CMU Database Systems - Parallel Execution

然后是,Inter-operator,DAG方式,pipeline,streaming process

CMU Database Systems - Parallel Execution CMU Database Systems - Parallel Execution

I/O PARALLELISM

前面光说了,平行处理,但是数据库的瓶颈大部分在磁盘IO

所以如果要并行计算,关键是数据要能划分开,并行的读取

一些比较简单的方法如下,

人为的分多块盘,或是用raid0,raid1

CMU Database Systems - Parallel Execution CMU Database Systems - Parallel Execution

但是如果要在表级别做划分,就需要更为复杂的方法,对数据做partition

CMU Database Systems - Parallel Execution

划分又分为两种,

垂直划分,列存

水平划分,sharding

CMU Database Systems - Parallel Execution CMU Database Systems - Parallel Execution


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ACM/ICPC程序设计与分析

ACM/ICPC程序设计与分析

沈云付 / 清华大学 / 2010-7 / 39.50元

《ACM/ICPC程序设计与分析(C++实现)》介绍ACM国际大学生程序设计竞赛概况及程序设计基础,系统介绍数论、组合数学、动态规划、计算几何、搜索、图论和网络流等专题的典型算法,挑选历年竞赛中许多有代表性的竞赛题作为例题进行分析,便于学生编程时模仿学习。每章的例题和习题都配有输入输出样例,方便学生在编程时测试与调试程序。《ACM/ICPC程序设计与分析(C++实现)》以C++为程序设计语言,以提......一起来看看 《ACM/ICPC程序设计与分析》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码