(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210876672.3
(22)申请日 2022.07.25
(71)申请人 湖南快乐阳光互动娱乐传媒有限公
司
地址 410003 湖南省长 沙市开福区湖南国
际会展中心北四楼
(72)发明人 汪纬 周红丽 李东
(74)专利代理 机构 北京集佳知识产权代理有限
公司 11227
专利代理师 钱娜
(51)Int.Cl.
G06F 16/23(2019.01)
G06F 9/54(2006.01)
G06F 16/22(2019.01)
(54)发明名称
索引更新方法、 装置、 电子设备及存 储介质
(57)摘要
本发明提供一种索引更新方法、 装置、 电子
设备及存储介质, 该方法包括: 通过覆盖索引 方
式, 从数据库中读取待更新索引的全量ID值并存
储至消息队列中, 将ID总数累加至全量更新索引
总数, 得到当前全量更新索引总数; 监听消息队
列; 获取消息队列中的待更新索引的全量ID值;
通过多线程方式, 查询数据库中与待更新索引的
全量ID值 关联的ID数据, 并利用得到的组装数据
更新数据库中与待更新索引的全量ID值对应的
索引值; 若更新成功, 将成功更新的索引值对应
的数量累加至全量更新索引成功总数, 得到当前
全量更新索引成功总数; 若更新失败, 将全量分
布式锁的状态置为关闭状态。 从而实现全量数据
更新完全和提高异常情况处 理效率。
权利要求书3页 说明书15页 附图4页
CN 115098525 A
2022.09.23
CN 115098525 A
1.一种索引更新方法, 其特 征在于, 应用于服 务器, 所述方法包括:
当预先设置的全量更新开关状态为开启状态时, 通过覆盖索引方式, 从预先建立的数
据库中读取待更新索引的全量 ID值;
将所述待更新索引的全量ID值存储至预先建立的消息队列中, 并将所述待更新索引的
全量ID值对应的ID总数累加至预先设置的全量更新索引总数, 得到当前全量更新索引总
数;
监听所述消息队列;
获取所述消息队列中的待更新索引的全量 ID值;
通过多线程方式, 查询所述数据库中与所述待更新索引的全量ID值关联的ID数据, 并
组装所述 ID数据, 得到组装数据;
利用所述组装数据更新所述数据库中与所述待更新索引的全量 ID值对应的索引值;
若更新成功, 将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总
数, 得到当前全量更新索引成功总数;
若更新失败, 将预 先设置的全量分布式锁的状态置为关闭状态。
2.根据权利要求1所述的方法, 其特征在于, 在所述当预先设置的全量更新开关状态为
开启状态时之前, 还 包括:
接收全量更新索引的触发请求;
根据所述触发请求, 生成待更新索引的全量 ID值;
当未在进行所述全量更新索引时, 初始化预先设置的全量更新分布式存储键值, 所述
全量更新分布式存储键值包括所述全量分布式锁、 所述全量更新开关状态、 所述全量更新
索引总数、 所述全量更新索引成功总数和全量 ID值同步完成状态。
3.根据权利要求1所述的方法, 其特征在于, 所述通过覆盖索引方式从预先建立的数据
库中读取待更新索引的全量 ID值, 包括:
通过覆盖索引方式, 每次从预先建立的数据库中读取第 一预设数量的待更新索引的全
量ID值;
相应的, 所述将所述待更新索引的全量ID值存储至预先建立的消息队列中, 并将所述
待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数, 得到 当前全量
更新索引总数, 包括:
将所述第 一预设数量的待更新索引的全量ID值存储至预先建立的消息队列中, 并将所
述第一预设数量的待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引
总数, 得到当前全量更新索引总数。
4.根据权利要求1所述的方法, 其特征在于, 在所述将所述待更新索引的全量ID值中的
ID总数累加至预 先设置的全量更新索引总数, 得到当前全量更新索引总数之后, 还 包括:
当读取到最后一个所述待更新索引的全量ID值时, 将预先设置的全量ID值同步完成状
态置为已完成状态;
循环判断所述当前全量更新索引总数是否等于所述当前全量更新索引成功总数, 其
中, 所述循环判断次数为第二预设数量, 每次休眠一秒钟;
若否, 继续执行循环判断, 直至所述当前全量更新索引总数等于所述当前全量更新索
引成功总数;权 利 要 求 书 1/3 页
2
CN 115098525 A
2若是, 更改当前 更新完成的索引名的别名, 并删除原索引名的别名。
5.根据权利要求1所述的方法, 其特 征在于, 还 包括:
当监听到所述消息队列中存在增量更新消息时, 判断是否在进行全量更新索引, 所述
增量更新消息由消息数据存储工具将读取到的所述数据库的二进制日志发送至所述消息
队列得到, 所述增量更新消息 至少包括 新索引;
若是, 更新所述 新索引和当前全量更新的索引;
若否, 更新所述当前全量更新的索引。
6.一种索引更新装置, 其特 征在于, 应用于服 务器, 所述装置包括:
读取模块, 用于当预先设置的全量更新开关状态为开启状态时, 通过覆盖索引方式, 从
预先建立的数据库中读取待更新索引的全量 ID值;
第一累加模块, 用于将所述待更新索引的全量ID值存储至预先建立的消息队列中, 并
将所述待 更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数, 得到 当
前全量更新索引总数;
监听模块, 用于监听所述消息队列;
获取模块, 用于获取 所述消息队列中的待更新索引的全量 ID值;
查询模块, 用于通过多线程方式, 查询所述数据库中与所述待更新索引的全量ID值关
联的ID数据, 并组装所述 ID数据, 得到组装数据;
更新模块, 用于利用所述组装数据更新所述数据库中与所述待更新索引的全量ID值对
应的索引值, 若更新成功, 执 行第二累加模块, 若更新失败, 执 行第一设置模块;
第二累加模块, 用于将成功更新的索引值对应的数量累加至预先设置的全量更新索引
成功总数, 得到当前全量更新索引成功总数;
第一设置模块, 用于将预 先设置的全量分布式锁的状态置为关闭状态。
7.根据权利要求6所述的装置, 其特征在于, 在所述读取模块用于当预先设置的全量更
新开关状态为 开启状态时之前, 还 包括:
接收模块, 用于 接收全量更新索引的触发请求;
生成模块, 用于根据所述触发请求, 生成待更新索引的全量 ID值;
初始化模块, 用于当未在进行所述全量更新索引时, 初始化预先设置的全量更新分布
式存储键值, 所述全量更新分布式存储键值包括所述全量分布式锁、 所述全量更新开关状
态、 所述全量更新索引总数、 所述全量更新索引成功总数和全量 ID值同步完成状态。
8.根据权利要求6所述的装置, 其特 征在于, 所述读取模块具体用于:
通过覆盖索引方式, 每次从预先建立的数据库中读取第 一预设数量的待更新索引的全
量ID值;
相应的, 所述第一累加模块具体用于:
将所述第 一预设数量的待更新索引的全量ID值存储至预先建立的消息队列中, 并将所
述第一预设数量的待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引
总数, 得到当前全量更新索引总数。
9.一种电子设备, 其特 征在于, 所述电子设备包括处 理器;
所述存储器, 用于存 储计算机程序;
所述处理器, 用于调用并执行所述存储器中存储的计算机程序时, 实现如权利要求1至权 利 要 求 书 2/3 页
3
CN 115098525 A
3
专利 索引更新方法、装置、电子设备及存储介质
文档预览
中文文档
23 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共23页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-07 12:43:11上传分享