首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于RocksDB的key-value存储模式下的数据关联查询方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:浪潮云信息技术股份公司

摘要:本发明公开了一种基于RocksDB的key‑value存储模式下的数据关联查询方法及系统,属于算子优化技术领域,本发明要解决的技术问题为如何提高传统的按行读取并串行进行hashjoin计算效率,并提高关联查询效率,采用的技术方案为:该方法是在key‑value存储系统下,通过go语言的channel存储每行数据再将其一块一块的读取,实现块读,即以块为单位处理数据,在接收到数据块后,将数据分发给不同的JoinWorker进行并行计算,提高HashJoin算子的计算性能;具体如下:S1、一块块的读取数据;S2、各个模块之间通过通道缓存通信,使各个模块异步执行,通过发送结束标志使各个模块结束执行;S3、计算JoinWorker相互并发执行。

主权项:1.基于RocksDB的key-value存储模式下的数据关联查询方法,其特征在于,该方法是在key-value存储系统下,通过go语言的channel存储每行数据再将其一块一块的读取,实现块读,即以块为单位处理数据,在接收到数据块后,将数据分发给不同的JoinWorker进行并行计算,提高HashJoin算子的计算性能;具体如下:S1、一块块的读取数据;S2、各个模块之间通过通道缓存通信,使各个模块异步执行,通过发送结束标志使各个模块结束执行;具体如下:S201、主线程创建hash表,并读取hash表数据;S202、主线程启动TableReader线程和JoinWorker线程开始进行后台工作;S203、TableReader线程和JoinWorker线程异步工作;S204、各个管道中的数据为数据块存储的格式,减少了从管道发送和接收的次数,避免了函数调用的开销;主线程读取小表数据时调用next()接口,直到所有数据全部被读取,每次调用得到一行数据将被读取的数据存在Chunk中,当满足Chunk长度要求后,把每次函数调用所获取的Chunk供接下来主线程构造哈希表使用;哈希表的构造过程由build()函数完成,遍历小表的每行数据,对每行数据进行如下操作:(1)、计算该行数据的Key,得到HashMap的Key;(2)、通过Hash运算得到HashMap的Value;(3)、将Key,Value放入Map中;TableReader线程是一个后台goroutine,TableReader线程负责计算逻辑,不断的读取大表的数据,并将获得的大表的数据分发给各个JoinWorker;TableReader线程涉及到两个channel:其中一个channel每个JoinWorker一个,TableReader将获取到的Chunk写入到该channel中供相应的JoinWorker使用;另一个channel是当JoinWorker用完了当前的Chunk后,把该Chunk清空后传到另一个channel中,使得TableReader直接用该Chunk去拉大表数据,不用再重新申请内存;若大表的Chunk已经用完,则需要等待到该Chunk有空间为止;S3、计算JoinWorker相互并发执行;具体如下:S301、同时启动n个JoinWorker算子进行并行计算;S302、各个JoinWorker算子将计算结果返回主线程缓冲池中;每个JoinWorker均是一个后台goroutine,扫描大表并计算与hashmap之间进行映射,JoinWorker的数量由全局变量来控制;JoinWorker将Join的结果Chunk以及对应的joinChkResourceCh地址写入到joinResultCh对应的channel中;主线程计算出一个Join的结果Chunk,当读到该数据后直接返回给Next函数的调用方;用完该Chunk后将其还给Joinworker,使其继续干活;主线程从joinResultCh中获取一个JoinChunk;将调用方传下来的chk和JoinChunk中的数据交换;把JoinChunk还给对应的JoinWorker;其中,JoinWorker的计算逻辑具体如下:①、获取一个大表Chunk,再获取一个JoinChunkResource;②、查哈希表,将匹配的OuterRow和InnerRows写到JoinChunk中;③、将写满了的JoinChunk发送给MainThread。

全文数据:

权利要求:

百度查询: 浪潮云信息技术股份公司 基于RocksDB的key-value存储模式下的数据关联查询方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。