网易首页 > 网易号 > 正文 申请入驻

数据库子事务性能优化方法——亚信安慧AntDB让子事务“飞”起来

0
分享至

亚信安慧技术

该技术由亚信安慧投递并参与“数据猿年度金猿策划活动——2023大数据产业年度创新技术突破榜单及奖项”评选。

数据库子事务的性能优化是将磁盘文件中的父子关系交换到当前进程独占的本地内存,子事务在处理时,优先读取本地内存中缓存的事务信息,从共享内存中读取父子关系到本地的时候,以已经提交的最大xmin作为标记,保证最大xmin之前的事务已经提交;最大xmin之后的父子关系已经写入共享内存。

该技术方案通过本地内存优化数据库中子事务的处理性能,并基于xmin确保子事务 优化时主库备库的数据一致性,从而实现了数据 库的性能优化。基于该技术方案,在多并发场景下,子事务的处理也能够高效执行。

技术说明

目前,在数据库中,当数据库的子事务数量超过宏定义变量NUM_SUBTRANS_ BUFFERS子事务缓存(默认32page)指定的数量后,就发生磁盘同步。此时会产生子事务锁, 它是一把独占锁,高并发访问时就会出现性能问题(数据库后台等待事件表现为subtrans 或SubtransControlLock)。

默认子事务缓存占用32个buffer页面,每个buffer大小为8k,即子事务缓存总大小为32*8k=256k。每个事务号占用4个字节大小,则缓存中最多可存储256*1024/4=65536 个子事务。当系统中子事务数量,超出65536时,PostgreSQL将最老的已被replay的子事务号,交换到磁盘文件保存。当进程需要读取或更新子事务时,去磁盘文件查询时,必须先设置全局写锁,即SubTransCtl lock互斥锁。如图1所示,当子事务的父事务号在缓存中不存在时,则获取SubTransCtl lock互斥锁,从磁盘中读取文件到缓存后再释放互斥锁。该锁全局唯一,且顺序依次获取释放。因此,当超出子事务缓存时,PostgreSQL性能缓慢。

图1现有技术中数据库子事务的查询方式

“数据库子事务的性能优化方法”在进程第一次在共享内存中读取不到父事务号时,将磁盘文件中的父子关系交换到当前进程独占的本地内存local_cache_ subtrans。local_cache_subtrans保存在客户端连接中,即每个连接进程独享一个私有内存。子事务在处理时,优先读取本地内存中缓存的事务信息:如果找到的话,就直接使用该事务信息;如果本地内存local_cache_subtrans中缓存的事务信息不足的情况下,还是会继续读取磁盘文件中的内容。

此外,还要同时兼顾数据库的主库和备库数据的一致性。PostgreSQL内部的数据一致性通过使用一种多版本模型(多版本并发控制,MVCC)来维护。这就意味着每个SQL 语句看到的都只是一小段时间之前的数据快照(一个数据库版本),而不管底层数据的当前状态。这样可以保护语句不会看到可能由其他在相同数据行上执行更新的并发事务造成的不一致数据,为每一个数据库会话提供事务隔离。xmin是PostgreSQL原生存在的一个系统属性,标识插入该行版本的事务身份(事务ID)。一个行版本是一个行的一个特别版本,对一个逻辑行的每一次更新都将创建一个新的行版本。由于子事务的信息是从本地内存中进行读取,而数据库的主库和备库的本地内存是独立申请的,为了保证主库和备库的数据一致性,需要对主库和备库上的数据可见性的处理逻辑同步进行调整:从共享内存中读取父子关系到本地的时候,以已经提交的最大xmin作为标记,保证最大xmin之前的事务已经提交, 最大xmin之后的父子关系已经写入共享内存。

基于以上优化思路,数据库子事务的性能优化方法能够有效提升数据库性能,其主要流程如图2所示,包括如下步骤:

图2 数据库子事务的性能优化方法

步骤1,查询子事务的父事务号;

步骤2,判断父子关系是否存在于本地内存中,当存在时跳转至步骤10,当不存在时执行步骤3;

步骤3,查找本进程所有快照中最大的xmin;

步骤4,判断共享内存中是否存在父子关系,当不存在时执行步骤6,当存在时执行 步骤9;

步骤5,获取SubTransCtl lock互斥锁;

步骤6,从磁盘中读取文件到共享内存,由于SubTransCtl lock互斥锁的存在,此时该磁盘文件只能由唯一的一个进程来操作;步骤7,释放SubTransCtl lock互斥锁;

步骤8,复制共享内存和磁盘文件中的所有事务父子关系到本地内存,很显然,在复制之后,针对本进程中其余子事务进行查询时,则无需再次获取SubTransCtl lock互斥锁访问磁盘文件。本地的内存local_cache_subtrans大小可自定义设置,可容纳的子事务数量可远超于默认的NUM_SUBTRANS_BUFFERS数量,因此可以保证在本地内存中获取父子关系。

步骤9,标记最大的xmin之前的事务可见,即对于最大xmin之前的事务有效;

步骤10,从本地内存中取出父事务号;

步骤11,判断步骤10取得的父事务号是否有效,当无效时返回步骤1,当有效时执行步骤12;

步骤12,返回该父事务号,进行后续处理。

在数据库主库中申请子事务或提交事务时执行数据库子事务的性能优化方法中各步骤操作,当主库子事务操作完成时将操作过程写入WAL并同步到备库。备库中接收到主库的WAL后,进行回放,实现数据库子事务的性能优化方法,完成与主库同步,从而与主库保持子事务可见一致性。

该技术方案通过本地内存优化了数据库中子事务的处理性能,并基于xmin确保子 事务优化时主库备库的数据一致性,从而实现了数据库的性能优化。基于本方案,在多并发场景下,子事务的处理也能够高效执行。

★专利申请号/公开号:CN 116244041 A

开发团队

·带队负责人姓名:洪建辉

洪建辉,亚信安慧AntDB-T数据库的研发带头人,曾在多家知名大中型企业担任研发总监、技术总监和首席信息官等技术管理职务,负责过多项国防领域国产数据库项目,拥有20多年软件研发和管理经验,10多年分布式数据库和云数据库研发经验。其带头研发的亚信安慧AntDB-T数据库已广泛应用于我国24个省、市、自治区的通信运营商核心业务系统,为推动通信行业基础软件国产化作出了重要贡献。

团队其他重要成员姓名:梁博、余秀明、马珊珊

·隶属机构:亚信安慧

湖南亚信安慧科技有限公司(简称“亚信安慧”)面向各行业提供数据库、中间件等基础软件产品和相关服务。公司以“技术+生态”为长期战略,将技术前瞻性、领先性视为企业根基与核心竞争力,将生态建设视为业务发展的加速器。

亚信安慧的拳头产品AntDB数据库,具备高性能、弹性扩展、高可靠等产品特性,服务24个省份的数亿用户,峰值每秒可处理百万笔通信核心交易,广泛应用于通信、交通、金融、能源、邮政等行业。

相关评价

我们依托亚信安慧AntDB数据库完成了核心账务库的升级改造,并获评集团“创新应用标杆”,在进一步提升核心系统能力的同时,有力保障了数据和系统的安全、稳定。

——某通信运营商省公司

亚信安慧AntDB数据库为我们提供了统一的大数据汇聚能力、实时的分析处理、现代化的监控和服务,实现了多维度分析和强时效管理,为交通行业的精细化运营、管理决策提供了强力支撑。

——某行业客户

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
6月买菜,建议就选这4种!几乎不打农药,新鲜营养,便宜又养人!

6月买菜,建议就选这4种!几乎不打农药,新鲜营养,便宜又养人!

秀厨娘
2026-05-31 20:09:31
技不如人?神二十一回家,我国航天员抬着出舱,美国的却活蹦乱跳

技不如人?神二十一回家,我国航天员抬着出舱,美国的却活蹦乱跳

小俎娱乐
2026-05-31 14:06:42
巴拿马总统摊牌:没收中国港口不是美国逼的,准备和中国续签协议

巴拿马总统摊牌:没收中国港口不是美国逼的,准备和中国续签协议

说历史的老牢
2026-05-31 07:28:42
NBA最大锦鲤诞生!总决赛未打却已夺冠,索汉诠释何为真正玄学!

NBA最大锦鲤诞生!总决赛未打却已夺冠,索汉诠释何为真正玄学!

田先生篮球
2026-05-31 11:53:57
特斯拉突然发布新系统,新增两项实用功能!

特斯拉突然发布新系统,新增两项实用功能!

XCiOS俱乐部
2026-05-31 19:49:44
DAZN:超150万人参加阿森纳英超夺冠游行,创英格兰纪录

DAZN:超150万人参加阿森纳英超夺冠游行,创英格兰纪录

懂球帝
2026-06-01 04:11:03
超级骗子刘特佐,如何掏空一个国家?肥头大耳却能泡遍女明星?

超级骗子刘特佐,如何掏空一个国家?肥头大耳却能泡遍女明星?

午夜故事会
2024-07-08 10:57:49
正式官宣!国务院放大招:城里有房家庭都乐开花,不仅宜居还增值

正式官宣!国务院放大招:城里有房家庭都乐开花,不仅宜居还增值

阿离家居
2026-05-29 16:56:30
罕见!中超前半程三大奇观:半程射手王来自降级区球队

罕见!中超前半程三大奇观:半程射手王来自降级区球队

邱泽云
2026-05-31 23:15:43
33分惨案夜!广厦揪4战犯,暴露3大不争事实,杨鸣一针见血真敢说

33分惨案夜!广厦揪4战犯,暴露3大不争事实,杨鸣一针见血真敢说

后仰大风车
2026-05-31 22:55:35
湖人觊觎以赛亚-乔和阿隆-维金斯 他俩将成东契奇的左膀右臂?

湖人觊觎以赛亚-乔和阿隆-维金斯 他俩将成东契奇的左膀右臂?

仰卧撑FTUer
2026-06-01 09:48:21
马三立孙子隐居天津,是3家养老院的老板,自曝爷爷在家从不做饭

马三立孙子隐居天津,是3家养老院的老板,自曝爷爷在家从不做饭

哄动一时啊
2026-05-31 14:46:17
新国足主力框架浮现:门将易主 两归化坐镇 韦少领衔张玉宁冲锋

新国足主力框架浮现:门将易主 两归化坐镇 韦少领衔张玉宁冲锋

零度眼看球
2026-06-01 07:28:45
最新:乌克兰在红军村六地发起进攻!收复新谢利夫卡

最新:乌克兰在红军村六地发起进攻!收复新谢利夫卡

项鹏飞
2026-05-31 21:37:00
韩国人气女星官宣产女,晒宝宝脚印照报平安

韩国人气女星官宣产女,晒宝宝脚印照报平安

自愈小日子
2026-06-01 01:24:43
发现一个现象:中产返贫三件套,已经升级为六件套了!

发现一个现象:中产返贫三件套,已经升级为六件套了!

番外行
2026-05-18 10:25:35
2950枚导弹无一命中,霹雳-2的惨痛代价谁人知

2950枚导弹无一命中,霹雳-2的惨痛代价谁人知

起喜电影
2026-05-23 11:24:35
强如梅西都未曾做到!巴萨“弃将”逆天改命,完成欧冠卫冕壮举!

强如梅西都未曾做到!巴萨“弃将”逆天改命,完成欧冠卫冕壮举!

田先生篮球
2026-05-31 09:14:59
28岁女邻居太漂亮,男子不满足偷窥潜入人家屋中,2008年将她杀死

28岁女邻居太漂亮,男子不满足偷窥潜入人家屋中,2008年将她杀死

汉史趣闻
2026-05-30 14:07:14
前央视主持林海,因摔耳机丢了铁饭碗,54岁现身街头当吃播

前央视主持林海,因摔耳机丢了铁饭碗,54岁现身街头当吃播

林轻吟
2026-06-01 07:14:42
2026-06-01 10:07:00
数据猿DataYuan incentive-icons
数据猿DataYuan
数据智能产业创新服务媒体
2756文章数 610关注度
往期回顾 全部

科技要闻

关停三年后,天涯社区今起开放访问

头条要闻

赖清德偷渡窜访非洲国家代价高达250亿 或"全归王室"

头条要闻

赖清德偷渡窜访非洲国家代价高达250亿 或"全归王室"

体育要闻

哭过之后,文班亚马想给波波维奇打电话

娱乐要闻

朱军退休,正义虽迟但到,女方受惩

财经要闻

网红驱蚊产品,标注化妆品竟含农药成分

汽车要闻

900V+3.2秒破百 领克10+&领克10上市16.99万元起

态度原创

时尚
亲子
家居
公开课
军事航空

女人不管多大年纪,夏天都要准备一条白色阔腿裤,百搭又清爽

亲子要闻

9种超市“小甜水”少给孩子喝,第四个很多家长还在当早餐

家居要闻

云栖 舒展如流云

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

解放军代表质问日防卫大臣:日本何时道歉

无障碍浏览 进入关怀版