1、数据库引擎技术架构SQL执行过程事务管理与并发控制、日志数据存储整体架构连接(APP、工具、接口)与协议面向连接的服务器架构(多进程、多线程、多协程)安全防范(用户鉴别、防止DoS攻击)前端架构数据库引擎扩展架构PostgreSQL的扩展MySQL的扩展集群架构Infromix的扩展-数据刀片高可用集群高可靠高可用集群分布式NewSQL的三条路1前端架构1前端架构1.1连接(APP、工具、接口)与协议AppAppsDBToolsDBServerDBServerAppsDBTools连接池AppsDBToolsJDBC/ODBCJDBC/ODBCDBServer通讯协议DBServer1前端架构
2、1.2面向连接的服务器架构(多进程、多线程、多协程)Server/InformixCoroutine1AppsDBToolsListenerJDBC/ODBCCoroutine2ActivesessionCoroutineN通讯协议EpollConnectDBServerServer/PostgreSQLProcess1Server/MySQLListenerListenerThread1 Process2Thread2fork()pthread()ThreadNProcessN1前端架构1.3安全防范(用户鉴别、防止Dos攻击)客户端不发消息,监听者则阻塞于此1前端架构前端架构需要考虑的问题
3、:多用户访问数据库 高效 安全2整体架构2.1数据库引擎的构成SELECTIN SERTSELECTIN SERTDBServer事务管理器ResultbufParser词法分析Heap/Access Method安全元数据统计信息等语法分析语义分析Relation/Page/Tuple/Index/Version逻辑IOBufferLog/ResourceOptimizerReoveryLogicaloptimizationPhysicaloptimizationLogbufferFile/Tabl e space存储管理器物理IO,直刷物理 IO,可异步2整体架构2.2数据库引擎的分析器3
4、语义分析SELECT SUM(a1),id1FROM t1LEFTJOIN t2ona1=a2LEFTJOIN t3onb2=b3WHERE k1IN(SELECT k3FROM t3AS tWHERE a330)AND b2=10AND k2=10GROUPBYid1;1词法分析5SQL分析=编译器前半段2语法分析4分析阶段产物:语法树2整体架构SQL语句2.3数据库引擎的优化器Parser:词法分析、语法分析、语义检查查询优化器Rewriter:查询重写(视图重写)planner查询优化函数Y集合操作N集合操作系统表:pg_class等统计数据分解集合操作为普通SQL代价估算器执行计划Ex
5、ecuter:执行器PostgreSQLV9.2.3执行结果2整体架构2.4数据库引擎的执行器-查询语句的执行过程SELECTSELECTDBServerBegin,开始事务Resultbuf输出事务管理器分析器优化器连接结果Heap/Access MethodgetTuple Lock/MVCC安全元数据统计信息等Relation/Page/Tuple/Index/Version迭代器逻辑IOPagetotupleBufferCheckpoint执行计划Read输入ResourceLog/Reovery事务结束Commit/RollbackLogbufferFile/Tabl e space
6、存储管理器物理IO,直刷物理 IO,可异步2整体架构2.5数据库引擎的执行器插入语句的执行过程IN SERTIN SERTDBServerBegin,开始事务Resultbuf输出事务管理器分析器优化器消息Heap/Access MethodCre at e ane wt uple安全元数据统计信息等Relation/Page/Tuple/Index/Version迭代器逻辑IOBuffer执行计划Chekcpoint Writelog输入ResourceLog/Reovery事务结束flushCommit/RollbackLogbufferFile/Tabl e space存储管理器物理IO
7、,直刷物理 IO,可异步2整体架构整体架构需要考虑的问题:ACID特性保证事务机制 数据可被并发访问高效3扩展架构扩展粒度细,层次多闭源系统,少有扩展类别比较项PostgreSQLMySQL通过handler实现数据存储底层的文件操作可替换 通过smgr层实现 不支持Informix不支持支持支持可替换整个存储引擎不支持存储用户可自定义数据类型支持可替换整个优化器支持可替换单表扫描的方法支持支持支持支持支持支持支持不支持支持不支持不支持不支持不支持不支持不支持不支持不支持优化器执行器不支持支持可替换整个执行器用户可自定义索引不支持不支持不支持不支持数据访问用户可自定义操作符用户可自定义外部数据
8、源可以自定义数据采样方法支持支持不支持支持附加用户进程到服务器共享内存通过BackgroundWorker实现进程不支持支持自定义函数存储过程触发器支持支持单一语言支持支持支持多种语言支持用户功能支持多种语言支持扩展粒度粗,面向存储引擎4集群架构单机系统单点故障4集群架构方案一:主从复制4.1高可用集群MySQL复制原理高可靠集群Binlog Dump资源利用率低,高可用性差4集群架构方案二:一主多从复制4.1高可用集群缺点:1需要用户定制开发2借助第三方组件定制开发太头疼图者:陈华军2016 DTCC4集群架构方案三:读写分离架构4.1高可用集群读写分离架构问题:主备之间的网络出现故障时,集
9、群脑裂,导致数据双写,VIP来回切换缺点:1failover依赖于第三方组件2读写分离依赖于MyCat/Atlas等分布式中间件3数据需要人工/自动分片中间件增加开发负担图作者:朱茂海4集群架构Infromix两地三中心架构4.2高可靠高可用集群 HDR,数据同步HDR通信同城灾备方案HDR节点SDS共享存储集群主节点A座SDS之间failover磁盘镜像连接管理器负载均衡A与B可多写多读B座连接管理器SDS节点异地灾备方案RSS节点用户通过CM,即连接管理器发起数据请求RSS通信千里之外远程通讯4集群架构Infromix两地三中心架构4.2高可靠高可用集群主节点宕机,SDS继续提供服务HDR
10、,数据同步HDR通信城灾备方案DR节点DS共享存储集群主节A座SDS之间failoverHDR节点宕机,继续提供服务RSS磁盘镜像连接管理器负载均衡A与B可多写多读B座连接管理器SDS异地灾备方案RSS节点 SDS节点宕机,HDR继续提供服务用户通过CM,即连接管理器发起数据请求RSS通信千里之外远程通讯计算能力有限4集群架构4.2高可靠高可用集群Infromix两地三中心架构-复制原理4集群架构4.3分布式NewSQL的三条路用户需求是大杂烩4集群架构4.3分布式NewSQL的三条路用户期望5自动增容、减容6几乎无failover1简化开发2海量存储DB1客户服务器1网络3高性能计算4结构化
11、、半结构化数据等7有事务(提供 接口8 SQLACID)特性服务器2服务器3DB3DB2客 户客 户4集群架构第一条路:NoSQL走向NewSQL:快速原型法,技术上越走越艰难4.3分布式NewSQL的三条路考虑的问题1简化开发2海量存储3高性能计算4结构化、半结构化数据5自动增容、减容6几乎无failover7有ACID特性8提供SQL接口4集群架构第一条路:NoSQL走向NewSQL:快速原型法,技术上越走越艰难4.3分布式NewSQL的三条路CockroachDB,存储层是KV系统KV系统,事务能力弱没有结构化数据处理能力4集群架构第二条路:传统数据库走向NewSQL:架构改动法。4.3
12、分布式NewSQL的三条路考虑的问题1简化开发2海量存储3高性能计算4结构化、半结构化数据5自动增容、减容6几乎无failover7有ACID特性8提供SQL接口4集群架构第三条路:混搭架构。1用户接入简单(支持SQL)4.3分布式NewSQL的三条路混搭架构:Trafodion3多主协调避免Master的单点故障2多Master(物理节点级并行计算)4分布式事务管理6分布式存储4集群架构第三条路:混搭架构。4.3分布式NewSQL的三条路Google:Spanner传统关系数据库所不具备的关键之处4集群架构集群架构需要考虑的问题:分布式存储+分布式计算满足海量数据存储和处理的需求,数据不丢失 支持ACID分布式事务特性 多点写、多点读资源利用率高 HTAP=OLTP+OLAP多种类计算需求 无单点或半数以下节点故障高可用 支持结构化、半结构化、非结构化数据多种数据存储2016SACC数据库架构专场数据库查询优化器的艺术:原理解析与SQL性能优化