[发明专利]处理事务日志的方法及装置有效
申请号: | 202211082758.5 | 申请日: | 2022-09-06 |
公开(公告)号: | CN115185787B | 公开(公告)日: | 2022-12-30 |
发明(设计)人: | 田伟;刘浩;韩富晟 | 申请(专利权)人: | 北京奥星贝斯科技有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F16/27 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
地址: | 100102 北京市朝阳区望京东园*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理 事务 日志 方法 装置 | ||
1.一种处理事务日志的方法,其特征在于,其中,事务为:访问和/或操作数据的数据库操作序列;
一个事务对应的所有日志被写入分布式数据库中的至少两个日志流中;
所述方法包括:
从分布式数据库获取至少两个日志流;其中,每一个日志流中携带有事务标识;
根据各日志流中携带的事务标识,确定是否已经获取一个事务对应的所有日志被写入的所有日志流,如果是,则利用该所有日志流进行数据组装,以得到该事务对应的事务数据;
其中,该方法进一步包括:针对获取的每一个日志流,均执行:
从当前日志流中得到对应于同一个事务的各个日志;以及
将得到的该各个日志聚合出对应该事务的一个事务分片;其中,该事务分片中携带有当前日志流的标识以及该事务的事务标识;
相应地,所述确定是否已经获取一个事务对应的所有日志被写入的所有日志流,包括:
依据从各个事务分片中获取的日志流的标识以及事务标识,确定是否已经获取一个事务对应的所有日志被写入的所有日志流;
相应地,所述利用该所有日志流进行数据组装,包括:将携带有同一事务标识的所有事务分片进行组装。
2.根据权利要求1所述的方法,该方法进一步包括:每一个事务标识对应一个日志流列表,该日志流列表中包括:具有该事务标识的事务对应的所有日志被写入的所有日志流的标识;
相应地,所述依据从各个事务分片中获取的日志流的标识以及事务标识确定是否已经获取一个事务对应的所有日志被写入的所有日志流,包括:
针对每一个事务分片,均执行:从当前事务分片中获取日志流的标识以及事务标识;在所获取的事务标识对应的日志流列表中,将所获取的该日志流的标识标记为到达;以及
针对每一个日志流列表,如果当前日志流列表中所有的日志流的标识均被标记为到达,则确定已经获取了一个事务对应的所有日志被写入的所有日志流;其中,该一个事务的事务标识对应当前日志流列表。
3.根据权利要求1所述的方法,其中,在每聚合出一个事务分片时,进一步包括;将聚合出的该事务分片发送至一个以上的组装队列的其中一个组装队列;
在所述依据从各个事务分片中获取的日志流的标识以及事务标识确定是否已经获取一个事务对应的所有日志被写入的所有日志流之前,进一步包括:利用至少一个线程从一个以上的组装队列中分别获取各个事务分片。
4.根据权利要求1至3中任一项所述的方法,其特征在于,每一个被写入日志流的日志中携带有准备版本号;
在得到事务对应的事务数据之后,该方法进一步包括:根据各日志中携带的准备版本号,确定各个事务之间的先后顺序,按照该先后顺序依次输出各个事务的事务数据。
5.根据权利要求4所述的方法,其中,在所述将携带有同一事务标识的所有事务分片进行组装时,进一步包括:
每组装出一个事务的事务数据时,利用该事务对应的各日志中携带的准备版本号,确定该事务数据的投递版本号,将确定出的该投递版本号携带在该事务数据中,然后将该事务数据发送至定序队列中;
所述按照该先后顺序依次输出各个事务的事务数据,包括:
利用每一个事务数据中的投递版本号及定序队列,输出各个事务的事务数据;其中,输出的顺序符合各事务之间的先后顺序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奥星贝斯科技有限公司,未经北京奥星贝斯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211082758.5/1.html,转载请声明来源钻瓜专利网。