PostgreSQL 11 preview - JIT接口放开

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介:

标签

PostgreSQL , LLVM , JIT , 向量计算


背景

LLVM对大量数据运算(比如说where条件中过滤大量的数据,聚合计算大量的数据等)的效率提升非常的明显。

pic

原理参考

《分析加速引擎黑科技 - LLVM、列存、多核并行、算子复用 大联姻 - 一起来开启PostgreSQL的百宝箱》

PostgreSQL 11的JIT接口正在进行打磨,完善。借助LLVM,更多的并行计算的完善,PostgreSQL 11又会有一个质的飞越。解决企业OLTP和OLAP混合使用的需求。做到一个产品,解决小事务和大数据量密集计算的混合需求。

https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=2a0faed9d7028e3830998bd6ca900be651274e27

Add expression compilation support to LLVM JIT provider.  
author	Andres Freund <andres@anarazel.de>	  
Tue, 20 Mar 2018 17:20:46 +0800 (02:20 -0700)  
committer	Andres Freund <andres@anarazel.de>	  
Fri, 23 Mar 2018 05:45:59 +0800 (14:45 -0700)  
commit	2a0faed9d7028e3830998bd6ca900be651274e27  
tree	0ab54ad8ac5c5d97d7a4dcee4c2d99c7959af2f6	tree | snapshot  
parent	7ced1d1247286399df53823eb76cacaf6d7fdb22	commit | diff  
Add expression compilation support to LLVM JIT provider.  
  
In addition to the interpretation of expressions (which back  
evaluation of WHERE clauses, target list projection, aggregates  
transition values etc) support compiling expressions to native code,  
using the infrastructure added in earlier commits.  
  
To avoid duplicating a lot of code, only support emitting code for  
cases that are likely to be performance critical. For expression steps  
that aren't deemed that, use the existing interpreter.  
  
The generated code isn't great - some architectural changes are  
required to address that. But this already yields a significant  
speedup for some analytics queries, particularly with WHERE clauses  
filtering a lot, or computing multiple aggregates.  
  
Author: Andres Freund  
Tested-By: Thomas Munro  
Discussion: https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de  
  
Disable JITing for VALUES() nodes.  
  
VALUES() nodes are only ever executed once. This is primarily helpful  
for debugging, when forcing JITing even for cheap queries.  
  
Author: Andres Freund  
Discussion: https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de  

参考

《分析加速引擎黑科技 - LLVM、列存、多核并行、算子复用 大联姻 - 一起来开启PostgreSQL的百宝箱》

《PostgreSQL VOPS 向量计算 + DBLINK异步并行 - 单实例 10亿 聚合计算跑进2秒》

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
SQL 存储 关系型数据库
PostgreSQL 通过SQL接口关闭、重启数据库
PostgreSQL 通过SQL接口关闭、重启数据库
2401 0
|
6月前
|
SQL 关系型数据库 数据库
nacos 2.2.3版本 查看配置文件的历史版本的接口 是针对MySQL数据库的sql 改成postgresql后 sql语句报错 该怎么解决
在Nacos 2.2.3中切换到PostgreSQL后,执行配置文件历史版本分页查询出错,因`LIMIT 0, 10`语法不被PostgreSQL支持,需改为`LIMIT 10 OFFSET 0`。仅当存在历史版本时报错。解决方案是调整查询SQL以兼容PostgreSQL语法。
|
7月前
|
SQL 存储 缓存
PostgreSQL函数管理接口
学习PostgreSQL服务端开发必须要对函数管理接口有比较深入的了解
|
SQL 关系型数据库 数据库连接
PostgreSQL 12 文档: 部分 IV. 客户端接口
部分 IV. 客户端接口 这一部分描述和PostgreSQL一起发布的客户端编程接口。这些章中的每一个都能被独立阅读。注意,还有很多用于客户端程序的其他编程接口是被独立发布的并且包含它们自己的文档(附录 H列出了一些很流行的)。这部份的读者应该熟悉使用SQL命令来操纵和查询数据库(见第 II 部分),以及熟悉接口所使用的编程语言。
92 0
|
SQL 弹性计算 关系型数据库
PostgreSQL 12 preview - CTE 增强,支持用户语法层控制 materialized 优化
标签 PostgreSQL , CTE , materialized , not materialized , push down 背景 PostgreSQL with 语法,能跑非常复杂的SQL逻辑,包括递归,多语句物化计算等。 在12以前的版本中,WITH中的每一个CTE(common table express),都是直接进行物化的,也就是说外层的条件不会推到CTE(物化节点)里
1004 0
|
关系型数据库 大数据 测试技术
AnalyticDB PostgreSQL 7.0 新能力介绍 : 利用JIT加速计算
AnalyticDB PostgreSQL 7.0 发布, 即时编译(Just-In-Time,JIT)可以将某种形式的解释程序计算转变成原生程序,由CPU原生执行,从而得到加速。
283 0
AnalyticDB PostgreSQL 7.0 新能力介绍 : 利用JIT加速计算
|
设计模式 Oracle NoSQL
无需编程,基于PostgreSQL零代码生成CRUD增删改查RESTful API接口
采用抽象工厂设计模式,可以无缝切换不同类型的数据库,从crudapi 1.3.0版本开始,添加了对大象数据库PostgreSQL的支持。并且以学生对象为例,零代码实现了CRUD增删改查RESTful API,后续计划支持更多的数据库,比如Oracle,MSSQL Server,Mongodb等。
256 0
无需编程,基于PostgreSQL零代码生成CRUD增删改查RESTful API接口
|
弹性计算 关系型数据库 数据库连接
PostgreSQL 12 preview - Move max_wal_senders out of max_connections for connection slot handling
标签 PostgreSQL , max_wal_senders , max_connections , sorry, too many clients already 背景 如果你需要使用PG的流复制,上游节点的max_wal_senders参数,用来限制这个节点同时最多可以有多少个wal sender进程。 包括逻辑复制、物理复制、pg_basebackup备份等,只要是使用stre
375 0
|
弹性计算 安全 关系型数据库
PostgreSQL 12 preview - 可靠性提升 - data_sync_retry 消除os层write back failed status不可靠的问题
标签 PostgreSQL , data_sync_retry , write back , retry , failed status 背景 有些OS系统,对fsync的二次调用不敏感,因为OS层可能有自己的CACHE,如果使用了buffer write,并且出现write back failed的情况,有些OS可能在下次fsync时并不能正确的反馈fsync的可靠性与否。(因为这个B
569 0
|
SQL 存储 弹性计算
PostgreSQL 通过SQL接口关闭、重启数据库
标签 PostgreSQL , 重启 , 信号 , postmaster.pid , pg_reload_conf() 背景 如何通过SQL接口直接关闭数据库,或者重启数据库? 关闭和重启数据库是一个风险较大的操作,如果能通过SQL来关闭,重启数据库,当然是很难想象的,因为SQL通常是使用接口,而不是管理接口。当然并不是数据库做不到通过SQL管理数据库,而是这确实是风险较大且并不是数据
2097 0

相关产品

  • 云原生数据库 PolarDB
  • 云数据库 RDS PostgreSQL 版