美文网首页
Shardingsphere内核剖析之执行引擎

Shardingsphere内核剖析之执行引擎

作者: engineer_tang | 来源:发表于2021-09-30 08:42 被阅读0次
image.png

1. 执行引擎

负责将路由和改写完成之后的真实 SQL 安全且高效发送到底层数据源执行。关注平衡数据源连接创建以及内存占用所产生的消耗,以及最大限度地合理利用并发等问题。

目标
自动化的平衡资源控制与执行效率,具体细节如下:

  • 对数据库连接资源的控制保护;
  • 采用更优的归并模式达到对中间件内存资源的节省;

1.1 流式归并

以结果集游标下移进行结果归并的方式,称之为流式归并。

1.2 内存归并

无法保证每个分片查询持有一个独立数据库连接时,则需要在复用该数据库连接获取下一张分表的查询结果集之前,将当前的查询结果集全数加载至内存。

1.3 内存限制模式

前提是,ShardingSphere 对一次操作所耗费的数据库连接数量不做限制。对每个查询操作都创建一个数据库连接,优先选择流式归并,以防止出现内存溢出或避免频繁垃圾回收情况。

1.4 连接限制模式

前提是,ShardingSphere 严格控制对一次操作所耗费的数据库连接数量。同库只能使用一个数据库连接,该模式始终选择内存归并。

内存限制模式适用于 OLAP 操作,可以通过放宽对数据库连接的限制提升系统吞吐量; 连接限制模式适用于 OLTP 操作,OLTP 通常带有分片键,会路由到单一的分片,因此严格控制数据库连接,以保证在线系统数据库资源能够被更多的应用所使用,是明智的选择。

2. 自动化执行引擎

为了降低用户的使用成本以及连接模式动态化这两个问题,ShardingSphere 提炼出自动化执行引擎的思路。

自动化执行引擎将连接模式的选择粒度细化至每一次 SQL 的操作。 针对每次 SQL 请求,自动化执行引擎都将根据其路由结果,进行实时的演算和权衡,并自主地采用恰当的连接模式执行,以达到资源控制和效率的最优平衡。 针对自动化的执行引擎,用户只需配置 maxConnectionSizePerQuery 即可,该参数表示一次查询时每个数据库所允许使用的最大连接数。

执行引擎分为准备和执行两个阶段。

2.1 准备阶段

用于准备执行的数据。分为结果集分组和执行单元创建。

ShardingSphere 为了避免死锁的出现,在获取数据库连接时进行了同步处理。 它在创建执行单元时,以原子性的方式一次性获取本次 SQL 请求所需的全部数据库连接,杜绝了每次查询请求获取到部分资源的可能。

2.2 执行阶段

分为分组执行和归并结果集生成两个步骤。

相关文章

  • Shardingsphere内核剖析之执行引擎

    1. 执行引擎 负责将路由和改写完成之后的真实 SQL 安全且高效发送到底层数据源执行。关注平衡数据源连接创建以及...

  • Shardingsphere内核剖析之归并引擎

    功能划分:分为遍历、排序、分组、分页和聚合 5 种类型。结构划分:分为流式归并、内存归并和装饰者归并,装饰者归并可...

  • Shardingsphere使用配置及内核剖析

    导读 本文主要通过源码分析Shardingsphere原理 关键字 :Shardingsphere使用、Shard...

  • sharding-jdbc sql执行过程

    我们去官网上看看执行引擎的一些概念:https://shardingsphere.apache.org/docum...

  • 浏览器内核简介

    什么是浏览器内核 浏览器引擎分为排版引擎和Js引擎两种。js引擎就是解释执行javascript的,而排版引擎就是...

  • 共享内存

    进程间通信之-共享内存Shared Memory--linux内核剖析(十一)

  • ShardingSphere-jdbc sql执行过程

    ShardingSphere-jdbc sql执行过程 执行过程 调用ShardingSphereDataSour...

  • 从源码看ShardingSphere设计-执行引擎篇

    执行引擎的职责定位是将改写后的SQL发送到对应数据库(经路由计算所得)执行的过程。执行引擎采用了callback回...

  • J2V8的使用

    js 执行引擎说明 浏览器发展历史 内核演变 Gecko(Netscape) - Trident(IE) - Ge...

  • PHP深入理解一

    PHP的核心组成,包括两部分 :ZEND引擎PHP内核。Zend引擎:负责代码的解析、翻译和执行(解释器部分),负...

网友评论

      本文标题:Shardingsphere内核剖析之执行引擎

      本文链接:https://www.haomeiwen.com/subject/iwasnltx.html