CN109791541B - 日志序列号生成方法、装置及可读存储介质 - Google Patents

日志序列号生成方法、装置及可读存储介质 Download PDF

Info

Publication number
CN109791541B
CN109791541B CN201880002419.7A CN201880002419A CN109791541B CN 109791541 B CN109791541 B CN 109791541B CN 201880002419 A CN201880002419 A CN 201880002419A CN 109791541 B CN109791541 B CN 109791541B
Authority
CN
China
Prior art keywords
hash
log
available
lock manager
lock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880002419.7A
Other languages
English (en)
Other versions
CN109791541A (zh
Inventor
袁振南
朱阅岸
简怀兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quliantong Network Co ltd
Original Assignee
Quliantong Network Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quliantong Network Co ltd filed Critical Quliantong Network Co ltd
Publication of CN109791541A publication Critical patent/CN109791541A/zh
Application granted granted Critical
Publication of CN109791541B publication Critical patent/CN109791541B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种日志序列号生成方法,该方法包括:利用锁管理器接收对元素进行操作的加锁申请;判断元素是否可用;若元素可用,则利用锁管理器为元素加锁并生成操作对应的日志序列号。本申请还公开了一种日志序列号生成装置和可读存储介质。

Description

日志序列号生成方法、装置及可读存储介质
技术领域
本申请涉及数据库领域,特别是涉及一种日志序列号生成方法、装置及可读存储介质。
背景技术
传统的日志管理器是数据库管理系统(Data Base Management System,DBMS)的一个关键部件,它采用集中式的设计方式。所有的事务都在一个全局缓冲区上以追加的方式插入日志记录。日志给定数据库系统所有更新操作的顺序。日志序列号(log sequencenumber,LSN)是日志记录在磁盘上的地址,可以作为逻辑时间戳用来表示更新动作的先后次序,也是系统恢复时候日志记录重放的先后依据。
在传统的DBMS中,事务要对数据库对象进行操作时,需要向锁管理器申请封锁该数据库对象,申请成功后,才可以执行相应的操作。此外,如果本次操作要记录到日志,需要生成对应的LSN,具体包括如下步骤:1)首先获取日志缓冲区上对应的排他锁;2)为本次写操作生成对应的LSN;3)释放相应的排他锁。每次生成日志记录序列号之前都需要加上排他锁,而其它事务则竞争该排他锁。在并发场景下,该排他锁通常容易成为系统瓶颈。
发明内容
本申请主要解决的技术问题是提供一种日志序列号生成方法、装置及可读存储介质,能够解决现有技术中LSN生成所用的排他锁容易成为系统瓶颈的问题。
为了解决上述技术问题,本申请提供了一种日志序列号生成方法,该方法包括:利用锁管理器接收对元素进行操作的加锁申请;判断元素是否可用;若元素可用,则利用锁管理器为元素加锁并生成操作对应的日志序列号。
为了解决上述技术问题,本申请提供了一种日志序列号生成装置,该装置包括:接收模块,用于利用锁管理器接收对元素进行操作的加锁申请;判断模块,用于判断元素是否可用;生成模块,用于在元素可用时利用锁管理器为元素加锁并生成操作对应的日志序列号。
为了解决上述技术问题,本申请提供了一种日志序列号生成装置,该装置包括处理器和存储器,处理器耦接存储器;处理器用于执行指令以利用锁管理器接收对元素进行操作的加锁申请;判断元素是否可用;若元素可用,则利用锁管理器为元素加锁并生成操作对应的日志序列号。
为了解决上述技术问题,本申请提供了一种可读存储介质,存储有指令,指令被执行时实现前述的方法。
本申请的有益效果是:利用锁管理器接收对元素进行操作的加锁申请;判断元素是否可用;若元素可用,则利用锁管理器为元素加锁并生成操作对应的日志序列号,由锁管理器负责生成日志序列号而无需使用日志管理器,在事务进行操作及记录本次操作的过程中,只需要在锁管理器进行加锁竞争,不需要竞争生成日志序列号的排他锁,该排他锁不复存在,减少一次临界区的竞争操作,提升了数据库的性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请日志序列号生成方法一实施例的流程示意图;
图2是本申请日志序列号生成方法一具体实施例的流程示意图;
图3是本申请日志序列号生成方法一具体实施例中哈希表的示意图;
图4是本申请日志序列号生成装置一实施例的结构示意图;
图5是本申请日志序列号生成装置另一实施例的结构示意图;
图6是本申请可读存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,以下各实施例中不冲突的可以相互结合。显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请日志序列号生成方法一实施例包括:
S1:利用锁管理器接收对元素进行操作的加锁申请。
在数据库系统中,为了提高系统运行效率,常常是多事务并发执行。并发执行可能会产生多个事务同时对同一数据进行读取/写入的情况,可能导致数据的一致性被破坏,例如出现读脏数据、丢失更新等情况。为保障数据的一致性,数据库管理系统(Data BaseManagement System,DBMS)需要提供并发控制协议,以为并发事务实现不同的隔离级别,其中基于锁的并发控制协议(简称锁协议)是一种常用的并发控制协议。
在锁协议中,事务在执行操作前,需要先得到操作对象(即元素)的控制权利,这一过程也可以被称为加锁。DBMS中的锁管理器负责锁的申请和释放。事务需要先向锁管理器申请对对象进行加锁,申请成功之后才能对对象执行操作。
在本发明一实施例中,锁管理器由哈希表实现,或者说,锁管理器包括至少一个哈希表。哈希表的关键码为数据库对象id。为了避免单个哈希表成为系统热点,锁管理器可以包括多个哈希表,多个哈希表可以通过对管理数据库中所有数据库对象的整体哈希表进行分段而得到,不同的哈希表中的数据库对象互不冲突,此时单个哈希表可以被视为整体哈希表的一个分段。
S2:判断元素是否可用。
为防止冲突,收到加锁申请后需要判断元素是否可用,即是否可以对元素执行申请的操作(即加锁申请对应的操作)。具体的,可以判断是否有其他事务正在对元素进行操作且排斥申请的操作。如果没有其他事务正在对元素进行操作,或者存在其他事务正在对元素进行操作但该操作不排斥申请的操作(例如二者皆为读操作),则元素可用,否则元素不可用。
若元素可用,则跳转到S3;若元素不可用,则可以选择将申请加入加锁申请队列并挂起事务。
S3:利用锁管理器为元素加锁并生成操作对应的日志序列号。
加锁和生成LSN之间的先后顺序并无限制。加锁一般包括在元素处记录锁的信息,例如申请加锁的事务的信息,锁的类型(互斥锁、共享锁、意向锁等)等。加锁之后,事务可以对元素进行操作。可以利用锁管理器在日志文件缓冲区中为该操作分配存储空间,生成该操作对应的日志序列号(log sequence number,LSN),无须使用日志管理器竞争排他锁。LSN标记了本次操作的日志记录对应的存储位置。
可选的,操作包括写操作,写操作包括新增、修改、删除中的至少一种。执行写操作之后数据库中的数据库对象会发生变化,应记录入日志。读操作之前虽然可能申请加锁,但由于不会改变数据库对象,可以选择不为读操作生成LSN。当然也可以为读操作生成LSN。
日志文件的数量可以为一个或者更多。当日志文件的数量大于一时,不同的日志文件可以并行操作,即满足以下条件:1)在不同的日志文件上操作的事务互不冲突,可以并行执行,即日志可以并行写入;2)系统崩溃恢复时候,不同日志文件上的解析可以同时进行,并行回放。可选的,每个日志文件只对应一个哈希表,例如日志文件和哈希表一一对应,可以实现LSN的并行生成,进一步提高系统并发运行效率。
即使在只采用只包括一个哈希表的锁管理器和一个日志文件的情况下,本实施例提供的方法生成的日志文件与传统的集中式日志管理器生成的日志文件不一定完全一致,但是本实施例提供的方法生成的日志文件中针对同一数据库对象的操作记录顺序与传统的日志和实际顺序保持一致,不会影响日志文件的实际使用。
通过本实施例的实施,由锁管理器负责生成日志序列号而无需使用日志管理器,在事务进行操作及记录本次操作的过程中,只需要在锁管理器进行加锁竞争,不需要竞争生成日志序列号的排他锁,该排他锁不复存在,减少一次临界区的竞争操作,提升了数据库的性能。
如图2和图3所示,在本申请一具体实施例中,日志序列号生成方法包括:
S11:利用锁管理器接收对元素进行操作的加锁申请。
本实施例是在前一实施例的基础上,采用哈希表实现锁管理器,其中与前一实施例相同的部分不再重复。
哈希表(也叫散列表),是根据关键码而直接进行访问的数据结构。哈希表的关键码为数据库对象id。也就是说,它通过把关键码映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数叫做哈希函数(散列函数)。
哈希表可以看成数组+链表的数据结构,数组中的每个元素表示数据库中一个数据库对象的关键码,数组中的每个元素分别对应一个哈希桶,哈希桶中存放了记录该数据库对象的锁信息。
S12:计算元素的哈希函数值。
S13:在至少一个哈希表中找到哈希函数值对应的哈希桶。
S14:判断哈希桶中是否存在排斥操作的其他锁。
若哈希桶中不存在排斥操作的其他锁,意味着元素可用,跳转到S15。
S15:利用锁管理器向哈希函数值对应的哈希桶中插入锁,并在哈希桶所在的哈希表对应的日志文件缓冲区中生成操作对应的日志序列号。
生成的日志序列号LSNi,i表示本次操作的序号。
如图4所示,本申请日志序列号生成装置一实施例包括:
接收模块11,用于利用锁管理器接收对元素进行操作的加锁申请。
判断模块12,用于判断元素是否可用。
生成模块13,用于在元素可用时利用锁管理器为元素加锁并生成操作对应的日志序列号。
如图5所示,本申请日志序列号生成装置另一实施例包括:处理器110和存储器120。
处理器110控制日志序列号生成装置的操作,处理器110还可以称为CPU(CentralProcessing Unit,中央处理单元)。处理器110可能是一种集成电路芯片,具有信号序列的处理能力。处理器110还可以是通用处理器、数字信号序列处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器120存储处理器110工作所需要的指令和数据。
处理器110用于执行指令以实现本申请日志序列号生成方法任一实施例及可能的组合所提供的方法。
如图6所示,本申请可读存储介质一实施例包括存储器210,存储器210存储有指令,该指令被执行时实现本申请日志序列号生成方法任一实施例及可能的组合所提供的方法。
存储器210可以包括只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、闪存(Flash Memory)、硬盘、光盘等。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (11)

1.一种日志序列号生成方法,其特征在于,所述方法包括:
利用锁管理器接收对元素进行操作的加锁申请;
判断所述元素是否可用;
若所述元素可用,则利用所述锁管理器为所述元素加锁并生成所述操作对应的日志序列号;
所述锁管理器包括至少一个哈希表;
所述判断所述元素是否可用包括:
计算所述元素的哈希函数值;
在所述至少一个哈希表中找到所述哈希函数值对应的哈希桶;
判断所述哈希桶中是否存在排斥所述操作的其他锁;
若所述哈希桶中不存在排斥所述操作的其他锁,则判定所述元素可用,否则判定所述元素不可用。
2.根据权利要求1所述的方法,其特征在于,
所述利用所述锁管理器为所述元素加锁并生成所述操作对应的日志序列号包括:
利用所述锁管理器向所述哈希函数值对应的哈希桶中插入所述锁,并在所述哈希桶所在的所述哈希表对应的日志文件缓冲区中生成所述操作对应的日志序列号。
3.根据权利要求1-2中任一项所述的方法,其特征在于,
所述哈希表的数量大于一,且每个所述哈希表对应一个日志文件,且不同的所述日志文件可以并行操作。
4.根据权利要求1-2中任一项所述的方法,其特征在于,
所述操作包括写操作。
5.一种日志序列号生成装置,其特征在于,包括:
接收模块,用于利用锁管理器接收对元素进行操作的加锁申请;
判断模块,用于判断所述元素是否可用,其中,所述判断模块还用于计算所述元素的哈希函数值,在所述至少一个哈希表中找到所述哈希函数值对应的哈希桶,以判断所述哈希桶中是否存在排斥所述操作的其他锁,若所述哈希桶中不存在排斥所述操作的其他锁,则所述判断模块判定所述元素可用,否则判定所述元素不可用;
生成模块,用于在所述元素可用时利用所述锁管理器为所述元素加锁并生成所述操作对应的日志序列号。
6.一种日志序列号生成装置,其特征在于,包括处理器和存储器,所述处理器耦接所述存储器;
所述处理器用于执行指令以利用锁管理器接收对元素进行操作的加锁申请;判断所述元素是否可用;若所述元素可用,则利用所述锁管理器为所述元素加锁并生成所述操作对应的日志序列号;
其中,所述处理器用于执行指令以计算所述元素的哈希函数值;在所述至少一个哈希表中找到所述哈希函数值对应的哈希桶;判断所述哈希桶中是否存在排斥所述操作的其他锁;若所述哈希桶中不存在排斥所述操作的其他锁,则判定所述元素可用,否则判定所述元素不可用。
7.根据权利要求6所述的装置,其特征在于,
所述锁管理器包括至少一个哈希表。
8.根据权利要求7所述的装置,其特征在于,
所述处理器用于执行指令以计算所述元素的哈希函数值;在所述至少一个哈希表中找到所述哈希函数值对应的哈希桶;判断所述哈希桶中是否存在排斥所述操作的其他锁;若所述哈希桶中不存在排斥所述操作的其他锁,则利用所述锁管理器向所述哈希函数值对应的哈希桶中插入所述锁,并在所述哈希桶所在的所述哈希表对应的日志文件缓冲区中生成所述操作对应的日志序列号。
9.根据权利要求7或8所述的装置,其特征在于,
所述哈希表的数量大于一,且每个所述哈希表对应一个日志文件,且不同的日志文件可以并行操作。
10.根据权利要求6-8中任一项所述的装置,其特征在于,
所述操作包括写操作。
11.一种可读存储介质,存储有指令,其特征在于,所述指令被执行时实现如权利要求1-4中任一项所述的方法。
CN201880002419.7A 2018-11-29 2018-11-29 日志序列号生成方法、装置及可读存储介质 Active CN109791541B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/118292 WO2020107352A1 (zh) 2018-11-29 2018-11-29 日志序列号生成方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN109791541A CN109791541A (zh) 2019-05-21
CN109791541B true CN109791541B (zh) 2023-11-24

Family

ID=66499478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880002419.7A Active CN109791541B (zh) 2018-11-29 2018-11-29 日志序列号生成方法、装置及可读存储介质

Country Status (2)

Country Link
CN (1) CN109791541B (zh)
WO (1) WO2020107352A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377641B (zh) * 2021-06-24 2022-11-04 上海哔哩哔哩科技有限公司 日志统计方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009600A (zh) * 2007-02-02 2007-08-01 杭州华为三康技术有限公司 日志备份方法及实现该方法的系统单元及装置
CN103729442A (zh) * 2013-12-30 2014-04-16 华为技术有限公司 记录事务日志的方法和数据库引擎
WO2014061847A1 (ko) * 2012-10-17 2014-04-24 주식회사 리얼타임테크 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9002791B2 (en) * 2012-08-28 2015-04-07 Hewlett-Packard Development Company, L. P. Logging modifications to a variable in persistent memory
CN105205178A (zh) * 2015-10-26 2015-12-30 北京美数信息科技有限公司 一种多进程访问内存数据库系统
CN105653680A (zh) * 2015-12-29 2016-06-08 北京农信互联科技有限公司 一种基于文档型数据库的存储数据的方法及系统
US10387275B2 (en) * 2016-07-26 2019-08-20 Hewlett Packard Enterprise Development Lp Resume host access based on transaction logs
US20180144015A1 (en) * 2016-11-18 2018-05-24 Microsoft Technology Licensing, Llc Redoing transaction log records in parallel

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009600A (zh) * 2007-02-02 2007-08-01 杭州华为三康技术有限公司 日志备份方法及实现该方法的系统单元及装置
WO2014061847A1 (ko) * 2012-10-17 2014-04-24 주식회사 리얼타임테크 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법
CN103729442A (zh) * 2013-12-30 2014-04-16 华为技术有限公司 记录事务日志的方法和数据库引擎

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
《ConcurrentHashMap的锁分离技术》;街头看日出;《https://www.cnblogs.com/softhyb/p/5302996.html》;20160301;全文 *
《Deuteronomy: Transaction Support for Cloud Data》;LEVANDOSKI, JUSTIN J;《5TH BIENNIAL CONFERENCE ON INNOVATIVE DATA SYSTEMS RESEARCH》;20111011;同上 *
LEVANDOSKI, JUSTIN J.《Deuteronomy: Transaction Support for Cloud Data》.《5TH BIENNIAL CONFERENCE ON INNOVATIVE DATA SYSTEMS RESEARCH》.2011, *

Also Published As

Publication number Publication date
CN109791541A (zh) 2019-05-21
WO2020107352A1 (zh) 2020-06-04

Similar Documents

Publication Publication Date Title
US10891264B2 (en) Distributed, scalable key-value store
US9116903B2 (en) Method and system for inserting data records into files
US7801846B2 (en) Generating log sequence identifiers to apply a transaction to a storage system
CN108509462B (zh) 一种同步活动事务表的方法及装置
US10970173B2 (en) Logging process in a data storage system
US20110066592A1 (en) Real Time Data Replication
JP2022013854A (ja) 2フェーズコミット分散トランザクションを使用することによってデータベースを更新するための方法および装置
KR101574451B1 (ko) 트랜잭션 메모리 시스템 내구성 부여
US20150142749A1 (en) Method and system for a safe archiving of data
US20110137874A1 (en) Methods to Minimize Communication in a Cluster Database System
US11748215B2 (en) Log management method, server, and database system
KR20060051557A (ko) 버전 스토어의 리소스 사용을 제한하기 위한 방법 및시스템
CN111125040A (zh) 管理重做日志的方法、装置及存储介质
US20090157767A1 (en) Circular log amnesia detection
US7752399B2 (en) Exclusion control method and information processing apparatus
CN114741449A (zh) 一种基于分布式数据库的对象存储方法及装置
US20120059997A1 (en) Apparatus and method for detecting data race
CN114721594A (zh) 一种分布式存储方法、装置、设备及机器可读存储介质
US10311033B2 (en) Alleviation of index hot spots in data sharing environment with remote update and provisional keys
CN109791541B (zh) 日志序列号生成方法、装置及可读存储介质
CN113672255A (zh) 一种分布式存储软件升级方法及装置
WO2021174817A1 (zh) 数据库自动化审计方法、系统、设备及存储介质
US20170177615A1 (en) TRANSACTION MANAGEMENT METHOD FOR ENHANCING DATA STABILITY OF NoSQL DATABASE BASED ON DISTRIBUTED FILE SYSTEM
WO2017058148A1 (en) Executing transactions based on success or failure of the transactions
US10942912B1 (en) Chain logging using key-value data storage

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant