CN103842995A - 在分布式数据库中的一般化的协调 - Google Patents
在分布式数据库中的一般化的协调 Download PDFInfo
- Publication number
- CN103842995A CN103842995A CN201280048371.6A CN201280048371A CN103842995A CN 103842995 A CN103842995 A CN 103842995A CN 201280048371 A CN201280048371 A CN 201280048371A CN 103842995 A CN103842995 A CN 103842995A
- Authority
- CN
- China
- Prior art keywords
- data base
- dbms
- management system
- transaction sequence
- transaction
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例包括用于在分布式数据库中的数据库事务的一般化的一致性控制。在分布式数据库***中,特定协调过程通常被需要并被编码为每个可能无法解决的事件。本文所描述的***和方法启用多种类型的无法解决的事件的一般特征,从而消除和/或减少了需要为每个特定事件编写单个代码的需要。
Description
优先权要求
本申请要求2011年08月01日递交的第61/513,932号,名称为“Reconciling a Distributed Database from Hierarchical Viewpoints”,代理案号为58520-8006.US00的美国临时申请,其内容以引用方式被明示地合并于此。
对相关申请的交互引用
本申请涉及题为“Reconciling a Distributed Database from HierarchicalViewpoints”,也是由贾森·卢卡斯发明的,于2012年8月1日提交的,代理人案号为58520-8006.US01的共同未决的美国专利申请________,其的内容以引用的方式被明示地合并于此。
本申请涉及题为“Systems and Methods for Asynchronous DistributedDatabase Management”,也由贾森·卢卡斯发明的,于2012年8月1日提交的,代理人案号为58520-8008.US01的共同未决的美国专利申请________,其内容以引用的方式被明示地合并于此。
技术领域
本发明的具体实施例一般涉及数据库管理技术以及,更具体地说,在分布式数据库中的一般化的协调。
背景技术
分布式数据库是一种不是所有的存储装置都被连接到共同的中央处理单元(CPU)的数据库。分布式数据库可以被存储在位于同一物理位置的多台计算机中,或可以分散在处于多个物理位置的互连的计算机网络。分布式***的位置或场所可能分布在大的区域(如美国或世界),或在一个小的区域(如建筑物或校园)。在分布式数据库中的数据集合也可以分布在多个物理位置。
通常情况下,分布式数据库***的目的是让很多用户(客户端或应用)在相同时间的数据集合中的相同信息的使用,同时使它看起来好像每个用户独占访问整个数据集合。分布式数据库***应以性能的损失最小(潜伏期)和最大事务吞吐量来提供这项服务。也就是说,在位置A的用户必须能够访问(也许更新)在位置B的数据。如果用户更新信息,该更新必须被整个传播分布式数据库***的资源以维护在分布式数据库***中的一致性。
更新(或数据库事务)都必须在分布式数据库***中串行化以维护一致性。如果事务以串行顺序被执行,同时冲突永远不会发生,因为每一个事务将是在特定时间的***上被执行的唯一事务,并有专用的***资源。新的事务将看到以前事务的结果,再加上由该事务作出的变化,但永远不会看到那些尚未启动的事务的结果。在操作中,事务通常同时执行,并且要求到相同资源的同时访问和修改。因此,维护在分布式数据库***中的一致性可能非常复杂并且经常导致不可接受的响应时间。
当前存在各种同时控制机制,例如,开放式同时控制机制,其通过事后检测无效使用进行操作。这些类型的机制的基本思想是把数据库事务的生命周期分为三个阶段:读取、验证和发布。在读阶段,事务获取资源而不计冲突或有效性,但它维护它采时用的资源集合(读集)的纪录和它已经修改资源集合(写集)。在验证阶段,开放式同时控制机制检查事务的读集,并决定那些资源的当前状态是否已经改变。如果读集并没有改变,那么事务的开放式的假设被证实是正确的,并且***发布写集,提交事务的更改。如果读集有变化,那么事务的开放式假设被证明是错误的,并且***将中止导致所有更改的损失的事务。
为了避免其假设被证明是错误的事务的不必要的中止,现有技术***的目的是为了协调不正确的假设。不幸的是,迄今为止,这些机制要求特定的协调程序为每个可能无法解决的事件被单独编码。
发明内容
在分布式数据库中的数据库记事务的一般化的一致性控制的***和方法被在此描述。如上所讨论的,在分布式数据库***中的特定协调过程通常被需要并被为每个可能无法解决的事件进行编码。本公开的目标是启用多种类型的不可解决的事件的一般特征,从而消除和/或减少了为每个特定无法解决的事件编写单个代码的需要。
根据各种实施例,数据库管理***(DBMS)通过从分布式数据库***中的多个客户端***接收与多个事务序列相关联的多个数据库事务,来一般化在分布式数据库中的数据库事务的一致性控制,其中每个事务序列指示一个或多个未提交的数据库事务并且每个未提交的数据库事务包括要求在分布式数据库***中的多个资源之间达成共识以用于协调的一个或多个断言。DBMS可以从多个事务序列的两个或更多事务序列检测与两个或更多未提交数据库事务相关联的断言之间的不一致性,其中不一致性指示在关于一个或多个所述断言的有效性的所述多个资源之间的共识的缺乏。DBMS可以处理与两个或更多事务序列相关联的两个或更多断言以产生语义保持转换,其中语义保持转换,当被应用到一个或多个的两个或更多断言的时候,消除了不一致性。
在一个实施例中,DBMS可以通过将语义保持转换应用至一个或多个的断言来协调数据库事务从而一般化一致性控制。
在一个实施例中,语义保持转换指示改变,改变当被应用到一个或多个断言时消除了不一致性。
在一个实施例中,多个事务序列的两个或更多事务序列被协调为全局事务序列。
在一个实施例中,DBMS可以通过处理一组规则以生成语义保持转换来一般化一致性控制。一组规则包括用于处理与两个或更多事务序列相关联的两个或更多断言以产生语义保持转换的一般化的指示。
在一个实施例中,DBMS可以通过发送消息给一个或多个的与两个或更多断言相关联的客户端***来请求用户输入用于解决不一致性,以及接收指示所述用户输入的响应来一般化一致性控制,两个或更多断言与两个或更多事务序列相关联。
在一个实施例中,DBMS可以通过处理用户输入和与两个或更多事务序列相关联的两个或更多断言,以生成语义保持转换来一般化一致性控制。
在一个实施例中,资源包括在分布式数据库***中的其它数据库管理***。
根据各种实施例,DBMS可以通过从多个事务序列的两个或更多事务序列检测与两个或更多数据库事务相关联的断言之间的不一致性来一般化在分布式数据库中的数据库事务的一致性控制,其中不一致性指示在关于一个或多个的断言的有效性的多个资源之间的共识的缺乏。DBMS可以处理与两个或更多事务序列相关联的两个或更多断言以产生语义保持转换,其中语义保持转换,当被应用到一个或多个的两个或更多断言的时候,消除了不一致性。DBMS可以通过将语义保持转换应用到一个或多个断言协调未提交的数据库事务。
根据各种实施例,DBMS可以一般化在分布式数据库中的数据库事务的一致性控制。DBMS可以包括处理单元、接口和存储单元。接口可以被配置为从分布式数据库***中的多个客户端***接收与多个事务序列相关联的多个数据库事务,其中每个事务序列指示一个或多个未提交的数据库事务,并且每个未提交的数据库事务包括要求在分布式数据库***中的多个资源之间达成共识以用于协调的一个或多个断言。存储单元可以具有存储在其上的指令,其中当指令由处理单元执行时,使处理单元从多个事务序列的两个或更多事务序列检测在与两个或更多未提交的数据库事务相关联的断言之间的不一致性,并处理与两个或更多事务序列相关联的两个或更多断言以产生语义保持转换,其中语义保持转换,当被应用到一个或多个的两个或更多断言的时候,消除了不一致性。
附图说明
图1根据一个实施例示出了示例性分布式数据库环境的框图,其说明了本发明的各种特征可被用于其内的多个分布式数据库站点和客户端***。
图2根据本发明一个实施例示出了本发明的各种特征可被用于其内的分布式数据库环境的示例性节点的框图。
图3根据一个实施例示出了用于使用语义保持转换来控制在分布式数据库***中的事务一致性的数据库管理***的组件的框图。
图4根据一个实施例示出了流程图,其说明了用于使用语义保持转换来控制在分布式数据库***中的事务一致性的示例性过程。
图5根据一个实施例示出了流程图,该流程图说明了用于使用语义保持转换来控制在分布式数据库***中的事务一致性的示例性过程。
图6A-6C根据一个实施例示出了说明在分布式数据库***中的多个事务序列之间的一般化的协调的图示。
图7示出了根据一个实施例的在计算机***的示例形式中的机器的示意性表示,一组指令在计算机***之内,用于使机器执行在此讨论的任何一个或多个的方法,可被执行。
具体实施方式
所公开的***和方法提供对分布式数据库中的数据库事务的一般化的一致性控制。如上所讨论的,在分布式数据库***中的特定系协调过程通常被需要并为每个可能无法解决的事件进行编码。本公开的目标是启用多种类型的不可解决的事件的一般特征,从而消除和/或减少了每个特定的事件编写单个代码的需要。
下面的描述和附图是说明性的,并且不应当被解释为限制性的。许多具体的细节被描述以提供对本发明的彻底理解。然而,在某些情况下,公知的或常规的细节不被描述是为了避免混淆本说明。在本发明中的一个实施例的参考可以是,但不一定是,参考相同的实施例,以及,这样的引用指的是实施例中的至少一个。
在本说明书中参考文献对“一个实施例”或“实施例”意味着特定的特征、结构或连同实施例所描述的特性被包括在本发明的至少一个实施例中。在说明书中各个地方的“在一个实施例中”的短语的出现并不必要的都是指的同一实施例,也不是指单独的或其他实施例的互相排斥的替代实施例。此外,各种特征被描述,其可通过一些实施例而不是其他实施例被展示。同样,各种要求被描述,其可以是一些实施例而不是其他实施例的要求。
在本说明书中使用的术语通常具有本领域中、本发明内容的范围内以及在每个术语使用的特定上下文之内的普通含义。被用于描述本发明的某些术语将在下面或者在说明书的其它地方进行讨论,以为关于本发明描述的实践者提供额外的指导。为方便起见,某些术语可能会被突出显示,例如使用斜体和/或引号。突出显示的使用不会对术语的范围和含义造成影响,在同样的情况下,术语的范围和含义是一样的,不论它是否被突出显示。将理解的是,同样的事物可以以一种以上的方式进行表述。
因此,替代语言和同义词可用于在此所讨论的任何一个或多个的术语,也不是被赋予术语是否被在此阐述或描述的任何特殊的意义。若干术语的同义词被提供。一个或多个同义词的列举不排除使用其他的同义词。包括任何在此讨论的术语的例子的本说明书中的任何位置的例子的使用,仅是说明性的,而不是为了进一步限制本发明的范围和含义或任何示例性术语。同样地,本发明并不限定于在本说明书中给出的各种实施例。
在不意图以进一步限制本发明的范围,根据本发明的实施例的仪器、装置、方法及其相关结果的例子被给定如下。注意,标题或副标题为了方便读者可以被使用在实施例中,其绝不应该限制本发明的范围。除非另有定义,在此使用的所有技术和科学术语具有通常由本发明内容所属的领域的普通技术人员的通常理解的相同的含义。在冲突的情况下,以本文件(包括定义)为准。
本发明公开的具体实施方式包括各种步骤,这些步骤将在下面描述。步骤可以通过硬件组件来执行,或者可以被以机器可执行指令体现,其可被用来使以指令编程的通用或专用处理器执行这些步骤。可替换地,这些步骤可以由硬件,软件和/或固件的组合来执行。
本发明的具体实施方式可被提供为计算机程序产品,其可以包括其上存储有指令的机器可读介质,其可被用来对计算机(或其他电子设备)编程以执行过程。该机器可读介质可以包括,但不限于,软盘、光盘、光盘只读存储器(CD-ROM),和磁光盘、ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、车辆身份模块(VIMS)、磁卡或光卡、闪存、或其他类型的适合于存储电子指令的介质/机器可读介质。
此外,本发明的实施例也可以下载作为计算机程序产品使用的计算机程序产品或数据,其中程序、数据和/或指令可以经由体现在载波或其它传播介质中的数据信号通过通信链路(例如,调制解调器或网络连接)从远程计算机或移动设备传送到发出请求的计算机或移动设备。在某些情况下,程序、数据或指令中的部分可通过外部网络,例如电话网络(例如,公共交换电话网络、蜂窝式网络、Wi-Fi和其它语音、数据和无线网络),或互联网被提供。该通信链路可以包括多个网络,甚至多个异构网络,例如一个或多个边界网络、语音网络、宽带网络、服务提供商网络、互联网服务提供商(ISP)网络,和/或公共交换电话网络(PSTN)、多个网络通过网关互连可操作地促进网络之间的通信连接。
术语
贯穿本申请使用的术语的简要定义被给定如下。
术语“连接”或“接合”和相关术语是在操作意义中使用,并且不限于直接连接或接合。
术语“实施例”、短语例如“在一些实施例中”、“在各实施例中”之类的,通常指的是特定的特征、结构、方法或特性,之前或之后的术语或短语被包括在本发明的至少一个实施例中,并且可以被包括在本发明的一个以上的实施例中。此外,这样的术语或短语不一定指相同的实施例。
如果说明书规定组件或特征“可以”,“能够”,“可能”或“可能”被包括或有一个特点,并特定的组件或特征并不需要被包含或具有的特点。
术语“模块”是泛指软件、硬件和/或固件(或其任何组合)。模块通常是功能性组件,其可以使用指定输入生成有用的数据或其他输出。模块可以是或可以不是独立的。应用程序(也称为“application”)可以包括一个或多个模块和/或模块可以包括一个或多个应用程序。
术语“应答”包括完全和部分的应答。
分布式数据库环境示例
分布式数据库环境100的例子,表示多个分布式数据库站点和客户端***,在其中本发明的各种特征也可以被使用,现在将参考图1被描述。在这个例子中,分布式数据库环境100包括多个节点10,多个客户端***25,以及网络150。每个节点10可以位于不同的站点或地理位置。类似地,每个客户端***25可位于网络150的连接的任何地方。
在本例中,节点10个设在与其他节点10经由网络150通信。节点10可以是集中式数据库***,例如数据仓库或数据集市,远程站点,如台式个人计算机,便携式计算机或其他移动计算设备,或任何其它类型的数据处理器。如本例中所示,节点10包括与分布式数据库20通信的数据库管理***18。数据库管理***18可以与数据库20经由任何通信装置通信用于传送数据和/或控制信息。虽然为了简单起见未被示出,数据库管理***18还可以包括分布式数据库管理***和局部数据库管理***。类似地,尽管未示出,数据库20可包括分布式数据库和局部数据库。
在一些实施例中,一个或多个的分布式数据库管理***18可被指定主管理***或主机服务器***。主管理***可能在某些情况下如本文中所公开的负责协调数据库事务和/或数据库事务序列,虽然替代配置是可能的。
网络150,客户端***25和节点10通过该网络150通信,可以是局域、城域网、广域网、全球数据通信网络,如因特网,私人“内部网”或“外部网”的网络或任何其他合适的数据通信介质-包括其组合或变体。例如,Intemet可以提供文件传输、远程登录、电子邮件、新闻、RSS,以及通过任何已知的或合适的协议的服务,例如,但并不限定于TCP/IP协议、开放***互连(0SI)、FTP、UPnP、iSCSI、NSF、ISDN、PDH、RS-232、SDH、SONET,等等。
可替换地或附加地,网络150可以是全部或部分地操作连结提供连接到客户端***25和节点10的不同的网络的任何集合,并且可以表现为到所服务的***和设备的一个或多个网络。在一个实施例中,到客户端***25和来自客户端***25的通信可通过一个开放网络(如因特网)或专用网络(例如企业内部网和/或外联网)来实现。在一个实施例中,通信可以通过安全通信协议(如安全套接字层(SSL)或传输层安全(TLS))来实现。
此外,通信可以经由一个或多个无线网络被实现,无线网络例如,但是不限于,一个或多个的局域网(LAN)、无线局域网(WLAN)、个人区域网(PAN)、校园区域网(CAN)、城域网(MAN)、广域网(WAN)、无线广域网(WWAN)、全球移动通信***(GSM)、个人通信服务(PCS)、数字高级移动电话服务(D-AMPS)、蓝牙、无线网络、固定无线数据、2G、2.5G、3G网络、GSM演进的增强型数据速率(EDGE)、通用分组无线服务(GPRS)、增强型GPRS、短信协议,如TCP/IP、短信、彩信、可扩展通信与表示协议(XMPP)、实时消息协议(RTMP)、即时通信和表示协议(IMPP)、即时消息、USSD、IRC或者任何其他无线数据网络或通信协议。
客户端***(或客户端)25经由网络150与一个或多个节点10通信。客户端***25可以是任何***和/或装置,和/或能够建立与另一个设备、服务器和/或其他***的连接的装置/***的任何组合。客户端***25通常包括显示器或其他输出功能,以呈现设备到用户之间的数据交换。例如,客户端***25可以是,但不限于,服务器桌面、台式计算机、计算机集群、移动计算设备,例如笔记本、膝上型计算机、手持式计算机、移动电话、智能电话、PDA、黑莓设备、Treo和/或iPhone等等。在一个实施例中,客户端***25被接合到网络150。在一些实施例中,客户端***25可被直接连接到彼此或另一个节点10。
客户端***25包括查询接口22和一个或多个应用程序26。应用程序25可以在客户端25上执行,并可能包括用于调用查询接口22的功能,该查询接口22用于将数据库查询传递到数据库服务器进行处理。应用程序26可调用查询接口22用于从分布式数据库20的数据库表中读出数据或将数据写入到分布式数据库20的数据库表中。在一般情况下,应用程序26和查询接口22可以是任何类型的可解释或可执行软件代码,例如内核组件,应用程序,脚本,链接库,或者具有方法的对象,包括其组合或变体。在一个示例中,应用程序26包括一个多用户交互游戏,但是,可以理解,其它的应用程序也是可能的。
在一些实施例中,一个或多个数据库管理***18通过异步地和同时地协调数据库事务为每个客户端***25维护一个或多个事务序列。该事务序列可以包含一个或多个数据库事务。在操作中,数据库事务可以由客户端***25内的应用程序26产生并经由由查询接口22产生的查询被转移到关联的数据库管理***18。如在图1的例子中所示,查询被通过网络150传递并在数据库管理***18中的一个被接收。
在一些实施例中,每个事务序列可能是一个连续的独立的序列或线性时间模型,其从个人的观点指示数据库事务。个人的观点可以是,例如,在客户端上运行的一个或多个应用程序的观点和/或客户端***或客户端***的操作者(例如,用户或玩家)的观点。
在一些实施例中,事务序列可以通过一个图形,如因果图或序列图来表示。因果图和序列图包含有关当前和历史数据库事务或操作,如从客户端***接收到数据库查询的信息。
在一些实施例中,数据库管理***18维护客户端***25的现关联的事务序列以及异步地和同时地协调事务序列之内的数据库事务,该事务序列具有在分布式数据库***中接收的其它事务序列中的其他相关数据库事务。
在一些实施例中,每个数据库事务用数据库事务所依赖的一组假设操作。如在此所描述的,假设被断言所控制,该断言可以用来代替锁以允许操作的交错并增加并行性。在一些实施例中,断言使用各种机制执行一致性,该机制例如,例如,多版本同时控制(MVCC)机制。如在此所述,同时控制机制促进在断言是真实的过去寻求时间的能力。这个过程在此称为“时间旅行”,并且被参照图5进行更详细地讨论。
在一些实施例中,数据库20包括含有已提交数据库事务的全局事务序列。在一些实施例中,全局事务序列跨越一些或全部的在分布式数据库环境100中的数据库20进行复制。
图2示出了根据一个实施例的在分布式数据库环境200中的示例节点210的框图。分布式数据库环境200可以类似于图1的分布式数据库环境100,虽然替代配置是可能的。
在本例中,节点210包括与数据库220-D和220-L(分布的和局部的,分别地)以及网络250通信的数据库管理***218。网络250可以是任何网络,如,例如,图1的网络150。节点210可以类似于图1的节点10。1,虽然替代配置是可能的。在一些实施例中,虽然每个节点包括局部数据库管理***219-L,但只有一个主分布式数据库***219-D的存在。在这种情况下,分布式数据库***219-D控制整个数据库的交互。
数据库管理***218还包括分布式数据库管理***219-D、局部数据库管理***219-L、可选的应用程序219-A。分布式数据库管理***219-D协调访问在各个节点的数据。分布式数据库管理***219-D可以执行一些或全部的后续功能:
1、跟踪数据在分布式数据字典中的所在位置。这包括向开发者和用户呈现逻辑数据库和架构。
2、确定从其检索请求的数据的位置和在其进行处理分布式查询的每个部分而无需开发人员或用户的任何特殊的操作的位置。
3、如果有必要,使用局部DBMS转换在一个节点的请求到另一个合适的节点使用不同的DBMS和数据模型转换到另一个节点,并返回数据到该节点所接受的格式中的请求节点。
4、提供数据管理功能,如安全性,同时性和死锁控制,全局查询优化,以及自动故障记录和恢复。
5、提供贯穿整个远程站点的数据备份之间的一致性(例如,通过使用多相提交协议)。
6、呈现在物理上被分布的单个逻辑数据库。数据的这一观点的衍生物是全局主键控制,意味着关于同一业务对象的数据都与相同主键关联,而无论数据存储在分布式数据库的何处,以及不同对象被与不同的主键相关联。
7、可扩展性。可扩展性是增长、减少规模,并根据企业变革的需要变得更加多样化的能力。因此,分布式数据库必须是动态的,并能够在合理范围内变化,而无需重新设计。可扩展性也意味着,有简便的方法添加新的站点(或订购),并进行初始化(例如,使用复制的数据)。
8、跨分布式数据库的节点对数据和存储程序进行复制。分发存储程序的需要被由同样的原因激活以用于分发数据。
9、透明地使用剩余的计算能力以提高数据库处理的性能。这意味着,例如,当在不同的时间提交时,同一个数据库查询可以在不同的地点并以不同的方式取决于在查询提交时的跨分布式数据库的特定负载进行处理。
10、允许不同节点运行不同的DBMS。中间件(见第9章)可由分布式DBMS进行使用以及各局部DBMS掩盖查询语言的差别和局部数据的细微差别。
11、允许应用程序代码的不同版本位于分布式数据库的不同节点上。在具有多个分布式服务器的大型组织中,每个服务器/节点运行软件的版本相同可能不太现实。
在一个实施例中,每个节点包括局部数据库***219-L和分布式数据库管理***219-D。在图2的例子中,每个站点都有局部DBMS219-L和相关的分布式数据字典/目录(DD/D),局部DBMS219-L管理存储在站点处的局部数据库220-L和分布式DBMS数据库220-D的副本。分布式DD/D包含在网络中的所有数据的位置,以及数据定义。
由用户或应用程序请求的数据首先由分布式数据库管理***219-D进行处理,其决定事务是局部的或全局的。局部事务是要求的数据被完全在局部站点存储在其中的事务。全局事务要求参考在一个或多个非局部站点的数据以满足请求。对于局部事务,分布式数据库管理***219-D将请求传递给局部DBMS219-L。对于全局事务,分布式数据库管理***219-D必要时将请求路由到其他站点。分布式数据库管理***在参与站点根据需要交换消息以协调事务的处理直到它被完成(或中止,如果需要的话)。
图3示出了根据一个实施例的用于使用语义保持转换维护分布式数据库***中的事务一致性的数据库管理***350的部件的框图。数据库管理***350可以是图1的数据库管理***18,虽然替代配置是可能的。
数据库管理***350包括网络接口302、通信模块305、数据库事务接收模块310、数据库事务历史模块315、因果图生成模块320、断言识别/提取模块325、以及全局事务序列模块330。在一个实施例中,数据库管理***350也被接合到数据库345。数据库345可以是图1的数据库20,虽然替代配置是可能的。在部偏离本公开的新颖领域的更多或更少的模块可以被包括。此外,图3的示例中的每个模块可以包括用硬件和/或软件的任何组合来实现的任何数量的子模块和/或***和/或子模块和/或***的组合。
数据库管理***350,虽然示出为由分布式组件(物理分布和/或功能上分布)组成,可以被实现为集体元件。在一些实施例中,一些或所有的模块,和/或由每个模块所代表的功能可以以任何方便的或已知的方式进行组合。此外,由模块所代表的功能可以部分地或全部地在硬件,软件或硬件和软件的组合中被单独或以任何组合来实施,。
在图3的例子中,网络接口302可以是网络设备,其使数据库管理***350用实体介导在网络中数据,该实体在数据库管理***350的外部,通过任何已知的和/或合适的由主机和外部实体支持的通信协议。数据库管理***350可以包括一个或多个网络适配器卡、无线网络接口卡、路由器、接入点、无线路由器、交换机、多层交换机、协议转换器、网关、网桥、网桥路由器、集线器、数字媒体接收器和/或中继器。
数据库管理***350的一个实施例包括通信模块305。通信模块305可以是能够识别、检测、跟踪、管理、接收、记录和/或处理数据访问请求的软件代理和/或硬件模块的任意组合。通信模块305,在操作的时候,能够与网络接口302进行通信以识别、检测、跟踪、管理、接收、记录和/或处理数据访问请求,该数据访问请求包括但不限于来自分布式数据库***中的客户端***和/或其他节点的数据库查询和/或数据库事务从。
数据库管理***350的一个实施例包括数据库事务接收模块310。数据库事务接收模块310可以是能够从客户端设备和其它节点接收和处理数据请求的软件代理和/或硬件组件的任何组合。例如,数据库事务接收模块310被配置为接收和处理来自客户端设备数据库查询和来自***中的其他节点的其他数据请求。数据库事务接收模块310可接着分割、路由,和/或以其它方式处理该请求和/或标识具有数据请求或查询的数据库事务。
数据库管理***350的一个实施例包括数据库事务历史模块315。数据库事务历史模块315可以是能够跟踪和存储历史事务的软件代理和/或硬件组件的任何组合。例如,历史可能包括事务顺序、依赖的假设/断言等。有利的是,架构并不需要包括历史,因为数据库跟踪该信息。
数据库管理***350的一个实施例包括因果关系图形生成模块320。因果关系图形生成模块320可以是能够与事务历史模块315交互以为事务序列中的或由事务序列指示的一个或多个数据库事务生成因果关系图的软件代理和/或硬件组件的任意组合。例如,因果图生成模块320可以基于接收到的数据库查询识别事务序列。如所讨论的,数据库查询指示一个或多个数据库事务。因果图生成模块320可以使用数据库事务信息与数据库事务历史模块315进行交互,以为了识别当前数据库事务所依赖的历史事务以及基于历史信息建立因果关系图。
在一个实施例中,因果关系图形生成模块320生成用于指示每个数据库事务所依赖的一个或多个断言的因果关系图。例如,在一些实施例中,同时控制机制通过在事实之后检测无效使用来控制同时。这些同时控制可分割事务的存在为读取、验证和发布阶段。在读取阶段,该机制从一个或多个关于事务所依赖的假设的潜在价值的分布式数据库资源获取假设,而不考虑那些假设的冲突或有效性。该事务序列本身和/或数据库事务历史模块可能表明一组资源和/或依赖于事务序列中的每个数据库事务的假设。在一些实施例中,断言可以是,例如,数据库键值;虽然替代配置是可能的。
数据库管理***350的一个实施例包括断言识别/提取模块325。断言识别/提取模块325可以是能够识别和/或提取与一个或多个数据库事务相关联的断言的软件代理和/或硬件组件的任何组合。例如,断言识别/提取模块325可以处理数据库事务、事务序列,和/或数据库查询以识别和/或提取数据库事务所依赖的潜在断言。
在一个实施例中,每个数据库事务用一组数据库事务所依赖的假设进行操作。如本文中所述,假设被用断言进行控制,断言可以用来代替锁,以允许操作的交错和增加并行性。断言可以使用各种机制,例如,如本文中所描述的多版本同时控制(MVCC)机制执行一致性。
数据库管理***350的一个实施例包括全局事务序列模块330。全局事务序列模块330可以是能够维护、协调和提交至全局事务序列的的软件代理和/或硬件组件的任意组合。全局事务序列模块330可以维护、协调,以及提价来自个别的数据库序列(例如,来自私人序列)的数据库事务。在该示例中,共享事务序列模块330包括共识引擎332、协调引擎334、语义转换引擎336和提交引擎338。
在一个实施例中,共识引擎332被配置为获得关于每个断言的有效性的分布式数据库***的多个数据库资源之间的共识。多个资源或***可以包括,例如,在分布式数据库***中的节点或数据库管理***。在一个实施例中,本文描述的***和方法可以根据该CAP定理,也被称为布鲁尔定理进行操作。CAP理论指出,分布式计算机***同时保证一致性、可用性和分区容忍性是不可能的。
一致性保证了分布式数据库的所有节点在同一时间看到同一数据。可用性保证每个请求收到有关请求是否成功或失败的响应。分区容忍性保证***继续操作,尽管任意消息丢失。根据CAP定理,分布式***可以同时满足以上保证的任意两个,但不是所有的三个保证。
数据库***上的某些限制维护分布式可扩展的状态,由于,至少部分的,不可靠的处理器。一个解决方案是允许共识。共识是商定一组参与者(或资源)之间的单个结果的过程。共识协议是分布式计算的状态机方法的基础。状态机方法是用于转换算法为容错的,分布式实施的技术。每一个潜在的故障必须有一种方法来处理,以及特设技术常常会留下未解决故障的重大情况。
在一些实施例中,在此描述的***和方法使用共识协议,如,例如,Paxos算法。Paxos算法描述了用于解决不可靠处理器的网络中的共识的协议。当参加者或他们的通信媒介体验故障时,这个问题变得困难。Paxos方法提供了一种技术以确保所有的情况下被安全地处理。然而,这些情况可能仍然需要被单独编码。
Paxos协议定义了许多角色,并通过他们在协议中的角色(客户端、接受者、申请者、学习者、和领导者)描述了过程的动作。在典型的实施例中,单个处理器可以同时扮演一个或多个角色。这并不影响协议的正确性,它通常联合角色以改善在协议中的消息的延时和/或数量。
Paxos协议包括处理器数量之间的权衡的频谱,在学***,发送的消息的数量和故障的类型。然而,没有容错共识协议可以保证进展。
客户端:客户端发出请求至分布式***,并等待响应。例如,在分布式文件服务器中的文件上的写入请求。接受者:接受者充当协议的容错“记忆”的角色。接受者被集合到称为Quorums的组。发送到接受者的任何消息必须被发送到接受者的Quorums,并且从接受者接收到的任何消息被忽略,除非副本是从Quorums中的每个接受者收到的。申请者:申请者倡导客户端请求,试图说服接受者同意,并充当协调器的角色以当发生冲突时向前推进协议。学习者:学习者充当协议的复制因子的角色。一旦客户端请求已由接受者同意,学习者可采取行动(即,执行请求同时送响应至客户端)。为了提高处理的可用性,额外的学习者可以被加入。领导者:领导者是被要求取得进步的杰出的申请者。许多过程可能会认为他们是领导者,但协议只保证进度,如果他们中的一个被最终选择。如果两个过程相信他们是领导者,可能通过不断提出冲突更新来搪塞协议。无论如何安全性能被保存。
在一个实施例中,协调引擎334被配置为通过连续和异步地协调多个事务序列来维护全局事务序列。例如,协调引擎334可以根据潜在的断言协调数据库序列。即,断言可以用来代替锁,以允许数据库事务的交错和增加同时性。
在一个实施例中,语义转换引擎336被配置为处理与事务序列相关联的断言,以产生语义保持转换。语义保持转换可以响应于识别在一个或多个数据库事务中的断言之间的一个或多个不一致而产生。有利的是,语义保持转换可以用于协调其它的不可调和的断言。也就是说,当语义保持转换被应用到一个或多个的其它的不可调和的断言的时候,转换消除了提供协调的不一致性,及数据库事务的序列化。语义保持转换的生成和应用的例子参考图6A-6C进行更详细地讨论。
在一个实施例中,提交引擎338被配置为提交数据库事务至全局事务序列。为确保实时、分布式更新操作的数据完整性,合作事务管理器可以执行提交协议。提交协议是一个良好定义的过程(包括信息的交换),以确保全局事务要么是在每个站点被成功完成,要么被中止。
最广泛使用的协议被称为两阶段提交。两阶段提交协议保证了在多个站点同时事务就好像他们在所有网站使用同一串行顺序被执行一样的被处理。两阶段提交分两期进行。首先,发起全局事务的站点或整体协调站点发送请求到每一个将处理事务的某一部分的站点。每个站点处理该子事务(如果可能的话),但不会立即提交(或存储)结果到局部数据库。相反,结果被存储在临时文件中。此外,每个站点锁定(或禁止他人更新)其正在被更新数据库的部分,当它已经完成了它的子事务时,并通知始发站点。当所有的站点都回应时,始发站点现在启动两阶段提交协议。
在准备阶段,消息被广播到每个参与站点(或节点),询问站点是否愿意在该站点上提交其部分的事务。每个站点都将返回“OK”或“不OK”的消息。“OK”表示远程站点承诺允许发起请求以在远程数据库管理事务。接下来,在提交阶段,始发站点收集来自所有字典的消息。如果一切都是“OK”,它会广播一个消息给所有的站点以提交在每个站点处理的事务的一部分。但是,如果一个或多个响应是“不OK”,它会广播一个消息给所有站点以中止事务。
无人过问的事务可以通过超时或轮询来识别。以超时(指定的时间段没有提交确认),忙碌的或故障的站点之间的区分是不可能的。以网络负载和处理时间而言轮询是昂贵的。用同步分布式数据的两阶段提交策略,提交事务比如果始发站点能够单独工作的速度慢。
数据库管理***350的实施例包括数据库345。数据库345可以存储任何数据项目/条目,该数据项目/条目包括,但不限于,软件,描述性数据,图像,***信息,驱动程序,和/或由数据库管理***和/或任何其它操作***中使用的任何其他数据项。数据库345可以被接合到数据库管理***350。数据库345可以由数据库管理***(DBMS)进行管理,DBMS包括但不限于,Oracle、DB2、Microsoft Access、Microsoft SQL Server和PostgreSQL、MySQL和FileMaker,等等。用户数据储存库128可以通过面向对象技术和/或通过文本文件来实现,并且可以通过分布式数据库管理***、面向对象数据库管理***(OODBMS)(例如,概念库、快速数据库主内存数据库管理***、JDO仪器、对象数据库等)、对象关系型数据库管理***(ORDBMS)(例如,Informix、OpenLink大师、VMDS等)、文件***,和/或任何其它方便的或已知的数据库管理程序包进行管理。
图4描绘了根据一个实施例的说明用于控制在分布式数据库中的事务一致性的示例过程400的流程图。一个或多个数据库管理***,诸如,图1的数据库管理***18,除其他功能之外,控制事务一致性包括维护和/或协调在分布式数据库***中的数据库事务。在一个实施例中,每一个事务序列指示一个或多个未提交的数据库事务以及每个未提交的数据库事务包括要求在分布式数据库***中的多个资源之间达成共识以用于协调的一个或多个断言。
在操作410,数据库管理***从分布式数据库***中的客户端***接收与事务序列相关的数据库事务。例如,数据库管理***可从分布式数据库***中的多个客户端***接收与多个事务序列相关联的数据库事务。每个事务序列指示一个或多个未提交的数据库事务以及每个未提交的数据库事务包括要求在分布式数据库***中的多个资源之间达成共识以用于协调的一个或多个断言。
在一个实施例中,数据库事务可以被接收作为包括一个或多个数据库事务的一个或多个客户端查询的结果。在一些实施例中,数据库查询可以指示由在分布式数据库***中的多个客户端之一上运行的应用程序启动的一个或多个数据库事务。数据库查询可以由在分布式数据库***中的任意数量的数据库管理***接收,然而,图4的例子被参考单个数据库管理***进行讨论。
在一些实施方案中,每个事务序列可能是一个连续的独立序列或线性时间模型,其从个人的观点或客户端上运行的一个或多个应用程序的观点指示数据库事务。个人的观点可能是,例如,客户端***或客户端***的操作者的观点。
在一些实施例中,事务序列可以通过一个图形,如因果图或序列图来表示。因果图和序列图包含有关当前和历史数据库事务或操作,如从客户端***接收到数据库查询的信息。
在一些实施方案中,序列图算法(SGAs)通过计算等效串行顺序来控制暂时重叠事务的同时操作。SGAs视图“排解”由多个事务的操作的令人费解的序列为单一的内聚的执行线程。SGAs通过创建序列图运行。图中的节点对应于***中的事务。图的弧对应等效串行顺序。由于弧被添加到图形,算法寻找周期。如果没有周期,则事务具有一个等效串行顺序以及一致性得到保证。但是,如果发现一个序列周期,则一致性将被放弃,如果在周期中的所有事务被允许提交。在这种情况下,SGA将通过中止形成周期的一个或多个事务来恢复一致性。
在一些实施例中,每个因果图表示客户端***的观点,因此,事务序列指示从客户端发起的所有事务。在其它实施例中,每个客户端***可以具有任意数目的相关联的事务序列。例如,因果图可以表示为从在线交互动游戏的单个玩家感知到的数据库事务。因此,个别事务顺序通过临时(在读取阶段)考虑到仅仅那些有关个别事务序列的数据库事务来提供最终重叠数据库事务的能力。
在识别操作420中,数据库管理***处理数据库事务以识别断言,该断言要求在分布式数据库***中的多个资源之间达成共识以用于协调。如上所讨论的,数据库事务可以包括事务所依赖于的一个或多个断言。
在检测操作430中,数据库管理***检测在与数据库事务相关联的断言之间的一个或多个不一致性,数据库事务与事务序列相关联。例如,数据库管理***可以检测在与来自多个事务序列的两个或更多的事务序列的两个或更多未提交的数据库事务相关联的断言之间的不一致性。不一致性可以指示在关于一个或多个断言的有效性的多个资源之间的共识的缺乏。
在生成操作440中,数据库管理***处理不一致的断言以生成语义保持转换。例如,数据库管理***可以处理与两个或更多事务序列相关联的两个或更多断言以生成语义保持转换。语义保持转换,当被应用到一个或多个的两个或更多断言时,消除了不一致性。
在一个实施例,语义保持转换指示改变至不一致的断言,当被应用到一个或多个断言时,消除了不一致性。
在一个实施例中,语义保持转换被基于和/或使用一组规则以生成语义保持转换。一组规则可以包括用于处理与两个或更多事务序列相关联的不一致的断言的一般化的说明。
最后,在协调操作450中,数据库管理***,通过应用语义保持转换至一个或多个的不一致的断言来协调数据库事务。有利的是,其它不一致的断言可以被协调,即使特定协调程序不存在。
图5根据一个实施例示出了一流程图,其说明了用于使用语义保持转换控制在分布式数据库***中事务一致性的示例性过程500。一个或多个数据库管理***中,诸如,例如,图1的数据库管理***18,在其他功能之间,通过生成和应用语义保持转换来控制、协调和/或以其他方式维护在分布式数据库***中的事务一致性。
在操作502中,数据库管理***从客户端***接收查询。该查询可以指示由客户端***上运行的应用程序启动的一个或多个数据库事务。分布式数据库***可以分布式数据库***中的任意数量的客户端***上运行的任意数量的应用程序接收任意数量的查询,但是,在单个查询的操作和处理被在图5的示例性过程500进行了讨论。
在操作504中,数据库管理***处理查询以识别一个或多个断言,断言要求在分布式数据库内的多个机器(即数据库资源或数据库管理***)之间共识,以为了协调。
在操作506中,数据库管理***查询在***中的被动学习者以识别从被动学习者感知的断言的历史。在一些实施例中,从每个被动学习者感知的断言的历史表示,例如,他们相信数据库密钥是为一个时间序列(特定数据库的事务之前和/或之后的)的值。改变断言的历史被由被动学习者保持,以使***能够最终确定在断言或数据库键的值上的机器(或数据库资源)之间的共识的的最后时间。参考操作512进行更详细的讨论。
在操作508中,数据库管理***参考由在查询中指定的一个或多个数据库事务所依据的断言确定共识是否存在于资源之间。如果共识存在,那么,在操作510中,断言可以被排入或排向在下一个(或更高的)分层等级的下一个事务序列。在某些情况下,下一个事务序列是共享事务序列,但是,下一个事务序列也可以是跨在分布式数据库***中的所有机器复制的全局事务序列。
如果共识不存在,那么,在操作512中,数据库管理***回退到一直存在于所有的被动学习者的历史的断言,直到共识被达成。这个过程在本文中称为“时间旅行”。在操作514中,***确定共识是否能在资源之间被达到,参考由在查询中指定的一个或多个数据库事务所依赖的断言。如果时间旅行期间共识被达成,那么在操作516中,有共识的数据库事务排向到下一序列以及其他事务序列被删除。
如果共识未通过“时间旅行”的过程实现的话,则在操作522中,数据库管理***应用如本文所述的内置一般化的协调程序。有利的是,其他不可调和的数据库事务改变不会被立即抛出,如果断言之间的不一致性被检测到的话。在一些实施例中,用户交互可被用于解决冲突。例如,数据库管理***可查询或以其他方式征求用户反馈以解决冲突。
图6A-6C根据本发明一个实施例描绘了示例图,该示例图示出了在分布式数据库***中的多个事务序之间的中一般化的协调。更具体地,图6A-6C通过生成并应用适当的语义保持转换到潜在断言来说明两个事务序列的协调过程。
在一些实施方案中,事务序列610包括依赖于潜在断言的数据库事务,该断言在提交改变到全局事务序列或中间共享事务序列(未显示)之前被验证。
图6A示出了当不一致性在数据库事务所依赖的一个或多个潜在断言之间发生时的协调数据库事务的例子。在这个例子中,事务序列610-1和610-2在读取阶段获得“X”的值或状态。数据库事务E稍后执行依赖于“X”的值或状态的事务。特别是,在这个例子中,在数据库事务E,事务序列610-1和610-2都相信“X”的值或状态是“5”。在序列610-1中的数据库事务增加1到“X”的值(即X=X+1),以及在序列610-2中的数据库事务将X的值乘以2(即Y=X*2的值)来设置“Y”的值,从而不改变“X”的值。
每个客户端***(或应用程序或用户)随后在数据库事务F执行在“X”的新的值或状态上的另一事务上。在序列610-1中的数据库事务增加1到“X”的值(即X=X+1)以及在序列610-2中的数据库事务增加1到X的值(即X=X+1)。这就导致了不一致性,当被协调时,其最终将需要被解决,因为事务序列610-1有一断言,该断言认为“X”的值为“6”,而事务序列610-2有一断言,该断言认为“X”的值为“5”。
图6B说明在数据库事务E协调断言为全局事务序列620的过程。数据库管理***稍后在数据库事务F识别断言中的不一致性并努力来解决该不一致性。在这个例子中,***认识到,在事务F,各事务序列610-1和610-2被尝试简单地添加1到“X”的值。例如,对应于事务序列610-1和610-2的客户端***的每个用户可能已经简单地点击在用户的Facebook发布上的“喜欢”按钮,因此值“X”仅仅指的是喜欢该发布的人的数量。在这种情况下,数据库事务是第一位的或“X”的当前值是什么并不重要,对该特定发布的喜欢的当前数量实际上是重要的。
因此,***在事务F识别断言的转换以添加1到“X”的值,而不管当前值(即X+=1)。在图6C中,该***应用该转换,从而协调数据库事务。
图7示出了在计算机***700的示例形式中的示意性表示,在其中的一组指令用于使该机器执行在此所讨论的一个或多个方法的任何一个,可被执行。
在另一个实施例中,机器操作作为一个独立的设备或可以被连接(例如,联网)到其它机器。在联网的部署中,机器可以操作在客户端-服务器网络环境中的服务器或机器的能力,或作为在点对点(或分布式)网络环境中的对等机器。
该机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络家电、网络路由器、交换机或桥接器、或能够执行指定将由该机器采取的动作的一组指令(顺序的或其他方式)的任何机器。
虽然机器可读介质被在示例性实施例中示出为单个介质,但是术语“机器可读介质”应当被理解为包括一个单一介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器),其用于存储一个或多个指令集。术语“机器可读介质”还应当被视为包括能够存储,编码或携带一组指令用于由机器执行和导致该机器执行本发明任一所述的一个或多个的方法的任何介质。
通常,被执行以实现本公开的实施例的例程,可以被实现为操作***或特定应用的一部分、组件、程序、对象、模块或称作“计算机程序”的指令序列。计算机程序通常包括在一台计算机内的各种存储器和存储设备中的在不同时间的一个或多个指令集,并且当由计算机中的一个或多个处理器读取和执行时,使得计算机执行操作以执行涉及本公开的各个方面的元素。
此外,虽然实施例已经在全功能的计算机和计算机***的上下文中进行了描述,本领域技术人员将会理解,各种实施例能够被分布为各种形式的程序产品,并且该发明同样适用于不论特定类型的用于实际上实现分发的机器或计算机可读介质。
机器或计算机可读介质的其它例子包括但不限于可记录型介质,诸如易失性和非易失性存储器设备,软盘和其它可移动磁盘,硬盘驱动器,光盘(例如,压缩盘只读只读存储器(CD ROMS),数字多功能盘(DVD)等),等等,以及传输型介质,诸如数字和模拟通信链路。
除非上下文清楚地要求,否则遍及说明书和权利要求书,词语“包括”,“包含”等将被解释为包含的意义,而不是排他或详尽的意义,也就是就是说,在这个意义上“包括,但不限于”。如本文所用,术语“连接”,“耦合”或其任何变体,是指任何连接或耦合,无论是直接的还是间接的,两个或更多元件之间的;元件之间的连接的连接可以是物理的,逻辑的,或它们的组合。此外,“在本文中,、”单词“以上”,“以下”,以及类似含义的词语,在本申请中使用时,应指本申请的整体而非本申请的任何特定部分。如文义许可,在上述详细说明使用单数或复数的话也可以包括复数或单数分别。词语“或”,在提及的两个或多个项目的列表,包括了所有的单词的以下解释:任何在列表中的项目,所有的在列表中的项目,以及该项目的任何组合中列表。
本发明的实施例的以上详细描述并不是为了穷举或者限制本教导为以上公开的精确形式。然而,本公开的上述具体实施例和示例是用于说明的目的,各种等同修改是可能的公开内容的范围之内,因为那些相关领域技术人员将认识。例如,尽管处理或模块以给定的顺序呈现,替代实施例可以具有以下步骤执行例程或采用具有***块,以不同的顺序,并且一些处理或模块可以被删除,移动,添加,细分,组合和/或修改,以提供替代性或子组合。这些处理或模块的每一个可以以多种不同的方式来实现。此外,尽管过程或块有时示为被串联执行,这些过程或块可以改为并行执行,或可以在不同的时间执行。进一步,本文指出的任何特定数字仅仅是示例:替代性实施方式可以采用不同的值或范围。
本文提供的公开内容的教导可以应用于其它***,而不一定是上述***。上面描述的各种实施例的元素和动作可以被组合以提供进一步的实施例。
任何专利和申请以及上面提到的其他参考文献,包括任何可能被列在随附的申请文件,通过引用并入本文。本公开的方面可以修改,如果需要的话,采用本***,功能和上述参考文献的概念提供本公开的再进一步的实施例。
这些和其它的变化可根据上述详细说明被作出。虽然上述说明描述了本发明的某些实施例,并且描述所考虑的最佳模式,上述出现在文本中的无论多么详尽,本教导可以以多种方式实施。***的细节可以在其实施细节上产生相当的变化,同时仍然包含在在此所公开的主题之中。如上所述,当描述本发明的某些特征或方面时使用的特定术语不应被认为暗示该术语在此被重新定义以被限制为任何特定特性,特征,或者与该术语相关联的本发明的方面。在一般情况下,在以下权利要求中使用的术语不应当被解释为限制本公开为在说明书中公开的具体实施例,除非上述详细说明部分明确定义了此种术语。因此,本发明的实际范围不仅包括所公开的实施例,还包括在权利要求下实现或实施的所有等同的方式。
Claims (28)
1.一种在分布式数据库中的一致性控制的方法,所述方法包括:
在数据库管理***,从所述分布式数据库***中的多个客户端***接收与多个事务序列相关联的多个数据库事务,其中每个事务序列指示一个或多个未提交的数据库事务并且每个未提交的数据库事务包括要求在所述分布式数据库***中的多个资源之间达成共识以用于协调的一个或多个断言;
在所述数据库管理***,从所述多个事务序列的两个或更多事务序列检测与两个或更多未提交数据库事务相关联的断言之间的不一致性,其中所述不一致性指示在关于一个或多个所述断言的所述有效性的所述多个资源之间的共识的缺乏;以及
在所述数据库管理***,处理与所述两个或更多事务序列相关联的所述两个或更多断言以产生语义保持转换,其中所述语义保持转换,当被应用到一个或多个的所述两个或更多断言的时候,消除了所述不一致性。
2.如权利要求1所述的方法,进一步包括:
通过将所述语义保持转换应用至所述一个或多个的断言,协调所述数据库事务。
3.如权利要求1所述的方法,其中所述语义保持转换指示改变,当被应用到所述一个或多个断言时,所述改变消除了所述不一致性。
4.如权利要求1所述的方法,其中所述多个事务序列的所述两个或更多事务序列被协调为全局事务序列。
5.如权利要求1所述的方法,进一步包括:
在所述数据库管理***处理一组规则,以生成所述语义保持转换。
6.如权利要求5所述的方法,其中所述一组规则包括用于处理与所述两个或更多事务序列相关联的所述两个或更多断言,以产生所述语义保持转换的一般化的指示。
7.如权利要求1所述的方法,还包括:
在所述数据库管理***发送消息给与所述两个或更多断言相关联的一个或多个的所述客户端***,来请求用户输入用于解决所述不一致性,所述两个或更多断言与所述两个或更多事务序列相关联;以及
在所述数据库管理***接收指示所述用户输入的响应。
8.如权利要求7所述的方法,进一步包括:
在所述数据库管理***处理所述用户输入和与所述两个或更多事务序列相关联的所述两个或更多断言,以生成所述语义保持转换。
9.如权利要求1所述的方法,其中所述资源包括在所述分布式数据库***中的其它数据库管理***。
10.如权利要求1所述的方法,其中所述资源包括在所述分布式数据库***中的存储管理***。
11.一种在分布式数据库***中的一致性控制的方法,所述方法包括:
在数据库管理***,从多个事务序列的两个或更多事务序列检测与两个或更多数据库事务相关联的断言之间的不一致性,其中所述不一致性指示在关于一个或多个的所述断言的所述有效性的所述多个资源之间的共识的缺乏;
在所述数据库管理***,处理与所述两个或更多事务序列相关联的所述两个或更多断言以产生语义保持转换,其中所述语义保持转换,当被应用到一个或多个的所述两个或更多断言的时候,消除了所述不一致性;以及
通过将所述语义保持转换应用到所述一个或多个断言,协调所述未提交的数据库事务。
12.如权利要求11所述的方法,进一步包括:
在所述数据库管理***,从在所述分布式数据库***中的多个客户端***接收与所述多个事务相关联的所述多个数据库事务,其中每个事务序列指示一个或多个未提交的数据库事务以及每个未提交的数据库事务包括要求在所述分布式数据库***中的多个资源之间达成共识以用于协调的一个或多个断言。
13.如权利要求11所述的方法,其中所述语义保持转换指示改变,所述改变当被应用到所述一个或多个断言时消除了所述不一致性。
14.如权利要求11所述的方法,其中所述多个事务序列的所述两个或更多事务序列被协调为全局事务序列。
15.如权利要求11所述的方法,进一步包括:
在所述数据库管理***处理除了所述两个或更多断言之外的一组规则以生成所述语义保持转换。
16.如权利要求15所述的方法,其中所述一组规则包括用于处理与所述两个或多个的事务序列相关联,以产生语义保持变换的两个或多个断言一般化的说明。
17.如权利要求11所述的方法,进一步包括:
在所述数据库管理***发送消息给一个或多个的与所述两个或更多断言相关联的所述客户端***,来请求用户输入用于解决所述不一致性,所述两个或更多断言与所述两个或更多事务序列相关联;以及
在所述数据库管理***接收指示所述用户输入的响应。
18.如权利要求17所述的方法,进一步包括:
在所述数据库管理***处理所述用户输入和与所述两个或更多事务序列相关联的所述两个或更多断言以生成所述语义保持转换。
19.一种数据库管理***,包括:
处理单元;
接口,其配置为从分布式数据库***中的多个客户端***接收与多个事务序列相关联的多个数据库事务,其中每个事务序列指示一个或多个未提交的数据库事务并且每个未提交的数据库事务包括要求在所述分布式数据库***中的多个资源之间达成共识,以用于协调的一个或多个断言;
存储单元,具有存储在其上的指令,其中所述指令,当由所述处理单元执行时,使所述处理单元从所述多个事务序列的两个或更多事务序列检测在与两个或更多未提交的数据库事务相关联的断言之间的不一致性,并处理与所述两个或更多事务序列相关联的所述两个或更多断言,以产生所述语义保持转换,其中所述语义保持转换,当被应用到一个或多个的所述两个或更多断言的时候,消除了所述不一致性。
20.如权利要求19所述的数据库管理***,其中所述不一致性指示在关于一个或多个的所述断言的所述有效性的所述多个资源之间的共识的缺乏。
21.如权利要求19所述的数据库管理***,其中所述指令,当由所述处理单元执行时,还使得所述处理单元能够:
通过将所述语义保持转换应用至所述一个或多个的断言,协调所述数据库事务。
22.如权利要求21所述的数据库管理***,其中所述语义保持转换指示改变,所述改变当被应用到所述一个或多个断言时消除了所述不一致性。
23.如权利要求19所述的数据库管理***,其中所述多个事务序列的所述两个或更多事务序列被协调为全局事务序列。
24.如权利要求19所述的数据库管理***,其中所述指令,当由所述处理单元执行时,还使得所述处理单元能够:
处理除了所述两个或更多断言之外的一组规则以生成所述语义保持转换。
25.如权利要求24所述的数据库管理***,其中所述一组规则包括用于处理与所述两个或多个的事务序列相关联,以产生语义保持变换的两个或多个断言一般化的说明。
26.如权利要求25所述的数据库管理***,其中所述接口被进一步配置为:
发送消息给一个或多个的与所述两个或更多断言相关联的所述客户端***,来请求用户输入用于解决所述不一致性,所述两个或更多断言与所述两个或更多事务序列相关联;以及
接收指示所述用户输入的响应。
27.如权利要求26所述的数据库管理***,其中所述指令,当由所述处理单元执行时,还使得所述处理单元能够:
处理所述用户输入和与所述两个或更多事务序列相关联的所述两个或更多断言,以生成所述语义保持转换。
28.一种数据库管理***,包括:
用于从多个事务序列的两个或更多事务序列检测与两个或更多数据库事务相关联的断言之间的不一致性的装置,其中所述不一致性指示在关于一个或多个所述断言的所述有效性的所述多个资源之间的共识的缺乏;
处理与所述两个或更多事务序列相关联的所述两个或更多断言以产生语义保持转换的装置,其中所述语义保持转换,当被应用到一个或多个的所述两个或更多断言的时候,消除了所述不一致性;以及
通过将所述语义保持转换应用至所述一个或多个的断言,以协调所述数据库事务的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161513932P | 2011-08-01 | 2011-08-01 | |
US61/513,932 | 2011-08-01 | ||
PCT/US2012/049210 WO2013019892A1 (en) | 2011-08-01 | 2012-08-01 | Generalized reconciliation in a distributed database |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103842995A true CN103842995A (zh) | 2014-06-04 |
Family
ID=47627611
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280048364.6A Pending CN103842994A (zh) | 2011-08-01 | 2012-08-01 | 异步分布式数据库管理的***和方法 |
CN201280048371.6A Pending CN103842995A (zh) | 2011-08-01 | 2012-08-01 | 在分布式数据库中的一般化的协调 |
CN201280048368.4A Pending CN103858123A (zh) | 2011-08-01 | 2012-08-01 | 从分层的观点协调分布式数据库 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280048364.6A Pending CN103842994A (zh) | 2011-08-01 | 2012-08-01 | 异步分布式数据库管理的***和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280048368.4A Pending CN103858123A (zh) | 2011-08-01 | 2012-08-01 | 从分层的观点协调分布式数据库 |
Country Status (5)
Country | Link |
---|---|
US (3) | US20130036089A1 (zh) |
EP (3) | EP2740056A4 (zh) |
CN (3) | CN103842994A (zh) |
CA (3) | CA2845306A1 (zh) |
WO (3) | WO2013019892A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110140116A (zh) * | 2016-12-19 | 2019-08-16 | 斯沃尔德斯股份有限公司 | 用于启用事件删除的分布式数据库的方法和设备 |
US10444021B2 (en) | 2016-08-04 | 2019-10-15 | Reification Inc. | Methods for simultaneous localization and mapping (SLAM) and related apparatus and systems |
CN113486089A (zh) * | 2015-08-28 | 2021-10-08 | 斯沃尔德斯股份有限公司 | 用于网络内的分布式数据库的方法和装置 |
US11677550B2 (en) | 2016-11-10 | 2023-06-13 | Hedera Hashgraph, Llc | Methods and apparatus for a distributed database including anonymous entries |
US11681821B2 (en) | 2017-07-11 | 2023-06-20 | Hedera Hashgraph, Llc | Methods and apparatus for efficiently implementing a distributed database within a network |
US11734260B2 (en) | 2015-08-28 | 2023-08-22 | Hedera Hashgraph, Llc | Methods and apparatus for a distributed database within a network |
US11797502B2 (en) | 2015-08-28 | 2023-10-24 | Hedera Hashgraph, Llc | Methods and apparatus for a distributed database within a network |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8332365B2 (en) | 2009-03-31 | 2012-12-11 | Amazon Technologies, Inc. | Cloning and recovery of data volumes |
KR101352959B1 (ko) * | 2011-12-09 | 2014-01-21 | 주식회사 알티베이스 | 메인메모리 데이터베이스 관리 시스템의 액티브 노드 및 스탠바이 노드의 데이터베이스 관리 장치 및 방법 |
JP6033949B2 (ja) * | 2013-02-19 | 2016-11-30 | 株式会社日立製作所 | 情報処理システム |
US9659050B2 (en) * | 2013-08-06 | 2017-05-23 | Sybase, Inc. | Delta store giving row-level versioning semantics to a non-row-level versioning underlying store |
US9367806B1 (en) | 2013-08-08 | 2016-06-14 | Jasmin Cosic | Systems and methods of using an artificially intelligent database management system and interfaces for mobile, embedded, and other computing devices |
CN105829536A (zh) | 2013-08-22 | 2016-08-03 | 纳幕尔杜邦公司 | 用于在不掺入选择性转基因标记的情况下,在植物基因组中产生基因修饰的方法,以及用于这种方法的组合物 |
US9280591B1 (en) * | 2013-09-20 | 2016-03-08 | Amazon Technologies, Inc. | Efficient replication of system transactions for read-only nodes of a distributed database |
US9329950B2 (en) * | 2014-01-01 | 2016-05-03 | International Business Machines Corporation | Efficient fail-over in replicated systems |
US10248682B2 (en) | 2015-02-20 | 2019-04-02 | Scality, S.A. | Object storage system capable of performing snapshots, branches and locking |
US9524302B2 (en) | 2014-03-05 | 2016-12-20 | Scality, S.A. | Distributed consistent database implementation within an object store |
US10296371B2 (en) * | 2014-03-17 | 2019-05-21 | International Business Machines Corporation | Passive two-phase commit system for high-performance distributed transaction execution |
US10404613B1 (en) * | 2014-03-31 | 2019-09-03 | Amazon Technologies, Inc. | Placement of control and data plane resources |
US9785510B1 (en) | 2014-05-09 | 2017-10-10 | Amazon Technologies, Inc. | Variable data replication for storage implementing data backup |
JP5921692B1 (ja) * | 2014-06-03 | 2016-05-24 | 株式会社小松製作所 | 掘削機械の制御システム及び掘削機械 |
US9734021B1 (en) | 2014-08-18 | 2017-08-15 | Amazon Technologies, Inc. | Visualizing restoration operation granularity for a database |
US10291705B2 (en) | 2014-09-10 | 2019-05-14 | Panzura, Inc. | Sending interim notifications for namespace operations for a distributed filesystem |
US10630772B2 (en) | 2014-09-10 | 2020-04-21 | Panzura, Inc. | Maintaining global namespace consistency for a distributed filesystem |
US9613048B2 (en) * | 2014-09-10 | 2017-04-04 | Panzura, Inc. | Sending interim notifications to a client of a distributed filesystem |
US9928264B2 (en) * | 2014-10-19 | 2018-03-27 | Microsoft Technology Licensing, Llc | High performance transactions in database management systems |
GB2532469A (en) * | 2014-11-20 | 2016-05-25 | Ibm | Self-optimizing table distribution with transparent replica cache |
CN104572077B (zh) * | 2014-12-12 | 2018-03-06 | 百度在线网络技术(北京)有限公司 | 数据库事务的处理方法及业务*** |
US10430402B2 (en) * | 2015-01-16 | 2019-10-01 | Red Hat, Inc. | Distributed transaction with dynamic form |
US10255302B1 (en) | 2015-02-27 | 2019-04-09 | Jasmin Cosic | Systems, methods, apparatuses, and/or interfaces for associative management of data and inference of electronic resources |
US9397985B1 (en) | 2015-04-14 | 2016-07-19 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
US10108655B2 (en) * | 2015-05-19 | 2018-10-23 | Ca, Inc. | Interactive log file visualization tool |
JP6498352B2 (ja) * | 2015-07-10 | 2019-04-10 | アビニシオ テクノロジー エルエルシー | 分散型データベースシステムを用いるネットワーク内でデータベースアクセス制御を提供する方法及びアーキテクチャ |
US9529923B1 (en) | 2015-08-28 | 2016-12-27 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US10838827B2 (en) | 2015-09-16 | 2020-11-17 | Richard Banister | System and method for time parameter based database restoration |
US10990586B2 (en) | 2015-09-16 | 2021-04-27 | Richard Banister | System and method for revising record keys to coordinate record key changes within at least two databases |
US10657123B2 (en) | 2015-09-16 | 2020-05-19 | Sesame Software | Method and system for reducing time-out incidence by scoping date time stamp value ranges of succeeding record update requests in view of previous responses |
CN106547781B (zh) * | 2015-09-21 | 2021-06-11 | 南京中兴新软件有限责任公司 | 一种实现分布式事务的方法、装置及数据库服务器 |
US10496630B2 (en) * | 2015-10-01 | 2019-12-03 | Microsoft Technology Licensing, Llc | Read-write protocol for append-only distributed databases |
EP3362560B1 (en) | 2015-10-12 | 2022-08-10 | DuPont US Holding, LLC | Protected dna templates for gene modification and increased homologous recombination in cells and methods of use |
CN106598992B (zh) * | 2015-10-15 | 2020-10-23 | 南京中兴软件有限责任公司 | 数据库的操作方法及装置 |
WO2017069874A1 (en) * | 2015-10-21 | 2017-04-27 | Manifold Technology, Inc. | Event synchronization systems and methods |
US10423493B1 (en) | 2015-12-21 | 2019-09-24 | Amazon Technologies, Inc. | Scalable log-based continuous data protection for distributed databases |
US10567500B1 (en) | 2015-12-21 | 2020-02-18 | Amazon Technologies, Inc. | Continuous backup of data in a distributed data store |
WO2017155715A1 (en) | 2016-03-11 | 2017-09-14 | Pioneer Hi-Bred International, Inc. | Novel cas9 systems and methods of use |
US10956399B1 (en) * | 2016-06-30 | 2021-03-23 | Amazon Technologies, Inc. | Transaction pipelining in a journaled database |
CN107590047B (zh) * | 2016-07-08 | 2021-02-12 | 佛山市顺德区顺达电脑厂有限公司 | Smi信号逾时的监控***及方法 |
US10585696B2 (en) * | 2016-11-08 | 2020-03-10 | International Business Machines Corporation | Predicting transaction outcome based on artifacts in a transaction processing environment |
CN108123979A (zh) * | 2016-11-30 | 2018-06-05 | 天津易遨在线科技有限公司 | 一种在线交流服务器集群架构 |
EP3649558B8 (en) * | 2017-07-06 | 2024-04-17 | Chromaway AB | Method and system for a distributed computing system |
US10970177B2 (en) * | 2017-08-18 | 2021-04-06 | Brian J. Bulkowski | Methods and systems of managing consistency and availability tradeoffs in a real-time operational DBMS |
US11210212B2 (en) | 2017-08-21 | 2021-12-28 | Western Digital Technologies, Inc. | Conflict resolution and garbage collection in distributed databases |
US11210211B2 (en) | 2017-08-21 | 2021-12-28 | Western Digital Technologies, Inc. | Key data store garbage collection and multipart object management |
US10824612B2 (en) | 2017-08-21 | 2020-11-03 | Western Digital Technologies, Inc. | Key ticketing system with lock-free concurrency and versioning |
US11055266B2 (en) | 2017-08-21 | 2021-07-06 | Western Digital Technologies, Inc. | Efficient key data store entry traversal and result generation |
US10754844B1 (en) | 2017-09-27 | 2020-08-25 | Amazon Technologies, Inc. | Efficient database snapshot generation |
US10990581B1 (en) | 2017-09-27 | 2021-04-27 | Amazon Technologies, Inc. | Tracking a size of a database change log |
KR102188667B1 (ko) | 2017-11-01 | 2020-12-08 | 스월즈, 인크. | 고속 카피가능 데이터베이스를 효율적으로 구현하기 위한 방법들 및 장치 |
US11003550B2 (en) * | 2017-11-04 | 2021-05-11 | Brian J. Bulkowski | Methods and systems of operating a database management system DBMS in a strong consistency mode |
US11182372B1 (en) | 2017-11-08 | 2021-11-23 | Amazon Technologies, Inc. | Tracking database partition change log dependencies |
US11269731B1 (en) | 2017-11-22 | 2022-03-08 | Amazon Technologies, Inc. | Continuous data protection |
US11042503B1 (en) | 2017-11-22 | 2021-06-22 | Amazon Technologies, Inc. | Continuous data protection and restoration |
WO2019147412A1 (en) * | 2018-01-26 | 2019-08-01 | Tranquil Data, Inc. | System and method for using policy to achieve data segmentation |
US10621049B1 (en) | 2018-03-12 | 2020-04-14 | Amazon Technologies, Inc. | Consistent backups based on local node clock |
CN110597891B (zh) * | 2018-06-12 | 2022-06-21 | 武汉斗鱼网络科技有限公司 | MySQL聚合为PostgreSQL数据库的设备、***、方法、存储介质 |
US11126505B1 (en) | 2018-08-10 | 2021-09-21 | Amazon Technologies, Inc. | Past-state backup generator and interface for database systems |
FR3086424A1 (fr) * | 2018-09-20 | 2020-03-27 | Amadeus S.A.S. | Traitement d'une sequence d'appels de fonction |
WO2020091841A1 (en) * | 2018-10-30 | 2020-05-07 | Visa International Service Association | Account assertion |
US11042454B1 (en) | 2018-11-20 | 2021-06-22 | Amazon Technologies, Inc. | Restoration of a data source |
CN109977171B (zh) * | 2019-02-02 | 2023-04-28 | 中国人民大学 | 一种保证事务一致性和线性一致性的分布式***和方法 |
JP2022532830A (ja) | 2019-05-22 | 2022-07-20 | スワールズ,インコーポレイテッド | 分散データベース内に状態証明及び台帳識別子を実装するための方法及び機器 |
CN112307113A (zh) * | 2019-07-29 | 2021-02-02 | 中兴通讯股份有限公司 | 一种业务请求消息发送方法及分布式数据库架构 |
US11514079B1 (en) * | 2019-11-27 | 2022-11-29 | Amazon Technologies, Inc. | Peer-based access to distributed database |
US11379464B2 (en) * | 2019-12-12 | 2022-07-05 | Micro Focus Llc | Asymmetric quorum protocol based distributed transaction database consistency control |
US11194769B2 (en) | 2020-04-27 | 2021-12-07 | Richard Banister | System and method for re-synchronizing a portion of or an entire source database and a target database |
CN112214649B (zh) * | 2020-10-21 | 2022-02-15 | 北京航空航天大学 | 一种时态图数据库分布式事务解决*** |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452445A (en) * | 1992-04-30 | 1995-09-19 | Oracle Corporation | Two-pass multi-version read consistency |
JP2708386B2 (ja) | 1994-03-18 | 1998-02-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 同時更新及び複写手順を通して重複データベースを回復させる方法及び装置 |
US5603026A (en) * | 1994-12-07 | 1997-02-11 | Xerox Corporation | Application-specific conflict resolution for weakly consistent replicated databases |
US5978577A (en) | 1995-03-17 | 1999-11-02 | Csg Systems, Inc. | Method and apparatus for transaction processing in a distributed database system |
US5960194A (en) | 1995-09-11 | 1999-09-28 | International Business Machines Corporation | Method for generating a multi-tiered index for partitioned data |
US5806074A (en) | 1996-03-19 | 1998-09-08 | Oracle Corporation | Configurable conflict resolution in a computer implemented distributed database |
US5781912A (en) * | 1996-12-19 | 1998-07-14 | Oracle Corporation | Recoverable data replication between source site and destination site without distributed transactions |
US5864851A (en) * | 1997-04-14 | 1999-01-26 | Lucent Technologies Inc. | Method and system for managing replicated data with enhanced consistency and concurrency |
US5999931A (en) | 1997-10-17 | 1999-12-07 | Lucent Technologies Inc. | Concurrency control protocols for management of replicated data items in a distributed database system |
WO2000007116A1 (de) * | 1998-07-27 | 2000-02-10 | Siemens Aktiengesellschaft | Verfahren, anordnung und satz mehrerer anordnungen zur behebung mindestens einer inkonsistenz in einer datenbankmenge, die eine datenbank sowie mindestens eine kopiedatenbank der datenbank aufweist |
US6203011B1 (en) * | 1999-03-30 | 2001-03-20 | Scientific Games, Inc. | System for administering an interactive transaction in a lottery game |
US6640244B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
US6840861B2 (en) * | 2000-11-20 | 2005-01-11 | Kent Wilcoxson Jordan | Method and apparatus for interactive real time distributed gaming |
US6949022B1 (en) | 2000-11-22 | 2005-09-27 | Trilogy Development Group, Inc. | Distributed secrets for validation of gaming transactions |
US6772152B2 (en) * | 2001-03-22 | 2004-08-03 | International Business Machines Corporation | System and method for mining patterns from a dataset |
EP1788496A3 (en) * | 2001-06-01 | 2007-06-20 | Oracle International Corporation | Consistent read in a distributed database environment |
EP1417595A1 (en) | 2001-06-28 | 2004-05-12 | MySQL AB | A method for concurrency control for a secundary index |
US20030074321A1 (en) | 2001-10-15 | 2003-04-17 | Vidius Inc. | Method and system for distribution of digital media and conduction of electronic commerce in an un-trusted environment |
US7149737B1 (en) | 2002-04-04 | 2006-12-12 | Ncr Corp. | Locking mechanism using a predefined lock for materialized views in a database system |
US7076508B2 (en) * | 2002-08-12 | 2006-07-11 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
US7089253B2 (en) * | 2002-09-13 | 2006-08-08 | Netezza Corporation | Computer method and system for concurrency control using dynamic serialization ordering |
JP4158534B2 (ja) | 2003-01-21 | 2008-10-01 | 修平 西山 | 分散型データベースシステム |
US11392588B2 (en) | 2003-09-04 | 2022-07-19 | Oracle International Corporation | Active queries filter extraction |
US7668904B2 (en) | 2005-07-28 | 2010-02-23 | International Business Machines Corporation | Session replication |
US20070061379A1 (en) * | 2005-09-09 | 2007-03-15 | Frankie Wong | Method and apparatus for sequencing transactions globally in a distributed database cluster |
US7653664B2 (en) * | 2006-11-03 | 2010-01-26 | Microsoft Corporation | Anchor for database synchronization excluding uncommitted transaction modifications |
US7810056B1 (en) * | 2007-02-27 | 2010-10-05 | Cadence Design Systems, Inc. | Method and system for implementing context aware synthesis of assertions |
US7769714B2 (en) * | 2007-11-06 | 2010-08-03 | Oracle International Corporation | Automatic error correction for replication and instantaneous instantiation |
US7895172B2 (en) | 2008-02-19 | 2011-02-22 | Yahoo! Inc. | System and method for writing data dependent upon multiple reads in a distributed database |
RU2016122623A (ru) * | 2010-03-18 | 2018-11-29 | НУОДиБи ИНК. | Система управления базой данных |
US8442962B2 (en) * | 2010-12-28 | 2013-05-14 | Sap Ag | Distributed transaction management using two-phase commit optimization |
US8407195B2 (en) | 2011-03-07 | 2013-03-26 | Microsoft Corporation | Efficient multi-version locking for main memory databases |
EP2780834B1 (en) * | 2011-11-14 | 2020-07-08 | Google LLC | Processing changes to distributed replicated databases |
-
2012
- 2012-08-01 CN CN201280048364.6A patent/CN103842994A/zh active Pending
- 2012-08-01 EP EP12820440.1A patent/EP2740056A4/en not_active Withdrawn
- 2012-08-01 US US13/564,242 patent/US20130036089A1/en not_active Abandoned
- 2012-08-01 CN CN201280048371.6A patent/CN103842995A/zh active Pending
- 2012-08-01 WO PCT/US2012/049210 patent/WO2013019892A1/en active Application Filing
- 2012-08-01 CA CA2845306A patent/CA2845306A1/en not_active Abandoned
- 2012-08-01 US US13/564,147 patent/US20130036105A1/en not_active Abandoned
- 2012-08-01 EP EP12820633.1A patent/EP2740057A4/en not_active Withdrawn
- 2012-08-01 WO PCT/US2012/049206 patent/WO2013019888A1/en active Application Filing
- 2012-08-01 CN CN201280048368.4A patent/CN103858123A/zh active Pending
- 2012-08-01 EP EP12820368.4A patent/EP2740055A4/en not_active Withdrawn
- 2012-08-01 CA CA2845328A patent/CA2845328A1/en not_active Abandoned
- 2012-08-01 CA CA2845312A patent/CA2845312A1/en not_active Abandoned
- 2012-08-01 WO PCT/US2012/049213 patent/WO2013019894A1/en active Application Filing
- 2012-08-01 US US13/564,187 patent/US8805810B2/en active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486089A (zh) * | 2015-08-28 | 2021-10-08 | 斯沃尔德斯股份有限公司 | 用于网络内的分布式数据库的方法和装置 |
US11734260B2 (en) | 2015-08-28 | 2023-08-22 | Hedera Hashgraph, Llc | Methods and apparatus for a distributed database within a network |
US11797502B2 (en) | 2015-08-28 | 2023-10-24 | Hedera Hashgraph, Llc | Methods and apparatus for a distributed database within a network |
US10444021B2 (en) | 2016-08-04 | 2019-10-15 | Reification Inc. | Methods for simultaneous localization and mapping (SLAM) and related apparatus and systems |
US11215465B2 (en) | 2016-08-04 | 2022-01-04 | Reification Inc. | Methods for simultaneous localization and mapping (SLAM) and related apparatus and systems |
US11677550B2 (en) | 2016-11-10 | 2023-06-13 | Hedera Hashgraph, Llc | Methods and apparatus for a distributed database including anonymous entries |
CN110140116A (zh) * | 2016-12-19 | 2019-08-16 | 斯沃尔德斯股份有限公司 | 用于启用事件删除的分布式数据库的方法和设备 |
US11657036B2 (en) | 2016-12-19 | 2023-05-23 | Hedera Hashgraph, Llc | Methods and apparatus for a distributed database that enables deletion of events |
CN110140116B (zh) * | 2016-12-19 | 2023-08-11 | 海德拉哈希图有限责任公司 | 用于启用事件删除的分布式数据库的方法和设备 |
US11681821B2 (en) | 2017-07-11 | 2023-06-20 | Hedera Hashgraph, Llc | Methods and apparatus for efficiently implementing a distributed database within a network |
Also Published As
Publication number | Publication date |
---|---|
CN103842994A (zh) | 2014-06-04 |
CA2845328A1 (en) | 2013-02-07 |
EP2740055A1 (en) | 2014-06-11 |
US20130036105A1 (en) | 2013-02-07 |
EP2740057A1 (en) | 2014-06-11 |
CN103858123A (zh) | 2014-06-11 |
WO2013019894A1 (en) | 2013-02-07 |
US20130036089A1 (en) | 2013-02-07 |
EP2740055A4 (en) | 2015-09-09 |
US20130036106A1 (en) | 2013-02-07 |
WO2013019888A1 (en) | 2013-02-07 |
EP2740056A4 (en) | 2015-09-09 |
EP2740057A4 (en) | 2015-09-09 |
CA2845306A1 (en) | 2013-02-07 |
CA2845312A1 (en) | 2013-02-07 |
EP2740056A1 (en) | 2014-06-11 |
US8805810B2 (en) | 2014-08-12 |
WO2013019892A1 (en) | 2013-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103842995A (zh) | 在分布式数据库中的一般化的协调 | |
US11875400B2 (en) | Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (DLT) | |
US20190354518A1 (en) | Chain mesh network for decentralized transaction systems | |
US20200151017A1 (en) | Event-driven blockchain workflow processing | |
US11030188B2 (en) | Platform for atomic transfer of smart assets within blockchain networks | |
US20190007526A1 (en) | Provisioning multiple network resources | |
US20180081904A1 (en) | Change request visualization in hierarchical systems | |
US11037143B2 (en) | Platform for atomic transfer of smart assets within blockchain networks | |
CN108446976B (zh) | 一种公积金转移方法、计算机可读存储介质及终端设备 | |
CN107194810B (zh) | 资产配置***和操作方法 | |
CN109816501A (zh) | 智能对账***、方法及服务器 | |
US11544266B1 (en) | Methods and systems for efficiently and rapidly generating highly customized cloud-based enterprise software applications | |
US20190042637A1 (en) | Feedback loops for managing profile store synchronization issues | |
Bu et al. | Cross hyperledger fabric transactions | |
US11704726B1 (en) | Systems and methods for bartering services and goods using distributed ledger techniques | |
CN109582734A (zh) | 分布式数据库的一致性解决方法 | |
Cenci et al. | Government Data Interoperability: a Case Study from Academia | |
CN115917578A (zh) | 用于自动暂存和获取房地产谈判的***和方法 | |
EP3213284B1 (en) | Method and system for public and private template sharing | |
CN112070464B (zh) | 项目管理方法、装置、设备及其存储介质 | |
US8504592B2 (en) | Data organization tool and apparatus for remotely managing a meeting | |
Langer et al. | Data Strategy for Exponential Growth | |
Demichev et al. | Provenance metadata management in distributed storages using the Hyperledger blockchain platform | |
US20230131232A1 (en) | Verifying external accounts in real-time using dynamic smart contracts | |
Sabry | Distributed Ledger: Putting the Wealth and Faith in a Mathematical Framework, Free of Politics and Human Error |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140604 |