(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202211082758.5
(22)申请日 2022.09.06
(65)同一申请的已公布的文献号
申请公布号 CN 115185787 A
(43)申请公布日 2022.10.14
(73)专利权人 北京奥星贝斯科技有限公司
地址 100102 北京市朝阳区望京东园四区
13号楼-4至 33层101内23层201室
(72)发明人 田伟 刘浩 韩富晟
(74)专利代理 机构 济南信达专利事务所有限公
司 37100
专利代理师 李世喆
(51)Int.Cl.
G06F 11/30(2006.01)
G06F 16/27(2019.01)(56)对比文件
CN 114138604 A,202 2.03.04
CN 114817190 A,202 2.07.29
CN 112764997 A,2021.0 5.07
US 20202725 51 A1,2020.08.27
审查员 池心恒
(54)发明名称
处理事务日志的方法及装置
(57)摘要
本说明书实施例提供了一种处理事务日志
的方法及装置。 针对一个事务对应的所有日志被
写入分布式数据库中的至少两个日志流中, 该方
法包括: 从分布式数据库获取至少两个日志流;
其中, 每一个日志流中携带有事务标识; 根据各
日志流中携带的事务标识, 确定是否已经获取一
个事务对应的所有日志被写入的所有日志流, 如
果是, 则利用该所有日志流进行数据组装, 以得
到该事务对应的事务数据。 通过本申请能够实现
针对分布式事务的多日志流进行组装。
权利要求书3页 说明书13页 附图6页
CN 115185787 B
2022.12.30
CN 115185787 B
1.一种处理事务日志的方法, 其特征在于, 其中, 事务为: 访问和/或操作 数据的数据库
操作序列;
一个事务对应的所有日志被写入分布式数据库中的至少两个日志流中;
所述方法包括:
从分布式数据库获取至少两个日志流; 其中, 每一个日志流中携带有事务标识;
根据各日志流中携带的事务标识, 确定是否已经获取一个事务对应的所有日志被写入
的所有日志流, 如果是, 则利用该所有日志流进行数据组装, 以得到该事务对应的事务数
据;
其中, 该方法进一 步包括: 针对获取的每一个日志流, 均执 行:
从当前日志流中得到对应于同一个事务的各个日志; 以及
将得到的该各个日志聚合出对应该事务的一个事务分片; 其中, 该事务分片中携带有
当前日志流的标识以及该事务的事务标识;
相应地, 所述确定是否已经获取一个事务对应的所有日志被写入的所有日志流, 包括:
依据从各个事务分片中获取的日志流的标识以及事务标识, 确定是否已经获取一个事
务对应的所有日志被写入的所有日志流;
相应地, 所述利用该所有日志流进行数据组装, 包括: 将携带有同一事务标识的所有事
务分片进行组装。
2.根据权利要求1所述的方法, 该方法进一步包括: 每一个事务标识对应一个日志流列
表, 该日志流列表中包括: 具有该事务标识的事务对应的所有 日志被写入的所有 日志流的
标识;
相应地, 所述依据从各个事务分片中获取的日志流的标识以及事务标识确定是否已经
获取一个事务对应的所有日志被写入的所有日志流, 包括:
针对每一个事务分片, 均执行: 从当前事务分片中获取 日志流的标识以及事务标识; 在
所获取的事务标识对应的日志流列表中, 将所获取的该日志流的标识标记为到 达; 以及
针对每一个日志流列表, 如果当前日志流列表中所有的日志流的标识均被标记为到
达, 则确定已经获取了一个事务对应的所有日志被写入的所有日志流; 其中, 该一个事务的
事务标识对应当前日志流列表。
3.根据权利要求1所述的方法, 其中, 在每聚合出一个事务分片时, 进一步包括; 将聚合
出的该事务分片发送至一个以上的组装队列的其中一个组装队列;
在所述依据从各个事务分片中获取的日志流的标识以及事务标识确定是否已经获取
一个事务对应的所有 日志被写入的所有 日志流之前, 进一步包括: 利用至少一个线程从一
个以上的组装队列中分别获取 各个事务分片。
4.根据权利要求1至3中任一项所述的方法, 其特征在于, 每一个被写入日志流的日志
中携带有准备 版本号;
在得到事务对应的事务数据之后, 该方法进一步包括: 根据各日志中携带的准备版本
号, 确定各个事务之间的先后顺序, 按照该 先后顺序依次输出 各个事务的事务数据。
5.根据权利要求4所述的方法, 其中, 在所述将携带有同一事务标识的所有事务分片进
行组装时, 进一 步包括:
每组装出一个事务的事务数据时, 利用该事务对应的各日志中携带的准备版本号, 确权 利 要 求 书 1/3 页
2
CN 115185787 B
2定该事务数据的投递版本号, 将确定出 的该投递版本号携带在该事务数据中, 然后将该事
务数据发送至 定序队列中;
所述按照该 先后顺序依次输出 各个事务的事务数据, 包括:
利用每一个事务数据中的投递版本号及定序队列, 输出各个事务的事务数据; 其中, 输
出的顺序符合各事务之间的先后顺序。
6.根据权利要求5所述的方法, 其特 征在于, 该 方法进一 步包括:
在每聚合出一个事务分片时, 根据聚合出该事务分片所使用的各 日志中携带的准备版
本号, 确定该事务分片对应的版本号;
将该版本号携带在该事务分片中, 并将该事务分片发送至一个以上的组装队列的其中
一个组装队列; 以及
每隔一个预设周期时间向每一个组装队列中发送一个全局心跳值; 其中, 该全局心跳
值等于本预设周期时间内发送至各个组装队列中的各个事务分片中携带的版本号的最小
值;
相应地, 所述利用每一个事务数据中的投递版本号及定序队列输出各个事务的事务数
据, 包括:
分别从所有组装队列中获取全局心跳值,
若从所有组装队列中分别获取到了同一个全局 心跳值, 利用该同一个全局 心跳值更新
所述定序队列对应的投递检查值; 将所述定序队列中投递版本号小于或等于所述投递检查
值的事务数据进行输出。
7.根据权利要求6所述的方法, 其特 征在于, 事务分片中携带的版本号 为:
聚合出该事务分片所使用的各日志中携带的各准备版本号中的一个准备版本号; 或
者,
该事务分片所属事务的投递版本号, 该投递版本号等于: 该事务对应的各日志中携带
的各个准备 版本号中的最大值。
8.一种处理事务日志的装置, 其特征在于, 其中, 事务为: 访问和/或操作 数据的数据库
操作序列;
一个事务对应的所有日志被写入分布式数据库中的至少两个日志流中;
所述装置包括:
日志流获取单元, 被配置为从分布式数据库获取至少两个日志流; 其中, 每一个日志流
中携带有事务标识;
事务组装单元, 被配置为根据各日志流中携带的事务标识, 确定是否已经获取一个事
务对应的所有日志被写入的所有日志 流, 如果是, 则利用该所有日志 流进行数据组装, 以得
到该事务对应的事务数据;
分片获取 单元, 被配置为针对获取的每一个日志流, 均执 行:
从当前日志流中得到对应于同一个事务的各个日志; 以及
将得到的该各个日志聚合出对应该事务的一个事务分片; 其中, 该事务分片中携带有
当前日志流的标识以及该事务的事务标识;
所述事务组装单元在确定是否已经获取一个事务对应的所有日志被写入的所有日志
流时, 执行: 依据从各个事务分片中获取的日志 流的标识以及 事务标识, 确定是否已经获取权 利 要 求 书 2/3 页
3
CN 115185787 B
3
专利 处理事务日志的方法及装置
文档预览
中文文档
23 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共23页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 00:50:20上传分享