当一个数据模型同时大量读、写操作并发执行时,读写操作互相影响,会加剧对锁
的竞争,导致整体性能下降。通过在GBase UP 中引入引擎级别的读写分离机制,
可以极大地缓解并发读写对锁的竞争,从而提高并发性能。引擎级别读写分离的基
本原理是,GBase UP 作为统一的访问入口,对读写请求进行调度,事务性操作
(INSERT、UPDATE 和DELETE)在GBase 8t 上执行,SELECT 查询关键是分析
GBase UP 产品手册 2 产品描述
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 23
型计算在GBase 8a 上执行,以充分利用GBase 8t 和GBase 8a 各自的优点。
代码示意:
-- 创建镜像表,镜像方向为GBase8t 到GBase 8a MPP
Create table t(...) engine=‘Mirror8t8a’;
-- 写操作用8t 引擎
Insert into t values(…);
-- 分析型查询用8a 引擎
Select avg(…) from t group by …;
查询操作指向到8a 的方式有两种:自动识别,根据语句中函数的类型,如OLAP
函数;手动识别,用户session 级变量和hint 级变量,影响到语句的执行引擎。