[发明专利]一种分布式数据库异步读取并处理批量数据的方法在审
申请号: | 202011246356.5 | 申请日: | 2020-11-10 |
公开(公告)号: | CN112269835A | 公开(公告)日: | 2021-01-26 |
发明(设计)人: | 贾德星;周恒;孙思清 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/242;G06F16/2457 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 冯春连 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 数据库 异步 读取 处理 批量 数据 方法 | ||
本发明公开一种分布式数据库异步读取并处理批量数据的方法,涉及分布式数据库技术领域。针对分布式数据库中大批量数据查询时,SQL模块与存储模块程序无法并行执行的缺陷,采用技术方案:基于GO层的SQL模块和C层的存储模块,在GO层的SQL模块创建共享内存队列;通过共享内存队列进行SQL模块和存储模块之间的数据交互:当SQL模块接收到客户端的查询请求时,通过CGO调用通知存储模块,存储模块的线程从RocksDB异步读取批量数据并写入共享内存队列,同时,通过CGO调用通知SQL模块的读取线程,SQL模块的线程异步读取共享内存队列的数据并处理,随后返回处理结果给客户端。本发明SQL模块的线程和存储模块的线程异步并发执行,可以实现RocksDB数据的异步读取和批量处理。
技术领域
本发明涉及分布式数据库技术领域,具体的说是一种分布式数据库异步读取并处理批量数据的方法。
背景技术
CockroachDB(CRDB)是一个基于Google Spanner思想构建的开源分布式数据库系统,具有NoSQL对海量数据的存储管理能力,又保持了传统数据库支持的ACID和SQL等特性。
CockroachDB采用Go语言编写程序,内部集成的RocksDB存储引擎采用的是C++语言开发,两者通过CGO框架进行混合编程,CGO是Go语言和C语言相互调用的机制,由于存在不同语言调用栈的切换,CGO的调用会带来额外的性能损耗。
CockroachDB中数据查询处理的流程如附图1所示:SQL层数据读取是通过CGO调用RocksDB查询数据,并将数据从存储引擎的C语言层全部内存复制到Go语言SQL层进行解析运算。但是,在大批量数据查询时,需要逐批读取数据并同步进行处理,而SQL模块与存储模块程序无法并行执行,另外,频繁的CGO调用也严重影响数据读取效率。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种分布式数据库异步读取并处理批量数据的方法,通过共享内存队列进行SQL模块和存储模块之间的数据交互,实现RocksDB数据的异步读取和批量处理。
本发明的一种分布式数据库异步读取并处理批量数据的方法,解决上述技术问题采用的技术方案如下:
一种分布式数据库异步读取并处理批量数据的方法,其实现内容包括:
基于GO层的SQL模块和C层的存储模块,在GO层的SQL模块创建共享内存队列;
通过共享内存队列进行SQL模块和存储模块之间的数据交互:当SQL模块接收到客户端的查询请求时,通过CGO调用通知存储模块,存储模块的线程从RocksDB异步读取批量数据并写入共享内存队列,同时,通过CGO调用通知SQL模块的读取线程,SQL模块的线程异步读取共享内存队列的数据并处理,随后返回处理结果给客户端;
交互过程中,SQL模块的线程和存储模块的线程异步并发执行,实现RocksDB数据的异步读取和批量处理。
优选的,实现RocksDB数据的异步读取和批量处理过程中,通过CGO调用,SQL模块通知存储模块开始读取数据,存储模块通知SQL模块开始处理已读取的数据。
进一步的,异步读取并处理批量数据的具体实现流程为:
(1)在SQL模块创建一个共享内存队列;
(2)在SQL模块接收到客户端的查询请求时,通过CGO调用通知存储模块读取数据,通过CGO调用将共享内存队列的地址传送给存储模块,同时启动SQL模块的线程,异步等待读取共享内存队列的数据;
(3)存储模块接收到查询请求,随后启动存储模块的线程,异步从RocksDB批量数据读取;
(4)存储模块的线程每从RocksDB读取一批数据,即写入共享内存队列;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011246356.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种桥式抓斗卸船机雷达测距防撞系统
- 下一篇:二氯甲苯硝化物中间体的制备方法