[发明专利]分布式数据库的全局二级索引方法及其装置有效
申请号: | 202111124021.0 | 申请日: | 2021-09-24 |
公开(公告)号: | CN113868251B | 公开(公告)日: | 2022-10-18 |
发明(设计)人: | 曹彪;王猛;杨勇强 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455;G06F16/27 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 罗岚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 数据库 全局 二级 索引 方法 及其 装置 | ||
1.一种分布式数据库的全局二级索引方法,包括:
响应于接收到的数据库写入请求,获取待写入的原始数据,并将所述原始数据写入所述分布式数据库内,其中,所述原始数据为主键数据;
对写入所述分布式数据库内的原始数据进行全局二级索引处理其中,所述全局二级索引处理包括:异步构建写入分布式数据库内的原始数据的索引,得到全局二级索引数据;
建立所述全局二级索引数据与所述分布式数据库之中数据表主键对应的全局二级索引表,并基于异步处理方式将所述全局二级索引表写入索引分片。
2.根据权利要求1所述的方法,其中,所述将所述原始数据写入所述分布式数据库内,包括:
将所述原始数据写入数据缓冲队列;
将所述数据缓冲队列发送给存储节点进行数据持久化处理;
接收所述存储节点返回的数据持久化处理结果,并将所述数据持久化处理结果发送给所述数据库写入请求的发起端。
3.根据权利要求1所述的方法,其中,所述基于异步处理方式将所述全局二级索引表写入索引分片,包括:
基于异步处理方式,分批次将所述全局二级索引表批量写入索引分片。
4.根据权利要求3所述的方法,还包括:
在所述全局二级索引表批量写入所述索引分片时,在分布式共识算法Raft日志中记录当前批次批量写入的全局二级索引表的索引值。
5.根据权利要求4所述的方法,其中,所述索引值为所述当前批次批量中最后一个写入所述索引分片的全局二级索引表的索引值。
6.根据权利要求4或5所述的方法,还包括:
响应于所述索引分片故障恢复,从所述Raft日志中获取在目标时间最新记录的全局二级索引表的目标索引值;其中,所述目标时间为所述索引分片发生故障之前的时间;
基于所述目标索引值,确定在所述索引分片发生故障期间未成功写入的全局二级索引表;
将所述未成功写入的全局二级索引表重新写入所述索引分片。
7.一种分布式数据库的全局二级索引装置,包括:
原始数据写入模块,用于响应于接收到的数据库写入请求,获取待写入的原始数据,并将所述原始数据写入所述分布式数据库内,其中,所述原始数据为主键数据;
索引处理模块,用于对写入所述分布式数据库内的原始数据进行全局二级索引处理,得到全局二级索引数据,其中,所述全局二级索引处理包括:异步构建写入分布式数据库内的原始数据的索引;
索引表创建模块,用于建立所述全局二级索引数据与所述分布式数据库之中数据表主键对应的全局二级索引表,并基于异步处理方式将所述全局二级索引表写入索引分片。
8.根据权利要求7所述的装置,其中,所述原始数据写入模块具体用于:
将所述原始数据写入数据缓冲队列;
将所述数据缓冲队列发送给存储节点进行数据持久化处理;
接收所述存储节点返回的数据持久化处理结果,并将所述数据持久化处理结果发送给所述数据库写入请求的发起端。
9.根据权利要求7所述的装置,其中,所述索引表创建模块具体用于:
基于异步处理方式,分批次将所述全局二级索引表批量写入索引分片。
10.根据权利要求9所述的装置,还包括:
日志记录模块,用于在所述全局二级索引表批量写入所述索引分片时,在分布式共识算法Raft日志中记录当前批次批量写入的全局二级索引表的索引值。
11.根据权利要求10所述的装置,其中,所述索引值为所述当前批次批量中最后一个写入所述索引分片的全局二级索引表的索引值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111124021.0/1.html,转载请声明来源钻瓜专利网。