CN110807047A - 管理信息处理任务的有效性的方法和装置 - Google Patents

管理信息处理任务的有效性的方法和装置 Download PDF

Info

Publication number
CN110807047A
CN110807047A CN201810805625.3A CN201810805625A CN110807047A CN 110807047 A CN110807047 A CN 110807047A CN 201810805625 A CN201810805625 A CN 201810805625A CN 110807047 A CN110807047 A CN 110807047A
Authority
CN
China
Prior art keywords
information processing
task
processing task
execution
tasks
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.)
Pending
Application number
CN201810805625.3A
Other languages
English (en)
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to CN201810805625.3A priority Critical patent/CN110807047A/zh
Priority to EP19166088.5A priority patent/EP3598302A1/en
Priority to JP2019067157A priority patent/JP2020013544A/ja
Priority to US16/397,553 priority patent/US10990438B2/en
Publication of CN110807047A publication Critical patent/CN110807047A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了一种管理信息处理任务的有效性的方法和装置,其中,所述方法用于在去中心化的数据管理系统中管理信息处理任务的有效性,包括:用户端向多个执行主体发出信息处理任务的请求,将顺序信息处理任务列表中的信息处理任务按次序发送给多个执行主体;将所请求的信息处理任务缓存到任务缓存队列中,将顺序信息处理任务列表作为一个整体进行缓存;判断任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及针对任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足所述预定冲突条件时,才将该信息处理任务从所述冲突任务队列删除并且缓存到任务缓存队列中。

Description

管理信息处理任务的有效性的方法和装置
技术领域
本公开涉及信息处理领域,具体涉及一种用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法和装置。
背景技术
去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,用户端和多个执行主体各自持有相同的数据库副本。在传统的去中心化的数据管理系统中,在执行信息处理任务之前无法检测执行信息处理任务的并发性风险。因此,当多个信息处理任务同时操作相同数据的时候,传统的去中心化的数据管理系统没有任何警告信息。此外,对于信息处理任务的有效性,传统的去中心化的数据管理系统仅仅验证在被用户端和多个执行主体都认可的结果和执行主体的状态数据库中,读数据的版本是否一致。传统的去中心化的数据管理系统不提供任何方案来解决读数据版本冲突的问题。因此,信息处理任务验证的成功率较低。
更具体地,区块链技术是上述去中心化的数据管理系统的一个例子。最近几年区块链技术发展很迅猛,这得益于比特币的成功。区块链也被称为分布式账本,是一种由多个相互去信任的节点保存数据的结构。区块链中所有节点同意区块的顺序,每个区块包含若干交易信息,因此区块链可以被看做许多排好序的交易。目前存在若干种区块链框架,例如公有链,私有链,联盟链。
在传统的联盟链中,可以在不同主体之间保存分布式账本信息。然而,在传统的联盟链存在如上所述的缺陷。
发明内容
在下文中给出了关于本公开的简要概述,以便提供关于本公开的某些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
鉴于以上问题,本公开的目的是提供能够解决现有技术中的一个或多个缺点的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法和装置。
根据本公开的一方面,提供了一种用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法,去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,用户端和多个执行主体各自持有相同的数据库副本,其中,基于信息处理任务的执行结果中的、被用户端和多个执行主体都认可的结果来更新各个数据库副本,所述方法包括:用户端向多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给多个执行主体,顺序信息处理任务列表是通过对所请求的多个信息处理任务进行并发风险检测而生成的;将所请求的多个信息处理任务缓存到任务缓存队列中,其中,将顺序信息处理任务列表作为一个整体缓存到任务缓存队列;判断任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及针对任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足预定冲突条件时,才将该信息处理任务从冲突任务队列删除并且缓存到任务缓存队列中,以用于继续进行后续处理。
根据本公开的另一方面,提供了一种用于管理去中心化的数据管理系统中信息处理任务的有效性的装置,去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,用户端和多个执行主体各自持有相同的数据库副本,其中,基于信息处理任务的执行结果中的、被用户端和多个执行主体都认可的结果来更新各个数据库副本,所述装置包括:并发风险检测单元,被配置成在用户端向多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给多个执行主体,顺序信息处理任务列表是通过对所请求的多个信息处理任务进行并发风险检测而生成的;缓存单元,被配置成将所请求的多个信息处理任务缓存到任务缓存队列中,其中,将顺序信息处理任务列表作为一个整体缓存到任务缓存队列;判断单元,被配置成判断任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及冲突处理单元,被配置成针对任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足预定冲突条件时,才将该信息处理任务从冲突任务队列删除并且缓存到任务缓存队列中,以用于继续进行后续处理。
根据本公开的又一方面,提供了一种其上记录有计算机程序的计算机可读存储介质,计算机程序在被执行时用于实现在去中心化的数据管理系统中管理信息处理任务的有效性的方法,去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,用户端和多个执行主体各自持有相同的数据库副本,其中,基于信息处理任务的执行结果中的、被用户端和多个执行主体都认可的结果来更新各个数据库副本,所述方法包括:用户端向多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给多个执行主体,顺序信息处理任务列表是通过对所请求的多个信息处理任务进行并发风险检测而生成的;将所请求的多个信息处理任务缓存到任务缓存队列中,其中,将顺序信息处理任务列表作为一个整体缓存到任务缓存队列,顺序信息处理任务列表是通过对所请求的多个信息处理任务进行并发风险检测而生成的;判断任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及针对任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足预定冲突条件时,才将该信息处理任务从冲突任务队列删除并且缓存到任务缓存队列中,以用于继续进行后续处理。
根据本公开的其它方面,还提供了用于实现上述根据本公开的方法的计算机程序代码和计算机程序产品。
在下面的说明书部分中给出本公开实施例的其它方面,其中,详细说明用于充分地公开本公开实施例的优选实施例,而不对其施加限定。
附图说明
本公开可以通过参考下文中结合附图所给出的详细描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并形成说明书的一部分,用来进一步举例说明本公开的优选实施例和解释本公开的原理和优点。其中:
图1是示出根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法的流程示例的流程图;
图2是示意性地示出用户端APP的源代码的示例的图;
图3是示意性地示出根据本公开实施例的静态代码分析的示例的图;
图4是描述根据本公开实施例的并发风险检测处理的一个示例流程图;
图5是示出根据本公开实施例的管理信息处理任务的有效性的处理的示例的图;
图6是示出根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的装置的功能配置示例的框图;以及
图7是示出作为本公开实施例中可采用的个人计算机的示例结构的框图。
具体实施方式
在下文中将结合附图对本公开的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开的方案密切相关的设备结构和/或处理步骤,而省略了与本公开关系不大的其它细节。
下面结合附图详细说明根据本公开的实施例。
首先,将参照图1描述根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100的流程示例。图1是示出根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100的流程示例的流程图。如图1所示,根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100包括并发风险检测步骤S102、缓存步骤S104、判断步骤S106以及冲突处理步骤S108。
去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,用户端和多个执行主体各自持有相同的数据库副本,其中,基于信息处理任务的执行结果中的、被用户端和多个执行主体都认可的结果来更新各个数据库副本。需要说明的是,上述用户端可以是上述能够执行信息处理任务的执行主体,或者上述用户端可以是持有与上述多个执行主体相同的数据库副本、但不能执行信息处理任务的主体。
根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100在S101处开始。
在并发风险检测步骤S102中,用户端向多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给多个执行主体,顺序信息处理任务列表是通过对所请求的多个信息处理任务进行并发风险检测而生成的。
作为示例,用户端和多个执行主体可以是相互去信任的执行主体。多个信息处理任务包括至少两个信息处理任务。
在传统的去中心化的数据管理系统中,用户端发出的每个信息处理任务都会被默认并发地发送给所请求的执行主体。当上述并发发生时,信息处理任务的执行顺序是不确定的,因此,执行信息处理任务的结果是不确定的,即,可能存在并发风险。由于这个原因,不能获取期望的执行信息处理任务的结果。
而在根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100中,在将多个信息处理任务发送给多个执行主体之前,在用户端对所请求的多个信息处理任务进行并发风险检测,并且对具有并发风险的信息处理任务进行排序,从而生成包括按次序的至少两个信息处理任务的顺序信息处理任务列表。作为示例,可以根据信息处理任务的重要性对信息处理任务进行排序,当然,本领域技术人员还可以想到对信息处理任务进行排序的其他方式。然后,在用户端,将顺序信息处理任务列表中的每个信息处理任务按其在顺序信息处理任务列表中的次序发送给多个执行主体,由此可以将顺序信息处理任务列表中的具有并发风险的信息处理任务改变成按所述次序被顺序化地发送,从而防止了并发地发送信息处理任务所导致的并发风险。
在缓存步骤S104中,可以将所请求的多个信息处理任务缓存到任务缓存队列中,其中,将顺序信息处理任务列表作为一个整体缓存到所述任务缓存队列。
作为示例,任务缓存队列是一个先进先出FIFO队列。
在缓存步骤S104中,在对多个信息处理任务继续进行后续处理之前,在用户端将多个信息处理任务缓存到任务缓存队列。在进行任务缓存时,将顺序信息处理任务列表作为一个整体缓存到任务缓存队列,从而可以使得顺序信息处理任务列表中的信息处理任务在多个执行主体上被顺序化地验证并确认,即,可以防止顺序信息处理任务列表中的信息处理任务在多个执行主体上被并发验证并确认而不能获取期望的信息处理任务结果。
在判断步骤S106中,判断任务缓存队列中的每个信息处理任务是否满足预定冲突条件。
作为示例,预定冲突条件可以是本领域技术人员根据经验预先设定的冲突条件。在下文中,将结合信息处理任务的读数据和写数据来描述冲突条件。
在冲突处理步骤S108中,针对任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足所述预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足预定冲突条件时,才将该信息处理任务从所述冲突任务队列删除并且缓存到所述任务缓存队列中,以用于继续进行后续处理。
作为示例,在冲突处理步骤S108中,对于满足预定冲突条件的信息处理任务,采取了以下能够避免冲突的措施:将该信息处理任务移动到冲突任务队列,直到不满足预定冲突条件时,才将该信息处理任务从冲突任务队列删除并且缓存到任务缓存队列中。
根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100在S109处结束。
联盟链是上述去中心化的数据管理系统的一个示例。当在联盟链中应用根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100时,上述执行主体为联盟链中的执行节点,上述信息处理任务为联盟链中的交易,上述用户端可以是执行节点、或者可以是持有与上述多个执行节点相同的代码、但不能执行交易的节点,上述被用户端和多个执行主体都认可的结果为执行交易所得到的背书结果,信息处理任务在多个执行主体上被验证并确认指的是在多个执行节点上对交易进行验证并确认,上述后续处理可以是联盟链中的排序服务,这里不再对在联盟链中应用方法100进行累述。
从以上描述可知,根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100能够检测去中心化的数据管理系统中的信息处理任务的并发风险,能够将顺序信息处理任务列表中的具有并发风险的信息处理任务改变成按次序被顺序化地发送,从而防止了并发地发送信息处理任务所导致的并发风险;在进行任务缓存时,将所生成的顺序信息处理任务列表作为一个整体缓存到任务缓存队列,这样可以防止顺序信息处理任务列表中的信息处理任务被并发验证并确认;对于满足预定冲突条件的信息处理任务,采取了能够避免冲突的措施,因此能够提高去中心化的数据管理系统中的信息处理任务的有效性。
优选地,在并发风险检测步骤S102中,对所请求的多个信息处理任务进行并发风险检测而生成顺序信息处理任务列表包括:基于对去中心化的数据管理系统中的与信息处理任务有关的函数进行的静态代码分析,获得执行所请求的多个信息处理任务中的每个的执行结果;针对所请求的所述多个信息处理任务中的任意一个信息处理任务对,基于执行结果确定并发风险;以及基于每个信息处理任务对的所确定的并发风险,对信息处理任务对进行排序,从而生成顺序信息处理任务列表。
作为示例,在去中心化的数据管理系统中执行信息处理任务意味着进行函数调用。用户端APP的源代码中包含与信息处理任务相关的函数。每个信息处理任务触发函数的时候,会提供函数的参数。经由对用户端APP的源代码进行分析,可以得到函数调用的结果。函数调用的结果包括读数据和写数据。作为示例,读数据包括读集合Read set,写数据包括写集合Write set。例如,信息处理任务的执行结果(即,函数调用的结果)可以表示为:Readset=[(key,value)],Write set=[(key,value)],其中,key表示键,value表示键值。也就是说,读集合和写集合可以分别包括多个对,每个对包括一个键和一个键值。另外,还可以从用户端APP的源代码中获得写集合中的键值value的类型writeType,例如,writeType可以是“Battery”、“Car”等等。在下文中,为了方便描述,有时将Write set中的key表示为写键writeKey,将Read set中的key表示为读键readKey。
由于用户端和所述多个执行主体各自持有相同的数据库副本(即,用户端和所述多个执行主体均具有相同的源代码),因此,在用户端将多个信息处理任务发送给多个执行主体之前,可以基于用户端APP的源代码,对与信息处理任务相关的函数进行静态代码分析,从而获得执行每个信息处理任务的执行结果(即,在尚未在多个执行主体上执行信息处理任务之前,预先获得执行每个信息处理任务的执行结果)。需要说明的是,在尚未在多个执行主体上执行信息处理任务之前、通过静态代码分析来预先获得执行每个信息处理任务的执行结果的目的在于:通过静态代码分析而得到的信息处理任务的执行结果,能够对多个信息处理任务进行上述并发风险检测。
图2是示意性地示出用户端APP的源代码的示例的图。
图2的最左侧示出了用户端APP的源代码。图2的中间部分示出了从该源代码中提取出的与信息处理任务相关的函数例如Func1(args)、Func2(args)等,其中,Func1和Func2是函数名,args是函数的参数。作为示例,Func1可以是源代码中的“removeBattery”,Func2可以是源代码中的“changeBattery”。图2的最右侧示出了经由对用户端APP的源代码进行分析而得到的执行信息处理任务的结果,即函数调用的结果,例如,结果包括读集合Readset和写集合Write set。另外,还可以根据图2所示的用户端APP的源代码,确定writeType,例如,确定writeType是“Battery”。
优选地,获得所请求的多个信息处理任务中的每个的执行结果包括:通过对去中心化的数据管理系统中的与信息处理任务有关的函数进行静态代码分析,获得执行所述与信息处理任务有关的函数的语法树;以及基于语法树,得到执行所请求的每个信息处理任务的执行结果。
图3是示意性地示出根据本公开实施例的静态代码分析的示例的图。在图3中,通过对函数changeBattery(arg1,arg2)(其中,arg1和arg2分别是函数的参数)进行静态代码分析,为该函数生成抽象语法树。在所生成的语法树中,记录了执行函数的路径、路径约束条件和所有可能的执行结果。如图3所示,所有可能的执行路径包括:path1,path2以及path3。
以path1为例,如图3所示,执行path1的条件(即,路径约束条件)为condition(path1):{(arg1<100)&(arg2<50)},也就是说,在arg1<100并且arg2<50的条件下,执行路径path1。
下面描述图3中各路径的可能的执行结果。
如图3所示,path1的执行结果为:Write set[(k1,v1),…]。在将上述Write set具体表示成writeKey和writeType的情况下,可以表示为:writeKey set={k1,…},writeType set={Battery,…},其中,writeKey set表示writeKey的集合以及writeTypeset表示writeType的集合。具体来说,path1的执行结果的写集合包括多个对,每个对包括一个键和一个键值。作为示例,在图3中,仅示出了path1的执行结果的写集合中包括的一个对(k1,v1),在该对中,键为k1,键值为v1。根据语法树,可以得到v1的类型为Battery。对于path1的执行结果的写集合中包括的其他对,也可以根据语法树得到键值的类型。因此,对于写集合中的所有对,writeKey的集合和writeType的集合可以表示为:writeKey set={k1,…},writeType set={Battery,…}。
如图3所示,path2的执行结果为Write set[(k2,v2),…],其中,k2为键,v2为键值。在将上述Write set具体表示成writeKey和writeType的情况下,可以表示为:writeKeyset={k2,…},writeType set={Car,…}。其中,Car表示键值v2的类型。
由于path3中包含外部API调用,因此,如path3中的虚线框所示,其两个分支(执行结果分别为Write set[(k3,v3),…]和Write set[(k4,v4),…]的两个分支)将会被作为一种路径。也就是说,path3的执行结果为Write set[(k3,v3),…]和Write set[(k4,v4),…]。其中,k3为键、v3为相应键值,k4为键、v4为相应键值。
优选地,基于语法树而得到执行所请求的每个信息处理任务的执行结果包括:根据语法树收集与信息处理任务有关的函数的执行路径、执行路径的条件以及所有路径的执行结果;以及针对所请求的每个信息处理任务,通过与执行路径和执行路径的条件进行映射,得到执行所请求的每个信息处理任务的执行结果。
如上所述,通过对APP源代码进行静态代码分析而得到的语法树包括与信息处理任务有关的函数的执行路径、执行路径的条件以及所有路径的执行结果。携带参数的信息处理任务与执行路径的条件(即,路径约束条件)进行映射,则可以从候选的执行路径中确定出该信息处理任务的执行路径。由此,可以将语法树中的所确定的执行路径的执行结果作为该信息处理任务请求的执行结果。
优选地,针对任意一个信息处理任务对,基于执行结果确定并发风险包括:基于针对信息处理任务对中每个信息处理任务的执行结果中的写数据的特性和写数据的类型,计算并发风险得分。
作为示例,信息处理任务的执行结果中的写数据的特性可以是写集合中的writeKey,以及写数据的类型可以是writeType。
假设所请求的多个信息处理任务为tx1、tx2、…。
我们如下计算两个信息处理任务tx1和tx2之间的并发风险得分concurrencyRiskScore:
Figure BDA0001738110860000101
在表达式(1)中,writeKey set(tx1)表示tx1的writeKey set,writeType set(tx1)表示tx1的writeType set,writeKey set(tx2)表示tx2的writeKey set,writeTypeset(tx2)表示tx2的writeType set。此外,typeConfilctScore是下面的表达式(2)所示出的类型冲突得分,weight表示权重。
从表达式(1)可知,如果两个信息处理任务tx1和tx2的writeKey set存在交集,即,两个信息处理任务具有相同的writeKey,在并发发生时,信息处理任务tx1和tx2的执行顺序是不确定的,必然造成对所述相同的writeKey写入不同的值,因此,必然存在并发风险。由此,在两个信息处理任务tx1和tx2的writeKey set存在交集的情况下,并发风险得分为最高分100分。
作为示例,假设根据语法树可知tx1的执行结果为Write set[(k1,v1),(k3,v3),…],即,writeKey set={k1,k3},并且可以得到writeType set={Battery,Car};根据语法树可知tx2的执行结果为Write set[(k1,v1’),(k4,v4),…],即,writeKey set={k1,k4},并且可以得到writeType set={Battery,Bus}。在该示例中,两个信息处理任务tx1和tx2的writeKey set存在交集,即,两个信息处理任务具有相同的writeKey=k1,在并发发生时,信息处理任务tx1和tx2的执行顺序是不确定的,会将k1写为v1或v1’,因此,信息处理任务tx1和tx2必然存在并发风险。
另外,从表达式(1)可知,如果两个信息处理任务tx1和tx2的writeKey set不存在交集并且writeType set也不存在交集,即,两个信息处理任务不具有相同的writeKey和writeType,因为信息处理任务tx1和tx2不会对相同的writeKey和writeType进行写入,因此即使并发发生,也不会存在并发风险。由此,在两个信息处理任务tx1和tx2不具有相同的writeKey和writeType的情况下,并发风险得分为0分。
另外,从表达式(1)可知,如果两个信息处理任务tx1和tx2的writeKey set不存在交集但是writeType set存在交集,即,两个信息处理任务tx1和tx2不存在相同的writeKey但是存在相同的writeType,则两个信息处理任务具有一定程度的并发风险。作为示例,如果两个信息处理任务具有相同的writeTpye=Battery,则两个信息处理任务有可能向键值类型为Battery的相同的writeKey写入不同的值,因此,存在一定程度的并发风险。这种情况下的并发风险得分可以用类型冲突得分typeConfilctScore与权重weight的乘积来表示。其中,权重weight可以由本领域技术人员根据经验预先设置,另外,类型冲突得分typeConfilctScore如表达式(2)所示:
在表达式(2)中,count(writeType set(tx1)∩writeType set(tx2))表示信息处理任务tx1的writeType set和tx2的writeType set中存在的相同writeType的数目,count(writeType set(tx1)∪writeType set(tx2))表示信息处理任务tx1的writeType set和tx2的writeType set中存在的writeType的总数目。由表达式(2)可知,信息处理任务tx1和tx2中存在的相同writeType的数目越大,则类型冲突得分typeConfilctScore越高。
由以上描述可知,根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100可以在多个执行主体上动态地执行信息处理任务之前,基于静态代码分析来检测信息处理任务的并发风险。
为了更清楚地描述根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100中的并发风险检测处理,在下文中,结合图4描述根据本公开实施例的并发风险检测处理的一个示例流程。
如图4所示,在步骤S401中,在用户端的APP中,对与信息处理任务有关的函数进行静态代码分析,由此生成语法树。在步骤S402中,基于语法树,针对所请求的每个信息处理任务对进行并发风险检测。在步骤S403中,基于针对所请求的每个信息处理任务对的所确定的并发风险,对信息处理任务对进行排序,从而生成顺序信息处理任务列表,并向开发者推荐顺序发送所生成的顺序信息处理任务列表中的信息处理任务。开发者可以调整用户端的APP的代码来设置顺序信息处理任务列表,由此,在用户端的APP中,向去中心化的数据管理系统中的执行主体按次序发送顺序信息处理任务列表中的信息处理任务,从而避免了执行信息处理任务的并发风险。而对于没有并发风险的信息处理任务,可以向执行主体并发地发送这些没有并发风险的信息处理任务。
当在联盟链中应用根据本公开实施例的方法100来检测信息处理任务的并发风险时,上述信息处理任务的执行结果为联盟链中的背书结果,这里不再对在联盟链中检测信息处理任务的并发风险进行累述。
在下文中,将结合图5进一步描述在去方法100中的缓存步骤S104至冲突处理步骤S108中进行的处理。图5是示出根据本公开实施例的管理信息处理任务的有效性的处理的示例的图。
如图5中的①所示,用户端APP向去中心化的数据管理系统中的多个执行主体发送信息处理任务。
作为示例,在图5中,存在6个信息处理任务:tx1、tx2、tx3、tx4、tx5以及tx6,其中,假设tx5和tx6是具有并发风险的信息处理任务对。在并发风险检测步骤S102中,通过静态代码分析检测到存在并发风险的该信息处理任务对并且对tx5和tx6进行排序,生成了包括按次序的两个信息处理任务tx5和tx6的顺序信息处理任务列表。用户端将tx5和tx6按次序发送给多个执行主体,而将没有并发风险的tx1、tx2、tx3和tx4并发地发送给多个执行主体。
如图5的②所示,接收到信息处理任务的多个执行主体在接收到多个信息处理任务之后,分别动态地执行信息处理任务从而产生信息处理任务执行结果。用户端接收从所述多个执行主体返回的执行结果。更具体地,信息处理任务的执行结果包含读集合和写集合(Read set和Write set)。
优选地,在缓存步骤S104中,将所请求的多个信息处理任务缓存到任务缓存队列中包括:将没有并发风险的并发信息处理任务依次缓存到所述任务缓存队列中。
如图5所示,将没有并发风险的并发的信息处理任务tx1、tx2、tx3和tx4依次缓存到任务缓存队列中。
另外,如在以上描述缓存步骤S104时所述,将顺序信息处理任务列表(tx5和tx6)作为一个整体缓存到任务缓存队列。
如图5所示,任务缓存队列中依次缓存有以下信息处理任务:tx1、tx2、tx3、tx4、(tx5和tx6)。
优选地,在缓存步骤S104中,将所请求的多个信息处理任务缓存到任务缓存队列中包括:对于没有并发风险的并发信息处理任务中的每个任务,将按照述去中心化的数据管理系统中的处理规则执行每个任务所获得的读集合和写集合与该信息处理任务相关联地缓存到任务缓存队列中;以及对于顺序信息处理任务列表,仅将按照所述处理规则执行顺序信息处理任务列表中的第一次序的信息处理任务所获得的读集合和写集合与该顺序信息处理任务列表相关联地缓存到任务缓存队列中。即,如图5的③所示,将所请求的信息处理任务连同读集合和写集合缓存到任务缓存队列。
作为示例,对于没有并发风险的并发的信息处理任务tx1、tx2、tx3和tx4,将执行每个任务所获得的读集合和写集合与该信息处理任务相关联地缓存到任务缓存队列中。如图5中的“读键/写键列表”所示,tx1没有读操作,因此tx1的readKey为空,另外,tx1的writeKey为K1;tx2没有读操作,因此tx2的readKey为空,另外,tx2的writeKey为K2;tx3的readKey为K1,而writeKey为K3;tx4的readKey为K2,而writeKey为K4。
作为示例,对于包括tx5和tx6的顺序信息处理任务列表,由于该顺序信息处理任务列表被作为一个整体缓存到任务缓存队列,因此,仅将执行该顺序信息处理任务列表中的第一次序的信息处理任务tx5所获得的读集合和写集合与该顺序信息处理任务列表相关联地缓存到所述任务缓存队列中。如图5中的“读键/写键列表”所示,tx5的readKey为K2,而writeKey为K5。
设定一个等待被确认的信息处理任务的集合。该等待被确认的信息处理任务的集合初始为空集合。
优选地,在判断步骤S106中,判断任务缓存队列中的一个信息处理任务是否满足预定冲突条件包括:如果一个信息处理任务与等待被确认的信息处理任务的集合中包括的任一信息处理任务均不冲突,则确定所述一个信息处理任务不满足所述预定冲突条件;以及如果所述一个信息处理任务与所述等待被确认的信息处理任务的集合中包括的任一信息处理任务冲突,则确定所述一个信息处理任务满足所述预定冲突条件。
优选地,判断任务缓存队列中的一个信息处理任务是否满足预定冲突条件进一步包括:如果按照去中心化的数据管理系统中的处理规则执行所述一个信息处理任务所获得的读数据与按照所述处理规则执行等待被确认的信息处理任务的集合中包括的任一信息处理任务所获得的写数据均不相同,则确定所述一个信息处理任务不满足所述预定冲突条件;以及如果按照所述处理规则执行所述一个信息处理任务所获得的读数据与按照所述处理规则执行等待被确认的信息处理任务的集合中的任一信息处理任务所获得的写数据相同,则确定所述一个信息处理任务满足所述预定冲突条件。
如上所述,图5所示的任务缓存队列中依次缓存有以下信息处理任务:tx1、tx2、tx3、tx4、(tx5和tx6)。由于等待被确认的信息处理任务的集合初始为空集合,而任务缓存队列中的第一个和第二个信息处理任务tx1和tx2均没有读键,因此,所缓存的信息处理任务tx1和tx2不满足上述读写冲突条件。
作为示例,在去中心化的数据管理系统为联盟链的情况下,执行一个信息处理任务所获得的结果为背书结果;等待被确认的信息处理任务的集合是在交易验证阶段中,等待被节点验证和确认的交易的集合;按照去中心化的数据管理系统中的处理规则执行所述一个信息处理任务相当于针对一个信息处理任务执行链代码。如果针对一个信息处理任务执行链代码所获得的读键与针对等待被确认的信息处理任务的集合中包括的任一信息处理任务执行链代码所获得的写键均不相同,则确定所述一个信息处理任务不满足所述预定冲突条件;以及如果针对所述一个信息处理任务执行链代码所获得的读键与针对等待被确认的信息处理任务的集合中的任一信息处理任务执行链代码所获得的写键相同,则确定所述一个信息处理任务满足所述预定冲突条件。
由以上描述可知,可以通过对执行一个信息处理任务所获得的读数据与执行等待被确认的信息处理任务的集合中包括的任一信息处理任务所获得的写数据进行比较,确定一个信息处理任务是否满足预定冲突条件。并且,根据冲突处理步骤S108中的处理可知,可以将存在上述读写冲突的信息处理任务移动到冲突任务队列来避免冲突。
优选地,在冲突处理步骤S108中,针对任务缓存队列中的每个信息处理任务,如果确定该信息处理任务不满足预定冲突条件,则使得该信息处理任务继续进行后续处理。
作为示例,如图5的④-1所示,使得信息处理任务tx1和tx2继续进行后续处理。
在去中心化的数据管理系统是联盟链的情况下,上述后续处理可以是排序服务。即,在冲突处理步骤S108中,如果确定任务缓存队列中的信息处理任务不满足预定冲突条件,则使得该信息处理任务发送到排序服务。
优选地,在冲突处理步骤S108中,在将任务缓存队列中的信息处理任务继续进行后续处理的同时,通过将所发送的信息处理任务添加到等待被确认的信息处理任务的集合,更新等待被确认的信息处理任务的集合。
作为示例,如图5的④-2所示,将信息处理任务tx1和tx2添加到等待被确认的信息处理任务的集合,更新等待被确认的信息处理任务的集合。即,更新后的等待被确认的信息处理任务的集合包括tx1和tx2,其中,tx1的写键为K1,tx2的写键为K2。
对于任务缓存队列中剩余的以下信息处理任务:tx3、tx4和(tx5和tx6),由于tx3的读键K1与更新后的等待被确认的信息处理任务的集合中的tx1的写键K1相同,因此,确定tx3满足上述预定冲突条件,从而如在上述冲突处理步骤S108中所述,将tx3移动到冲突任务队列;由于tx4的读键K2与更新后的等待被确认的信息处理任务的集合中的tx2的写键K2相同,因此,确定tx4满足上述预定冲突条件,从而将tx4也移动到冲突任务队列;由于tx5的读键K2与更新后的等待被确认的信息处理任务的集合中的tx2的写键K2相同,因此,确定tx5满足上述预定冲突条件,从而将顺序信息处理任务列表(tx5和tx6)也移动到冲突任务队列。即,如图5的⑤所示,将tx3、tx4和(tx5和tx6)都移动到冲突任务队列。
优选地,在冲突处理步骤S108中,在继续进行后续处理的信息处理任务被多个执行主体验证并确认之后,通过从等待被确认的信息处理任务的集合删除所确认的信息处理任务来更新等待被确认的信息处理任务的集合,并且从冲突任务队列删除与所确认的信息处理任务冲突的信息处理任务并且将所删除的任务缓存到任务缓存队列中。
作为示例,如图5的⑥所示,在用户端和多个执行主体上验证并确认继续进行后续处理的信息处理任务tx1和tx2。作为示例,用户端和多个执行主体先验证并确认tx1,并将tx1的执行结果保存在本地数据状态数据库中,即,基于被用户端和多个执行主体都认可的tx1的执行结果来更新用户端和多个执行主体各自持有的数据库副本。
在用户端和多个执行主体验证并确认tx1之后,如图5的⑦所示,多个执行主体发送任务验证成功消息,例如,发送关于tx1的任务验证成功消息。用户端接收到该任务验证成功消息之后,从等待被确认的信息处理任务的集合删除所确认的信息处理任务tx1,从而等待被确认的信息处理任务的集合仅包括tx2,所以冲突任务队列中的一些信息处理任务的冲突消失。例如,冲突任务队列中的tx3不再与等待被确认的信息处理任务的集合中的信息处理任务冲突。因此,如图5的⑧所示,从冲突任务队列删除与所确认的信息处理任务tx1冲突的信息处理任务tx3并且将所删除的任务tx3缓存到任务缓存队列中。
作为示例,在将冲突的任务(例如,tx3)再次缓存到任务缓存队列之后,在多个执行主体上重新执行该再次缓存的任务(例如,tx3),并且获取执行结果,并且基于执行结果再次判断该再次缓存的任务是否能直接进行后续处理。即,对于该再次缓存的任务(例如,tx3),重复使用图5中②-⑧的方法。
优选地,在冲突处理步骤S108中,在顺序信息处理任务列表中的一个信息处理任务被继续进行后续处理时,顺序信息处理任务列表中的位于所述一个信息处理任务后面的所有信息处理任务等待而不继续进行后续处理;以及直到所述一个信息处理任务被确认之后,紧接在所述一个信息处理任务信息后面的信息处理任务才被继续进行后续处理。
作为示例,对于图5中的顺序信息处理任务列表(tx5和tx6),在信息处理任务tx5被继续进行后续处理时,位于信息处理任务tx5后面的信息处理任务tx6等待而不继续进行后续处理,直到信息处理任务tx5被确认之后,紧接在信息处理任务tx5后面的信息处理任务tx6才被继续进行后续处理。
这样可以进一步使得顺序信息处理任务列表中的信息处理任务不被并发验证并确认,而是被顺序验证并确认,从而能够提高去中心化的数据管理系统中的信息处理任务的有效性。
作为示例,根据本公开实施方式的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100可以应用于医疗区块链。区块链参与主体包括医院、保险公司以及个人。也就是说,位于医院、保险公司以及个人的计算机可以是区块链中的执行节点。医院可以是多个,每个医院维护病人在自己医院的诊断数据。个人维护自己在所有医院的诊断数据。医院的诊断数据和个人的诊断数据的哈希值(保存哈希值可以减少数据量)都保存在区块链上。医院和个人保存的历史病历记录是不可篡改的,去中心化的。医院之间如果想共享数据,那么必须发起交易获得对方同意。医院想要获取个人的数据,也要发起交易获得对方同意。所有的数据使用历史都会记录在区块链上。保险公司可以发起交易,向医院或者个人获取历史病历记录,然后制定医疗保险优惠计划。例如,医院、保险公司以及个人可以包括图4中的用户端。
另外,根据本公开实施方式的用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法100还可以应用于供应链。例如描述进口牛肉的食品溯源系统。区块链参与主体包括养牛的牧场、牛肉生产企业、运输企业、销售企业等等。每个企业维护自己的节点,保存牛肉的所有状态。牛肉生产的每个步骤都会保存在区块链上。区块链上的数据是去中心化,防篡改的。如果牛肉发生食品安全问题,可以通过区块链溯源,查找出是哪个企业出问题了。
与上述用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法实施例相对应地,本公开还提供了以下用于在去中心化的数据管理系统中管理信息处理任务的有效性的装置600的实施例。
图6是示出根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的装置600的功能配置示例的框图。
如图6所示,根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的装置600可以包括并发风险检测单元602、缓存单元604、判断单元606以及冲突处理单元608。接下来将描述并发风险检测单元602、缓存单元604、判断单元606以及冲突处理单元608的功能配置示例。
去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,用户端和多个执行主体各自持有相同的数据库副本,其中,基于信息处理任务的执行结果中的、被用户端和多个执行主体都认可的结果来更新各个数据库副本。
在并发风险检测单元602中,用户端向多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给多个执行主体,顺序信息处理任务列表是通过对所请求的多个信息处理任务进行并发风险检测而生成的。
作为示例,用户端和多个执行主体可以是相互去信任的执行主体。多个信息处理任务包括至少两个信息处理任务。
在传统的去中心化的数据管理系统中,用户端发出的每个信息处理任务都会被默认并发地发送给所请求的执行主体。当上述并发发生时,信息处理任务的执行顺序是不确定的,因此,执行信息处理任务的结果是不确定的,即,可能存在并发风险。由于这个原因,不能获取期望的执行信息处理任务的结果。
而在根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的装置600中,在将多个信息处理任务发送给多个执行主体之前,在用户端对所请求的多个信息处理任务进行并发风险检测,并且对具有并发风险的信息处理任务进行排序,从而生成包括按次序的至少两个信息处理任务的顺序信息处理任务列表。作为示例,可以根据信息处理任务的重要性对信息处理任务进行排序,当然,本领域技术人员还可以想到对信息处理任务进行排序的其他方式。然后,在用户端,将顺序信息处理任务列表中的每个信息处理任务按其在顺序信息处理任务列表中的次序发送给多个执行主体,由此可以将顺序信息处理任务列表中的具有并发风险的信息处理任务改变成按所述次序被顺序化地发送,从而防止了并发地发送信息处理任务所导致的并发风险。
缓存单元604被配置成:可以将所请求的多个信息处理任务缓存到任务缓存队列中,其中,将顺序信息处理任务列表作为一个整体缓存到所述任务缓存队列。
作为示例,任务缓存队列是一个先进先出FIFO队列。
在缓存单元604中,在对多个信息处理任务继续进行后续处理之前,在用户端将多个信息处理任务缓存到任务缓存队列。在进行任务缓存时,将顺序信息处理任务列表作为一个整体缓存到任务缓存队列,从而可以使得顺序信息处理任务列表中的信息处理任务在多个执行主体上被顺序化地验证并确认,即,可以防止顺序信息处理任务列表中的信息处理任务在多个执行主体上被并发验证并确认而不能获取期望的信息处理任务结果。
判断单元606被配置成:判断任务缓存队列中的每个信息处理任务是否满足预定冲突条件。
作为示例,预定冲突条件可以是本领域技术人员根据经验预先设定的冲突条件。
冲突处理单元608被配置成:针对任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足所述预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足预定冲突条件时,才将该信息处理任务从所述冲突任务队列删除并且缓存到所述任务缓存队列中,以用于继续进行后续处理。
作为示例,在冲突处理单元608中,对于满足预定冲突条件的信息处理任务,采取了以下能够避免冲突的措施:将该信息处理任务移动到冲突任务队列,直到不满足预定冲突条件时,才将该信息处理任务从冲突任务队列删除并且缓存到任务缓存队列中。
从以上描述可知,根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的装置600能够检测去中心化的数据管理系统中的信息处理任务的并发风险,能够将顺序信息处理任务列表中的具有并发风险的信息处理任务改变成按次序被顺序化地发送,从而防止了并发地发送信息处理任务所导致的并发风险;在进行任务缓存时,将所生成的顺序信息处理任务列表作为一个整体缓存到任务缓存队列,这样可以防止顺序信息处理任务列表中的信息处理任务被并发验证并确认;对于满足预定冲突条件的信息处理任务,采取了能够避免冲突的措施,因此能够提高去中心化的数据管理系统中的信息处理任务的有效性。
优选地,并发风险检测单元602还被配置成:基于对去中心化的数据管理系统中的与信息处理任务有关的函数进行的静态代码分析,获得执行所请求的多个信息处理任务中的每个的执行结果;针对所请求的所述多个信息处理任务中的任意一个信息处理任务对,基于执行结果确定并发风险;以及基于每个信息处理任务对的所确定的并发风险,对信息处理任务对进行排序,从而生成顺序信息处理任务列表。
优选地,并发风险检测单元602还被配置成:通过对去中心化的数据管理系统中的与信息处理任务有关的函数进行静态代码分析,获得执行所述与信息处理任务有关的函数的语法树;以及基于语法树,得到执行所请求的每个信息处理任务的执行结果。
优选地,并发风险检测单元602还被配置成:根据语法树收集与信息处理任务有关的函数的执行路径、执行路径的条件以及所有路径的执行结果;以及针对所请求的每个信息处理任务,通过与执行路径和执行路径的条件进行映射,得到执行所请求的每个信息处理任务的执行结果。
优选地,并发风险检测单元602还被配置成:基于针对信息处理任务对中每个信息处理任务的执行结果中的写数据的特性和写数据的类型,计算并发风险得分。
因此,根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的装置600可以在多个执行主体上动态地执行信息处理任务之前,基于静态代码分析来检测信息处理任务的并发风险。
有关并发风险检测单元602中的上述处理的具体示例可以参见以上方法实施例中相应部分例如关于并发风险检测步骤S102和图4的描述,在此不再重复。
优选地,缓存单元604还被配置成:将没有并发风险的并发信息处理任务依次缓存到所述任务缓存队列中。
优选地,缓存单元604还被配置成:对于没有并发风险的并发信息处理任务中的每个任务,将按照述去中心化的数据管理系统中的处理规则执行每个任务所获得的读集合和写集合与该信息处理任务相关联地缓存到任务缓存队列中;以及对于顺序信息处理任务列表,仅将按照所述处理规则执行顺序信息处理任务列表中的第一次序的信息处理任务所获得的读集合和写集合与该顺序信息处理任务列表相关联地缓存到任务缓存队列中。
有关缓存单元604中的上述处理的具体示例可以参见以上方法实施例中相应部分例如关于缓存步骤S104和图5的描述,在此不再重复。
优选地,判断单元606还被配置成:如果一个信息处理任务与等待被确认的信息处理任务的集合中包括的任一信息处理任务均不冲突,则确定所述一个信息处理任务不满足所述预定冲突条件;以及如果所述一个信息处理任务与所述等待被确认的信息处理任务的集合中包括的任一信息处理任务冲突,则确定所述一个信息处理任务满足所述预定冲突条件。
优选地,判断单元606还被配置成:如果按照去中心化的数据管理系统中的处理规则执行所述一个信息处理任务所获得的读数据与按照所述处理规则执行等待被确认的信息处理任务的集合中包括的任一信息处理任务所获得的写数据均不相同,则确定所述一个信息处理任务不满足所述预定冲突条件;以及如果按照所述处理规则执行所述一个信息处理任务所获得的读数据与按照所述处理规则执行等待被确认的信息处理任务的集合中的任一信息处理任务所获得的写数据相同,则确定所述一个信息处理任务满足所述预定冲突条件。
由以上描述可知,可以通过对执行一个信息处理任务所获得的读数据与执行等待被确认的信息处理任务的集合中包括的任一信息处理任务所获得的写数据进行比较,确定一个信息处理任务是否满足预定冲突条件。
有关判断单元606中的上述处理的具体示例可以参见以上方法实施例中相应部分例如关于判断步骤S106和图5的描述,在此不再重复。
优选地,冲突处理单元608还被配置成:针对任务缓存队列中的每个信息处理任务,如果确定该信息处理任务不满足预定冲突条件,则使得该信息处理任务继续进行后续处理。
优选地,冲突处理单元608还被配置成:在将任务缓存队列中的信息处理任务继续进行后续处理的同时,通过将所发送的信息处理任务添加到等待被确认的信息处理任务的集合,更新等待被确认的信息处理任务的集合。
优选地,冲突处理单元608还被配置成:在继续进行后续处理的信息处理任务被多个执行主体验证并确认之后,通过从等待被确认的信息处理任务的集合删除所确认的信息处理任务来更新等待被确认的信息处理任务的集合,并且从冲突任务队列删除与所确认的信息处理任务冲突的信息处理任务并且将所删除的任务缓存到任务缓存队列中。
优选地,冲突处理单元608还被配置成:在顺序信息处理任务列表中的一个信息处理任务被继续进行后续处理时,顺序信息处理任务列表中的位于所述一个信息处理任务后面的所有信息处理任务等待而不继续进行后续处理;以及直到所述一个信息处理任务被确认之后,紧接在所述一个信息处理任务信息后面的信息处理任务才被继续进行后续处理。
这样可以进一步使得顺序信息处理任务列表中的信息处理任务不被并发验证并确认,而是被顺序验证并确认,从而能够提高去中心化的数据管理系统中的信息处理任务的有效性。
有关冲突处理单元608中的上述处理的具体示例可以参见以上方法实施例中相应部分例如关于冲突处理步骤S108和图5的描述,在此不再重复。
应指出,尽管以上描述了根据本公开实施例的用于在去中心化的数据管理系统中管理信息处理任务的有效性的装置的功能配置,但是这仅是示例而非限制,并且本领域技术人员可根据本公开的原理对以上实施例进行修改,例如可对各个实施例中的功能模块进行添加、删除或者组合等,并且这样的修改均落入本公开的范围内。
此外,还应指出,这里的装置实施例是与上述方法实施例相对应的,因此在装置实施例中未详细描述的内容可参见方法实施例中相应部分的描述,在此不再重复描述。
此外,本公开还提供了存储介质和程序产品。根据本公开实施例的存储介质和程序产品中的机器可执行的指令可以被配置成执行上述用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法,因此在此未详细描述的内容可参考先前相应部分的描述,在此不再重复进行描述。
相应地,用于承载上述包括机器可执行的指令的程序产品的存储介质也包括在本发明的公开中。该存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。
另外,还应该指出的是,上述系列处理和装置也可以通过软件和/或固件实现。在通过软件和/或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图7所示的通用个人计算机700安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等等。
在图7中,中央处理单元(CPU)701根据只读存储器(ROM)702中存储的程序或从存储部分708加载到随机存取存储器(RAM)703的程序执行各种处理。在RAM 703中,也根据需要存储当CPU 701执行各种处理等时所需的数据。
CPU 701、ROM 702和RAM 703经由总线704彼此连接。输入/输出接口705也连接到总线704。
下述部件连接到输入/输出接口705:输入部分706,包括键盘、鼠标等;输出部分707,包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等;存储部分708,包括硬盘等;和通信部分709,包括网络接口卡比如LAN卡、调制解调器等。通信部分709经由网络比如因特网执行通信处理。
根据需要,驱动器710也连接到输入/输出接口705。可拆卸介质711比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器710上,使得从中读出的计算机程序根据需要被安装到存储部分708中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质711安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图7所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质711。可拆卸介质711的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 702、存储部分708中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
以上参照附图描述了本公开的优选实施例,但是本公开当然不限于以上示例。本领域技术人员可在所附权利要求的范围内得到各种变更和修改,并且应理解这些变更和修改自然将落入本公开的技术范围内。
例如,在以上实施例中包括在一个单元中的多个功能可以由分开的装置来实现。替选地,在以上实施例中由多个单元实现的多个功能可分别由分开的装置来实现。另外,以上功能之一可由多个单元来实现。无需说,这样的配置包括在本公开的技术范围内。
在该说明书中,流程图中所描述的步骤不仅包括以所述顺序按时间序列执行的处理,而且包括并行地或单独地而不是必须按时间序列执行的处理。此外,甚至在按时间序列处理的步骤中,无需说,也可以适当地改变该顺序。
另外,根据本公开的技术还可以如下进行配置。
附记1.一种用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法,所述去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,所述用户端和所述多个执行主体各自持有相同的数据库副本,其中,基于所述信息处理任务的执行结果中的、被所述用户端和所述多个执行主体都认可的结果来更新各个数据库副本,所述方法包括:
用户端向所述多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给所述多个执行主体,所述顺序信息处理任务列表是通过对所请求的所述多个信息处理任务进行并发风险检测而生成的;
将所请求的所述多个信息处理任务缓存到任务缓存队列中,其中,将所述顺序信息处理任务列表作为一个整体缓存到所述任务缓存队列;
判断所述任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及
针对所述任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足所述预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足所述预定冲突条件时,才将该信息处理任务从所述冲突任务队列删除并且缓存到所述任务缓存队列中,以用于继续进行后续处理。
附记2.根据附记1所述的方法,其中,对所请求的所述多个信息处理任务进行并发风险检测而生成所述顺序信息处理任务列表包括:
基于对去中心化的数据管理系统中的与信息处理任务有关的函数进行的静态代码分析,获得执行所请求的所述多个信息处理任务中的每个的执行结果;
针对所请求的所述多个信息处理任务中的任意一个信息处理任务对,基于所述执行结果确定并发风险;以及
基于每个信息处理任务对的所确定的并发风险,对信息处理任务对进行排序,从而生成所述顺序信息处理任务列表。
附记3.根据附记2所述的方法,其中,针对任意一个信息处理任务对,基于所述执行结果确定并发风险包括:
基于针对信息处理任务对中每个信息处理任务的执行结果中的写数据的特性和写数据的类型,计算并发风险得分。
附记4.根据附记2所述的方法,其中,获得所请求的所述多个信息处理任务中的每个的执行结果包括:
通过对去中心化的数据管理系统中的与信息处理任务有关的函数进行静态代码分析,获得执行所述与信息处理任务有关的函数的语法树;以及
基于所述语法树,得到执行所请求的每个信息处理任务的执行结果。
附记5.根据附记4所述的方法,其中,其中,基于所述语法树而得到执行所请求的每个信息处理任务的执行结果包括:
根据所述语法树收集所述与信息处理任务有关的函数的执行路径、执行路径的条件以及所有路径的执行结果;以及
针对所请求的每个信息处理任务,通过与所述执行路径和执行路径的条件进行映射,得到执行所请求的每个信息处理任务的执行结果。
附记6.根据附记1所述的方法,其中,判断所述任务缓存队列中的一个信息处理任务是否满足预定冲突条件包括:
如果所述一个信息处理任务与等待被确认的信息处理任务的集合中包括的任一信息处理任务均不冲突,则确定所述一个信息处理任务不满足所述预定冲突条件;以及
如果所述一个信息处理任务与所述等待被确认的信息处理任务的集合中包括的任一信息处理任务冲突,则确定所述一个信息处理任务满足所述预定冲突条件。
附记7.根据附记6所述的方法,其中,判断所述任务缓存队列中的一个信息处理任务是否满足预定冲突条件进一步包括:
如果按照所述去中心化的数据管理系统中的处理规则执行所述一个信息处理任务所获得的读数据与按照所述处理规则执行所述等待被提交的信息处理任务的集合中包括的任一信息处理任务所获得的写数据均不相同,则确定所述一个信息处理任务不满足所述预定冲突条件;以及
如果按照所述处理规则执行所述一个信息处理任务所获得的读数据与按照所述处理规则执行所述等待被提交的信息处理任务的集合中的任一信息处理任务所获得的写数据相同,则确定所述一个信息处理任务满足所述预定冲突条件。
附记8.根据附记1所述的方法,其中,
在所述顺序信息处理任务列表中的一个信息处理任务被继续进行后续处理时,所述顺序信息处理任务列表中的位于所述一个信息处理任务后面的所有信息处理任务等待而不继续进行后续处理;以及
直到所述一个信息处理任务被确认之后,紧接在所述一个信息处理任务信息后面的信息处理任务才被继续进行后续处理。
附记9.根据附记1所述的方法,其中,将所请求的所述多个信息处理任务缓存到任务缓存队列中包括:
将没有并发风险的并发信息处理任务依次缓存到所述任务缓存队列中。
附记10.根据附记1所述的方法,其中,将所请求的所述多个信息处理任务缓存到任务缓存队列中包括:
对于没有并发风险的并发信息处理任务中的每个任务,将按照所述去中心化的数据管理系统中的处理规则执行每个任务所获得的读集合和写集合与该信息处理任务相关联地缓存到所述任务缓存队列中;以及
对于所述顺序信息处理任务列表,仅将按照所述处理规则执行所述顺序信息处理任务列表中的第一次序的信息处理任务所获得的读集合和写集合与该顺序信息处理任务列表相关联地缓存到所述任务缓存队列中。
附记11.根据附记1所述的方法,其中,针对所述任务缓存队列中的每个信息处理任务,如果确定该信息处理任务不满足所述预定冲突条件,则使得该信息处理任务继续进行后续处理。
附记12.根据附记6所述的方法,其中,在将所述任务缓存队列中的信息处理任务继续进行后续处理的同时,通过将所发送的信息处理任务添加到所述等待被提交的信息处理任务的集合,更新所述等待被提交的信息处理任务的集合。
附记13.根据附记12所述的方法,其中,在继续进行后续处理的信息处理任务被所述多个执行主体验证并提交之后,通过从所述等待被提交的信息处理任务的集合删除所提交的信息处理任务来更新所述等待被提交的信息处理任务的集合,并且从所述冲突任务队列删除与所提交的信息处理任务冲突的信息处理任务并且将所删除的任务缓存到所述任务缓存队列中。
附记14.一种用于管理去中心化的数据管理系统中信息处理任务的有效性的装置,所述去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,所述用户端和所述多个执行主体各自持有相同的数据库副本,其中,基于所述信息处理任务的执行结果中的、被所述用户端和所述多个执行主体都认可的结果来更新各个数据库副本,所述装置包括:
并发风险检测单元,被配置成在用户端向所述多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给所述多个执行主体,所述顺序信息处理任务列表是通过对所请求的所述多个信息处理任务进行并发风险检测而生成的;
缓存单元,被配置成将所请求的所述多个信息处理任务缓存到任务缓存队列中,其中,将所述顺序信息处理任务列表作为一个整体缓存到所述任务缓存队列;
判断单元,被配置成判断所述任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及
冲突处理单元,被配置成针对所述任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足所述预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足所述预定冲突条件时,才将该信息处理任务从所述冲突任务队列删除并且缓存到所述任务缓存队列中,以用于继续进行后续处理。
附记15.根据附记14所述的装置,其中,所述并发风险检测单元进一步被配置成:
基于对去中心化的数据管理系统中的与信息处理任务有关的函数进行的静态代码分析,获得执行所请求的所述多个信息处理任务中的每个的执行结果;
针对所请求的所述多个信息处理任务中的任意一个信息处理任务对,基于所述执行结果确定并发风险;以及
基于每个信息处理任务对的所确定的并发风险,对信息处理任务对进行排序,从而生成所述顺序信息处理任务列表。
附记16.根据附记15所述的装置,其中,所述并发风险检测单元进一步被配置成:
基于针对信息处理任务对中每个信息处理任务的执行结果中的写数据的特性和写数据的类型,计算并发风险得分。
附记17.根据附记15所述的装置,其中,所述并发风险检测单元进一步被配置成:
通过对去中心化的数据管理系统中的与信息处理任务有关的函数进行静态代码分析,获得执行所述与信息处理任务有关的函数的语法树;以及
基于所述语法树,得到执行所请求的每个信息处理任务的执行结果。
附记18.根据附记14所述的装置,其中,所述判断单元进一步被配置成:
如果所述一个信息处理任务与等待被确认的信息处理任务的集合中包括的任一信息处理任务均不冲突,则确定所述一个信息处理任务不满足所述预定冲突条件;以及
如果所述一个信息处理任务与所述等待被确认的信息处理任务的集合中包括的任一信息处理任务冲突,则确定所述一个信息处理任务满足所述预定冲突条件。
附记19.根据权附记14所述的装置,其中,
在所述顺序信息处理任务列表中的一个信息处理任务被继续进行后续处理时,所述顺序信息处理任务列表中的位于所述一个信息处理任务后面的所有信息处理任务等待而不继续进行后续处理;以及
直到所述一个信息处理任务被确认之后,紧接在所述一个信息处理任务信息后面的信息处理任务才被继续进行后续处理。
附记20.一种其上记录有计算机程序的计算机可读存储介质,所述计算机程序在被执行时用于实现在去中心化的数据管理系统中管理信息处理任务的有效性的方法,所述去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,所述用户端和所述多个执行主体各自持有相同的数据库副本,其中,基于所述信息处理任务的执行结果中的、被所述用户端和所述多个执行主体都认可的结果来更新各个数据库副本,所述方法包括:
用户端向所述多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给所述多个执行主体,所述顺序信息处理任务列表是通过对所请求的所述多个信息处理任务进行并发风险检测而生成的;
将所请求的所述多个信息处理任务缓存到任务缓存队列中,其中,将所述顺序信息处理任务列表作为一个整体缓存到所述任务缓存队列;
判断所述任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及
针对所述任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足所述预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足所述预定冲突条件时,才将该信息处理任务从所述冲突任务队列删除并且缓存到所述任务缓存队列中,以用于继续进行后续处理。

Claims (10)

1.一种用于在去中心化的数据管理系统中管理信息处理任务的有效性的方法,所述去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,所述用户端和所述多个执行主体各自持有相同的数据库副本,其中,基于所述信息处理任务的执行结果中的、被所述用户端和所述多个执行主体都认可的结果来更新各个数据库副本,所述方法包括:
用户端向所述多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给所述多个执行主体,所述顺序信息处理任务列表是通过对所请求的所述多个信息处理任务进行并发风险检测而生成的;
将所请求的所述多个信息处理任务缓存到任务缓存队列中,其中,将所述顺序信息处理任务列表作为一个整体缓存到所述任务缓存队列;
判断所述任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及
针对所述任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足所述预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足所述预定冲突条件时,才将该信息处理任务从所述冲突任务队列删除并且缓存到所述任务缓存队列中,以用于继续进行后续处理。
2.根据权利要求1所述的方法,其中,对所请求的所述多个信息处理任务进行并发风险检测而生成所述顺序信息处理任务列表包括:
基于对去中心化的数据管理系统中的与信息处理任务有关的函数进行的静态代码分析,获得执行所请求的所述多个信息处理任务中的每个的执行结果;
针对所请求的所述多个信息处理任务中的任意一个信息处理任务对,基于所述执行结果确定并发风险;以及
基于每个信息处理任务对的所确定的并发风险,对信息处理任务对进行排序,从而生成所述顺序信息处理任务列表。
3.根据权利要求2所述的方法,其中,针对任意一个信息处理任务对,基于所述执行结果确定并发风险包括:
基于针对信息处理任务对中每个信息处理任务的执行结果中的写数据的特性和写数据的类型,计算并发风险得分。
4.根据权利要求2所述的方法,其中,获得所请求的所述多个信息处理任务中的每个的执行结果包括:
通过对去中心化的数据管理系统中的与信息处理任务有关的函数进行静态代码分析,获得执行所述与信息处理任务有关的函数的语法树;以及
基于所述语法树,得到执行所请求的每个信息处理任务的执行结果。
5.根据权利要求1所述的方法,其中,判断所述任务缓存队列中的一个信息处理任务是否满足预定冲突条件包括:
如果所述一个信息处理任务与等待被确认的信息处理任务的集合中包括的任一信息处理任务均不冲突,则确定所述一个信息处理任务不满足所述预定冲突条件;以及
如果所述一个信息处理任务与所述等待被确认的信息处理任务的集合中包括的任一信息处理任务冲突,则确定所述一个信息处理任务满足所述预定冲突条件。
6.根据权利要求1所述的方法,其中,
在所述顺序信息处理任务列表中的一个信息处理任务被继续进行后续处理时,所述顺序信息处理任务列表中的位于所述一个信息处理任务后面的所有信息处理任务等待而不继续进行后续处理;以及
直到所述一个信息处理任务被确认之后,紧接在所述一个信息处理任务信息后面的信息处理任务才被继续进行后续处理。
7.根据权利要求1所述的方法,其中,将所请求的所述多个信息处理任务缓存到任务缓存队列中包括:
将没有并发风险的并发信息处理任务依次缓存到所述任务缓存队列中。
8.根据权利要求1所述的方法,其中,将所请求的所述多个信息处理任务缓存到任务缓存队列中包括:
对于没有并发风险的并发信息处理任务中的每个任务,将按照所述去中心化的数据管理系统中的处理规则执行每个任务所获得的读集合和写集合与该信息处理任务相关联地缓存到所述任务缓存队列中;以及
对于所述顺序信息处理任务列表,仅将按照所述处理规则执行所述顺序信息处理任务列表中的第一次序的信息处理任务所获得的读集合和写集合与该顺序信息处理任务列表相关联地缓存到所述任务缓存队列中。
9.一种用于管理去中心化的数据管理系统中信息处理任务的有效性的装置,所述去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,所述用户端和所述多个执行主体各自持有相同的数据库副本,其中,基于所述信息处理任务的执行结果中的、被所述用户端和所述多个执行主体都认可的结果来更新各个数据库副本,所述装置包括:
并发风险检测单元,被配置成在用户端向所述多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给所述多个执行主体,所述顺序信息处理任务列表是通过对所请求的所述多个信息处理任务进行并发风险检测而生成的;
缓存单元,被配置成将所请求的所述多个信息处理任务缓存到任务缓存队列中,其中,将所述顺序信息处理任务列表作为一个整体缓存到所述任务缓存队列;
判断单元,被配置成判断所述任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及
冲突处理单元,被配置成针对所述任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足所述预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足所述预定冲突条件时,才将该信息处理任务从所述冲突任务队列删除并且缓存到所述任务缓存队列中,以用于继续进行后续处理。
10.一种其上记录有计算机程序的计算机可读存储介质,所述计算机程序在被执行时用于实现在去中心化的数据管理系统中管理信息处理任务的有效性的方法,所述去中心化的数据管理系统包括用户端和用于执行用户端发起的信息处理任务的多个执行主体,所述用户端和所述多个执行主体各自持有相同的数据库副本,其中,基于所述信息处理任务的执行结果中的、被所述用户端和所述多个执行主体都认可的结果来更新各个数据库副本,所述方法包括:
用户端向所述多个执行主体发出多个信息处理任务的请求,其中,将包括按次序的至少两个信息处理任务的顺序信息处理任务列表中的信息处理任务按所述次序发送给所述多个执行主体,所述顺序信息处理任务列表是通过对所请求的所述多个信息处理任务进行并发风险检测而生成的;
将所请求的所述多个信息处理任务缓存到任务缓存队列中,其中,将所述顺序信息处理任务列表作为一个整体缓存到所述任务缓存队列;
判断所述任务缓存队列中的每个信息处理任务是否满足预定冲突条件;以及
针对所述任务缓存队列中的每个信息处理任务,如果确定该信息处理任务满足所述预定冲突条件,则将该信息处理任务移动到冲突任务队列,直到不满足所述预定冲突条件时,才将该信息处理任务从所述冲突任务队列删除并且缓存到所述任务缓存队列中,以用于继续进行后续处理。
CN201810805625.3A 2018-07-20 2018-07-20 管理信息处理任务的有效性的方法和装置 Pending CN110807047A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810805625.3A CN110807047A (zh) 2018-07-20 2018-07-20 管理信息处理任务的有效性的方法和装置
EP19166088.5A EP3598302A1 (en) 2018-07-20 2019-03-29 Method and apparatus for managing effectiveness of information processing task
JP2019067157A JP2020013544A (ja) 2018-07-20 2019-03-29 情報処理タスクの有効性の管理方法及び管理装置
US16/397,553 US10990438B2 (en) 2018-07-20 2019-04-29 Method and apparatus for managing effectiveness of information processing task

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810805625.3A CN110807047A (zh) 2018-07-20 2018-07-20 管理信息处理任务的有效性的方法和装置

Publications (1)

Publication Number Publication Date
CN110807047A true CN110807047A (zh) 2020-02-18

Family

ID=66349237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810805625.3A Pending CN110807047A (zh) 2018-07-20 2018-07-20 管理信息处理任务的有效性的方法和装置

Country Status (4)

Country Link
US (1) US10990438B2 (zh)
EP (1) EP3598302A1 (zh)
JP (1) JP2020013544A (zh)
CN (1) CN110807047A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611042A (zh) * 2020-05-22 2020-09-01 京东方科技集团股份有限公司 设备状态变化的处理方法、装置和计算机可读存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200153605A1 (en) * 2018-11-13 2020-05-14 Accelor Ltd. Systems and methods for pre-executing transaction validation for blockchain applications
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
US11792022B2 (en) * 2020-02-21 2023-10-17 International Business Machines Corporation Resolution of conflicting data
US11226815B2 (en) * 2020-04-07 2022-01-18 International Business Machines Corporation Using big code to construct code conditional truth tables
CN111831420B (zh) * 2020-07-20 2023-08-08 北京百度网讯科技有限公司 用于任务调度的方法、相关装置及计算机程序产品
CN112037058B (zh) * 2020-08-28 2024-03-26 平安科技(深圳)有限公司 数据验证方法、装置及存储介质
US20220311595A1 (en) * 2021-03-24 2022-09-29 International Business Machines Corporation Reducing transaction aborts in execute-order-validate blockchain models
CN114331471B (zh) * 2021-12-21 2024-09-13 蚂蚁区块链科技(上海)有限公司 基于区块链的溯源码生成方法及装置和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150128532A1 (en) * 2013-11-08 2015-05-14 Express Scripts, Inc. Systems and methods for prescription drug packaging
CN105389209A (zh) * 2015-12-25 2016-03-09 中国建设银行股份有限公司 一种异步批量任务处理方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4502390B2 (ja) * 2005-03-30 2010-07-14 キヤノン株式会社 画像処理装置およびその方法
US7752173B1 (en) * 2005-12-16 2010-07-06 Network Appliance, Inc. Method and apparatus for improving data processing system performance by reducing wasted disk writes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150128532A1 (en) * 2013-11-08 2015-05-14 Express Scripts, Inc. Systems and methods for prescription drug packaging
CN105389209A (zh) * 2015-12-25 2016-03-09 中国建设银行股份有限公司 一种异步批量任务处理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
THOMAS DICKERSON 等: ""Adding Concurrency to Smart Contracts"", 《PODC’17, JULY 25-27, 2017, WASHINGTON, DC, USA》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611042A (zh) * 2020-05-22 2020-09-01 京东方科技集团股份有限公司 设备状态变化的处理方法、装置和计算机可读存储介质
CN111611042B (zh) * 2020-05-22 2024-08-02 京东方科技集团股份有限公司 设备状态变化的处理方法、装置和计算机可读存储介质

Also Published As

Publication number Publication date
US10990438B2 (en) 2021-04-27
US20200026552A1 (en) 2020-01-23
JP2020013544A (ja) 2020-01-23
EP3598302A1 (en) 2020-01-22

Similar Documents

Publication Publication Date Title
CN110807047A (zh) 管理信息处理任务的有效性的方法和装置
US20220067025A1 (en) Ordering transaction requests in a distributed database according to an independently assigned sequence
US9864673B2 (en) Integration process management console with error resolution interface
US10185930B1 (en) Collaboration using shared documents for processing distributed data
US9152394B2 (en) Generating application model build artifacts
US9292575B2 (en) Dynamic data aggregation from a plurality of data sources
AU2019203992A1 (en) Data platform for automated data extraction, transformation, and/or loading
US9811577B2 (en) Asynchronous data replication using an external buffer table
US8019756B2 (en) Computer apparatus, computer program and method, for calculating importance of electronic document on computer network, based on comments on electronic document included in another electronic document associated with former electronic document
US7921075B2 (en) Generic sequencing service for business integration
EP3726779A1 (en) Device for testing blockchain network
Mc Causland et al. Association of serum sodium with morbidity and mortality in hospitalized patients undergoing major orthopedic surgery
US20110264759A1 (en) Optimized caching for large data requests
JP2009527849A (ja) Edi交換のスケーラブルな変換および構成
EP3018595A1 (en) System and method for reporting multiple objects in enterprise content management
Pardamean et al. Integrated model of cloud-based E-medical record for health care organizations
US20150339286A1 (en) Automatically generating certification documents
US11977862B2 (en) Automatically cataloging application programming interface (API)
US20230195739A1 (en) Information system with temporal data
CN113312341A (zh) 一种数据质量监控方法、系统和计算机设备
US20090138510A1 (en) Method and apparatus for associating help desk ticket with affected data processing system
US10956386B2 (en) Methods and apparatuses for automated performance tuning of a data modeling platform
US11115302B1 (en) Self-service metric publication in a computer network
US7283994B2 (en) Merging of products into a database
US10102598B2 (en) Dynamic optimal connectivity path

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200218