CN103858123A - 从分层的观点协调分布式数据库 - Google Patents
从分层的观点协调分布式数据库 Download PDFInfo
- Publication number
- CN103858123A CN103858123A CN201280048368.4A CN201280048368A CN103858123A CN 103858123 A CN103858123 A CN 103858123A CN 201280048368 A CN201280048368 A CN 201280048368A CN 103858123 A CN103858123 A CN 103858123A
- Authority
- CN
- China
- Prior art keywords
- transaction sequence
- data base
- transaction
- dbms
- affairs
- 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的美国临时申请,其内容以引用方式被明示地合并于此。
对相关申请的交互引用
本申请涉及题为“Generalized Reconciliation in a DistributedDatabase”,也是由贾森·卢卡斯发明的,于2012年8月1日提交的,代理案号为58520-8007.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可以生成中间共享事务序列来维护多个事务序列的子集之间的事务一致性。DBMS可以提交由中间共享事务序列指示的数据库事务到全局事务序列,但在提交由中间共享事务序列指示的数据库事务到全局事务序列之前,DBMS可以发送指示在所述中间共享事务序列中的一个或多个的所述数据库事务的提交或故障的通知到在启动数据库请求的客户端上的所述应用。
附图说明
图1示出了根据一个实施例的示例性分布式数据库环境的框图,其说明了本发明的各种特征可被用于其内的多个分布式数据库站点和客户端系统。
图2示出了根据本发明一个实施例的本发明的各种特征可被用于其内的分布式数据库环境的示例性节点的框图。
图3示出了根据一个实施例的用于分层地维护在分布式数据库系统中的事务一致性的数据库管理系统的组件的框图。
图4示出了根据一个实施例的流程图,其说明了用于分层地维护在分布式数据库系统中的事务一致性的示例性过程。
图5A和5B示出了根据一个实施例的说明在分布式数据库系统中的中间协调过程的一个例子的图示。
图6A和6B示出了根据一个实施例的说明在分布式数据库系统中的示例性中间协调过程的事务序列。
图7示出了根据本发明一个实施例的在分布式数据库系统中的中间协调过程的例子的图示。
图8示出了根据一个实施例的流程图,其说明了用于分层地维护在分布式数据库系统中的事务一致性的示例性过程。
图9示出了根据一个实施例的在计算机系统的示例形式中的机器的示意性表示,一组指令在计算机系统之内,用于使机器执行在此讨论的任何一个或多个的方法,可被执行。
具体实施方式
公开的系统和方法提供通过从各种观点分层地维护在分布式数据库系统中的事务一致性控制数据库事务的同时性。分层维事务一致性确保在分布式数据库系统中的数据库事务的可串行化并从分布式数据库系统的客户端的观点提高了整体性能(如响应时间)。
本文所描述的分布式数据库系统可以由多个资源或节点组成。在一些实施例中,每个资源或节点有一个系统钟。现有技术的机制通常使用时钟和基于锁定机制控制来自资源的操作或数据库事务的交错。然而,在此描述的分布式数据库资源不依赖于他们的系统时钟,以为了串行化请求的顺序。相反,本发明的目的是基于数据库事务所依赖的潜在断言通过交错数据库事务来提高同时性。如在此所述,每个假设由断言进行控制,该断言可以用来代替锁,以允许操作的交错和增加并行性。在不同的分层观点的数据库事务的交错(或协调)增加了从分布式数据库系统的用户感知到的响应时间。
下面的描述和附图是说明性的,并且不应当被解释为限制性的。许多具体的细节被描述以提供对本发明的彻底理解。然而,在某些情况下,公知的或常规的细节不被描述是为了避免混淆本说明。在本发明中的一个实施例的参考可以是,但不一定是,参考相同的实施例,以及,这样的引用指的是实施例中的至少一个。
在本说明书中参考文献对“一个实施例”或“实施例”意味着特定的特征、结构或连同实施例所描述的特性被包括在本发明的至少一个实施例中。在说明书中各个地方的“在一个实施例中”的短语的出现并不必要的都是指的同一实施例,也不是指单独的或其他实施例的互相排斥的替代实施例。此外,各种特征被描述,其可通过一些实施例而不是其他实施例被展示。同样,各种要求被描述,其可以是一些实施例而不是其他实施例的要求。
在本说明书中使用的术语通常具有本领域中、本发明内容的范围内以及在每个术语使用的特定上下文之内的普通含义。被用于描述本发明的某些术语将在下面或者在说明书的其它地方进行讨论,以为关于本发明描述的实践者提供额外的指导。为方便起见,某些术语可能会被突出显示,例如使用斜体和/或引号。突出显示的使用不会对术语的范围和含义造成影响,在同样的情况下,术语的范围和含义是一样的,不论它是否被突出显示。将理解的是,同样的事物可以以一种以上的方式进行表述。
因此,替代语言和同义词可用于在此所讨论的任何一个或多个的术语,也不是被赋予术语是否被在此阐述或描述的任何特殊的意义。若干术语的同义词被提供。一个或多个同义词的列举不排除使用其他的同义词。包括任何在此讨论的术语的例子的本说明书中的任何位置的例子的使用,仅是说明性的,而不是为了进一步限制本发明的范围和含义或任何示例性术语。同样地,本发明并不限定于在本说明书中给出的各种实施例。
在不意图以进一步限制本发明的范围,根据本发明的实施例的仪器、装置、方法及其相关结果的例子被给定如下。应注意是,标题或副标题为了方便读者可以被使用在实施例中,其绝不应该限制本发明的范围。除非另有定义,在此使用的所有技术和科学术语具有通常由本发明内容所属的领域的普通技术人员的通常理解的相同的含义。在冲突的情况下,以本文件(包括定义)为准。
本发明公开的具体实施方式包括各种步骤,这些步骤将在下面描述。步骤可以通过硬件组件来执行,或者可以被以机器可执行指令体现,其可被用来使以指令编程的通用或专用处理器执行这些步骤。可替换地,这些步骤可以由硬件,软件和/或固件的组合来执行。
本发明的具体实施方式可被提供为计算机程序产品,其可以包括其上存储有指令的机器可读介质,其可被用来对计算机(或其他电子设备)编程以执行过程。该机器可读介质可以包括,但不限于,软盘、光盘、光盘只读存储器(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协议、开放系统互连(OSI)、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。应用程序26可以在客户端25上执行,并可能包括用于调用查询接口22的功能,该查询接口22用于将数据库查询传递到数据库服务器进行处理。应用程序26可调用查询接口22用于从分布式数据库20的数据库表中读出数据或将数据写入到分布式数据库20的数据库表中。在一般情况下,应用程序26和查询接口22可以是任何类型的可解释或可执行软件代码,例如内核组件,应用程序,脚本,链接库,或者具有方法的对象,包括其组合或变体。在一个示例中,应用程序26包括一个多用户交互游戏,但是,可以理解,其它的应用程序也是可能的。
在一些实施例中,一个或多个数据库管理系统18通过异步地和同时地从各个层次观点协调数据库事务为每个客户端系统25维护一个或多个事务序列。该事务序列可以包含一个或多个数据库事务。在操作中,数据库事务可以由客户端系统25内的应用程序26产生并经由由查询接口22产生的查询被转移到关联的数据库管理系统18。如在图1的例子中所示,查询被通过网络150传递并在数据库管理系统18中的一个被接收。
在一些实施例中,每个事务序列可能是一个连续的独立的序列或线性时间模型,其从个人的观点指示数据库事务。个人的观点可以是,例如,在客户端上运行的一个或多个应用程序的观点和/或客户端系统或客户端系统的操作者(例如,用户或玩家)的观点。共享的观点或共享的事务序列可能是从在两个或多个客户端(或者客户端系统或运营商)上运行的两个或多个应用程序感知的观点。
在一些实施例中,事务序列可以通过一个图形,如因果图或序列图来表示。因果图和序列图包含有关当前和历史数据库事务或操作,如从客户端系统接收到数据库查询的信息。
在一些实施例中,数据库管理系统18维护客户端系统25的现关联的事务序列以及异步地和同时地协调事务序列之内的数据库事务,该事务序列具有在分布式数据库系统中接收的其它事务序列中的其他相关数据库事务。
在一些实施例中,每个数据库事务用数据库事务所依赖的一组假设操作。如在此所描述的,假设被断言所控制,该断言可以用来代替锁以允许操作的交错并增加并行性。在一些实施例中,断言使用各种机制执行一致性,该机制例如,例如,多版本同时控制(MVCC)机制。如在此所述,同时控制机制促进在断言是真实的过去寻求时间的能力。这个过程在此称为“时间旅行”,并且被参照图8进行更详细地讨论。
在一些实施例中,数据库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,以及全局事务序列模块340。在一个实施例中,数据库管理系统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包括选择引擎332、生成引擎334、共识引擎336和调节引擎338。
在一个实施例中,选择引擎332被配置为选择多个事务序列的子集,要为其生成中间共享事务序列以连续地和异步地维护事务一致性。选择引擎332可以基于任意数量的因素选择多个事务序列的子集。例如,基于启动一个或多个事务序列的应用程序,多个事务序列的子集的一个或多个事务序列可以被选择。类似地,基于与一个或多个事务序列相关联的一个或多个客户端的地理位置,多个事务序列的子集的一个或多个事务序列可以被选择。同样地,基于与一个或多个事务序列相关联的一个或多个的多个客户端的属性,多个事务序列的子集的一个或多个事务序列可以被选择。
可替换地或另外地,基于应用程序的用户或应用程序本身之间的关系或关联,多个事务序列的子集的一个或多个事务序列可以被选择。例如,每个用户可以具有与在客户端系统上运行的应用程序相关联的用户配置文件。多个事务序列的子集可以基于用户配置文件之间的关系被选择。另外,在一些实施例中,配置文件之间的关系可基于经由应用程序的用户配置文件之间的相互作用。例如,如果线上互动游戏的两个玩家正参与在联盟中且第三用户未参与在联盟中,则与联盟中的这两个用户相关联的事务序列可以被选则。
可替代地或另外地,多个事务序列的子集的一个或多个事务序列可以基于应用程序本身之间的关系或关联被选择。一个或多个事务序列可以基于用户或玩家所使用的应用程序的类型被选择。例如,如果两个用户参与在网上互动游戏中而第三用户没有参与相同在线互动游戏或第三用户参与不同的互动游戏,那么与参与互动游戏的两个用户相关联的事务序列可以被选择用于多个事务序列的子集。可选或另外地,多个事务序列的子集的一个或多个事务序列可以基于在多用户在线互动游戏的社会等级被选择。
在一个实施例中,生成引擎334被配置为生成共享事务序列,以连续地和异步地维护事务一致性。
在一个实施例中,共识引擎336被配置为获得关于每个断言的有效性的多个数据库资源之间的共识。例如,本文描述的系统和方法可以根据该CAP定理,也被称为布鲁尔定理进行操作。CAP理论指出,分布式计算机系统同时保证一致性、可用性和分区容忍性是不可能的。
一致性保证了分布式数据库的所有节点在同一时间看到同一数据。可用性保证每个请求收到有关请求是否成功或失败的响应。分区容忍性保证系统继续操作,尽管任意消息丢失。根据CAP定理,分布式系统可以同时满足以上保证的任意两个,但不是所有的三个保证。
数据库系统上的某些限制维护分布式可扩展的状态,由于,至少部分的,不可靠的处理器。一个解决方案是允许共识。共识是商定一组参与者(或资源)之间的单个结果的过程。共识协议是分布式计算的状态机方法的基础。状态机方法是用于转换算法为容错的,分布式实施的技术。每一个潜在的故障必须有一种方法来处理,以及特设技术常常会留下未解决故障的重大情况。
在一些实施例中,在此描述的系统和方法使用共识协议,如,例如,Paxos算法。Paxos算法描述了用于解决不可靠处理器的网络中的共识的协议。当参加者或他们的通信媒介体验故障时,这个问题变得困难。Paxos方法提供了一种技术以确保所有的情况下被安全地处理。然而,这些情况可能仍然需要被单独编码。
Paxos协议定义了许多角色,并通过他们在协议中的角色(客户端、接受者、申请者、学习者、和领导者)描述了过程的动作。在典型的实施例中,单个处理器可以同时扮演一个或多个角色。这并不影响协议的正确性,它通常联合角色以改善在协议中的消息的延时和/或数量。
Paxos协议包括处理器数量之间的权衡的频谱,在学习约定价值之前消息延迟的数量,个体参与者的活动水平,发送的消息的数量和故障的类型。然而,没有容错共识协议可以保证进展。
客户端:客户端发出请求至分布式系统,并等待响应。例如,在分布式文件服务器中的文件上的写入请求。接受者:接受者充当协议的容错“记忆”的角色。接受者被集合到称为Quorums的组。发送到接受者的任何消息必须被发送到接受者的Quorums,并且从接受者接收到的任何消息被忽略,除非副本是从Quorums中的每个接受者收到的。申请者:申请者倡导客户端请求,试图说服接受者同意,并充当调节器的角色以当发生冲突时向前推进协议。学习者:学习者充当协议的复制因子的角色。一旦客户端请求已由接受者同意,学习者可采取行动(即,执行请求同时送响应至客户端)。为了提高处理的可用性,额外的学习者可以被加入。领导者:领导者是被要求取得进步的杰出的申请者。许多过程可能会认为他们是领导者,但协议只保证进度,如果他们中的一个被最终选择。如果两个过程相信他们是领导者,可能通过不断提出冲突更新来搪塞协议。无论如何安全性能被保存。
在一个实施例中,调节引擎338被配置为通过连续和异步地协调多个事务序列的子集到中间共享事务序列来维护生成的中间共享事务序列。例如,调节引擎338可以在协调和/或以其他方式提交数据库事务到全局事务序列之前,协调被包括在选择的多个数据库事务序列内的数据库事务。数据库事务可以根据潜在的断言被协调。即,断言可以用来代替锁,以允许数据库事务的交错和增加同时性。
数据库管理系统350的一个实施例包括全局事务序列模块340。全局事务序列模块340可以是能够维护、协调,并提交数据库事务到全局事务序列的软件代理和/或硬件组件的任意组合。全局事务序列模块340可以维护、协调,并提交来自一个或多个的生成的共享序列和/或单个的事务序列(例如,来自私人序列)的数据库事务。在这个例子中,全局事务序列模块340包括共识引擎342、调节引擎344和提交引擎346。
在一个实施例中,共识引擎342被配置为实现在分布式数据库系统的多个系统(例如,节点或资源)之间的共识。共识引擎342是类似于共识引擎336,但是,共识引擎342进行操作以实现被包括在多个选择的数据库事务序列的子集内的和不被包括在那些序列内的所有的多个数据库事务之间的共识。
在一个实施方案中,调节引擎344被配置为协调多个数据库事务。调节引擎344可以协调被包括在多个选择的数据库事务序列的子集内的和不被包括在那些序列内的数据库。
在一个实施例中,提交引擎346被配置为提交数据库事务至全局事务序列。有利的是,来自一个或多个中间共享事务序列的数据库事务已经似乎被提交给用户,尽管这些事务可能没有真正被提交直到提交引擎346执行常用操作。为确保实时、分布式更新操作的数据完整性,合作事务管理器可以执行提交协议。提交协议是一个良好定义的过程(包括信息的交换),以确保全局事务要么是在每个站点被成功完成,要么被中止。
最广泛使用的协议被称为两阶段提交。两阶段提交协议保证了在多个站点同时事务就好像他们在所有网站使用同一串行顺序被执行一样的被处理。两阶段提交分两期进行。首先,发起全局事务的站点或整体协调站点发送请求到每一个将处理事务的某一部分的站点。每个站点处理该子事务(如果可能的话),但不会立即提交(或存储)结果到局部数据库。相反,结果被存储在临时文件中。此外,每个站点锁定(或禁止他人更新)其正在被更新数据库的部分,当它已经完成了它的子事务时,并通知始发站点。当所有的站点都回应时,始发站点现在启动两阶段提交协议。
在准备阶段,消息被广播到每个参与站点(或节点),询问站点是否愿意在该站点上提交其部分的事务。每个站点都将返回“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,除其他功能之外,从分层的观点维护和/或协调在分布式数据库系统中的事务一致性。
首先,数据库查询被在分布式数据库系统中的数据库管理系统接收。在操作中,数据库查询可以由在分布式数据库系统中的任意数量的数据库管理系统接收,但是,单个的数据库管理系统是相对于图4的示例进行讨论。在识别操作410中,数据库管理系统基于多个数据库查询识别多个事务序列。在此操作中,每个数据库查询指示由在分布式数据库中的多个客户端之一上运行的应用程序启动的一个或多个数据库事务。
在一些实施方案中,每个事务序列可能是一个连续的独立序列或线性时间模型,其从个人的观点或客户端上运行的一个或多个应用程序的观点指示数据库事务。个人的观点可能是,例如,客户端系统或客户端系统的操作者的观点。
在一些实施例中,事务序列可以通过一个图形,如因果图或序列图来表示。因果图和序列图包含有关当前和历史数据库事务或操作,如从客户端系统接收到数据库查询的信息。
在一些实施方案中,序列图算法(SGAs)通过计算等效串行顺序来控制暂时重叠事务的同时操作。SGAs视图“排解”由多个事务的操作的令人费解的序列为单一的内聚的执行线程。SGAs通过创建序列图运行。图中的节点对应于系统中的事务。图的弧对应等效串行顺序。由于弧被添加到图形,算法寻找周期。如果没有周期,则事务具有一个等效串行顺序以及一致性得到保证。但是,如果发现一个序列周期,则一致性将被放弃,如果在周期中的所有事务被允许提交。在这种情况下,SGA将通过中止形成周期的一个或多个事务来恢复一致性。
在一些实施例中,每个因果图表示客户端系统的观点,因此,事务序列指示从客户端发起的所有事务。在其它实施例中,每个客户端系统可以具有任意数目的相关联的事务序列。例如,因果图可以表示为从在线交互动游戏的单个玩家感知到的数据库事务。因此,个别事务顺序通过临时(在读取阶段)考虑到仅仅那些有关个别事务序列的数据库事务来提供最终重叠数据库事务的能力。
在选择操作420中,数据库管理系统选择多个事务序列的子集。在一个实施例中,多个事务序列的子集的选择可被选择或以其他方式由,例如,应用程序的程序员进行选择,以为了优化用户感知的性能。在一些实施例中,子集可以被任意地选择或基于地理位置选择。在其它实施例中,该子集可被选择以指示一组观点或感知。例如,连续的独立序列的子集,可以根据选择在多用户在线互动游戏中的社会等级被选择。最后,在子集中的独立序列的选择影响信息传播通过分布式数据库的方向和速率。
在生成操作430中,数据库管理系统生成中间共享事务序列以连续地维护在多个事务序列的子集之间的事务一致性。在中间共享事务序列中维护的中间共享事务随后用于通过被跨多个分布式数据库系统资源复制的全局事务序列实现全局事务的一致性。
当中间共享事务序列的生成时,在维护操作440中,数据库管理系统维护中间共享事务序列。在这个例子中,维护中间共享事务序列包含异步协调多个事务序列的子集到中间共享事务序列。有利的是,未提交的数据事务的中间调节从客户端的角度优化了性能,因为在调节期间(即,在验证过程中)排除任何不可解决的矛盾,从客户端的角度来看,事务似乎被提交至跨分布式数据库系统中复制的全局事务序列。
最后,在提交操作450中,数据库管理系统提交在连续序列共享序列中的之前的未提交的数据事务到全局事务序列。
图5A和5B描绘了示出在分布式数据库系统中,如,例如,图1的分布式数据库100的中间调节流程的例子。更具体地,图5A和5B示出了根据一个实施例事务是如何异步地和同时地被协调(和/或被提交)到全局事务序列。图5A和5B的例子通常参照在线游戏环境进步讨论。但是,可以理解,网络游戏环境可以是任何在生成数据库事务的客户端设备上运行的应用程序。
首先参考图5A,其描绘了示例性过程510,过程510说明了无需中级共享事务序列的用于调节的典型的最佳地同时控机制。如上所讨论的,断言可以用来代替锁,以允许操作的交错和增加同时性。在一些实施例中,过程510利用潜在断言来交错从三个事务序列接收到的事务。
更具体地,示例性过程510根据一个实施例示出了代表由在三个客户端系统中的每一个上运行的应用程序启动的数据库事务的三个事务序列的协调过程。在这个例子中,在三个事务序列的每一个中的事务可以由在线互动游戏或应用的用户或玩家的操作来触发;虽然事务可能以其它方式在客户端被触发。
例如,如上面所讨论的,在一些实施例中,乐观机制通过在事实之后检测无效使用控制同时性,通过将事务的存在成为读取、验证和发布阶段。在读取阶段,为玩家1、2和3的事务序列获取假设或断言,而不考虑冲突或有效性。数据库管理系统和/或事务序列本身维护他们使用的一组断言的记录以及他们改变的一组断言。在一些实施例中,断言可以是,例如,数据库键值。
如上所讨论的,数据库事务可以包括任意数量的断言。在验证阶段,断言被检查以确定断言的当前状态是否已经改变。在典型的分布式数据库系统中,如果这个断言已经改变,那么数据库事务依赖的假设或断言是错误的,系统中止事务。然而,在图1的例子。如图5A所示,断言使用各种机制,例如,多版本同时控制(MVCC)机制执行一致性。因此,如本文所公开的,如果数据库事务依赖的假设或断言是错误的,那么在数据库管理系统的同时控制机制,有利于促进在过去期间内寻求时间的能力,在过去中的说法是真实。这个过程是在本文中称为“时间旅行”。
一旦断言验证,该系统发布的数据库事务,在提交(或发布)阶段提交事务的更改。
现在参照图5B,它根据一个实施例描绘了如本文中所描述的示例性中间调节过程520。
在此示例中,与在线互动游戏的玩家相关联的客户端系统上启动的数据库事务是从多个特定观点(即,玩家1和2)到中间共享观点被异步地调节。中间调节过程异步地和连续地在与玩家1和2相关的事务序列之间被调节。在一些实施例中,中间共享事务序列然后通过其关联的事务序列以异步地和连续地使用,例如,该游戏的其他玩家(例如,玩家3)进行调节。数据项或数据库键的更新或更改然后被提交至全局事务序列以用于跨分布式数据库系统的复制。有利的是,共享观点或中间事务序列是从玩家1和2的观点被相对快速地调节(例如,增加的响应时间)。增加的响应时间可提供玩家1和2更好的游戏体验。
图6A和6B根据一个实施例描绘了事务序列,该事务序列说明了在分布式数据库系统中的示例性调节过程610、620。更具体地,中间调节过程610和620示出了分别参照图5A和图5B讨论的示例性事务序列。
首先参考图6A,根据一个实施例,其不使用中间共享事务序列示出了事务序列610-1、610-2以及610-3的调节。事务序列610-1、610-2、610-3包括分别来自图5A的相关联的玩家1、2、3的数据库事务。如上面所讨论的,事务序列依赖于潜在断言必须被验证,以为了协调并最终提交更改到全局事务序列650。
事务序列610-1、610-2以及610-3,每个示出了客户端系统及配置客户端系统的用户(或应用程序)观点。例如,事务序列610-1、610-2、610-3可以示出分别从玩家1、2和3收到数据库事务的线性时间模型。在此示例中,数据库事务C、D、E和F被示出为包括在事务顺序610-1、610-2以及610-3之内。相关的数据库事务具有相应标记。例如,与事务序列610-1相关联的数据库事务被标记为C1-F1,与事务序列610-2相关的数据库事务被标记为C2-F2和与事务序列610-3相关联的数据库事务被标记为C3-F3。此外,在本例中,最旧的数据库事务(例如,第一个由数据库管理系统接收的)被显示在左边,而如你移至右边的事务是最新的。
在此示例中,已被调节成全局事务序列650A的那些数据库事务是用虚线表示。不幸的是,全局调节过程从系统用户(或应用程序)的感知而言可以是相当耗时的,导致看起来具有慢的响应时间的缓慢系统。例如,半秒至一秒或更长的延迟可以给出缓慢的网站或缓慢在线交互式游戏系统的外观。
接下来参考图6B,根据一个实施例,其使用中间共享事务序列说明了事务序列620-1和620-2的调节,伴随有具有事务序列620-3的中间共享事务序列的调节。事务顺序620-1、620-2以及620-3包括分别来自图5A的相关玩家1、2、3的数据库事务。如上面所讨论的,事务序列依赖于潜在断言,其必须被验证,以为了协调并最终提交更改到全局事务序列650。
中间共享事务序列640的介绍改进了(或至少提供感知)在调节期间从第一和第二用户的角度的更快的响应时间,因为共享的事务序列只需要在事务序列610-1和610-2之间被协调,调节过程可能会出现从用户的观点发生更快。
图7根据本发明一个实施例示出了在分布式数据库系统中的中间调节过程的示例700。更具体地讲,调节过程700说明了从不同的层次级别的调节(即,多级中间调节过程)。
在这个例子中,应用程序开发人员(例如,在线游戏开发商)和/或数据库管理系统可以选择任意数量的中间共享事务顺序,其允许调节过程的方向和流程的控制权。在操作中,数据库管理系统标识所选择的事务序列,生成中间共享事务序列,并使用中间共享事务序列分层地维护事务一致性。
图8根据一个实施例示出了一流程图,其说明了用于分层地维护在分布式数据库中事务一致性的示例性过程800。一个或多个数据库管理系统中,诸如,例如,图1的数据库管理系统18,在其他功能之间,分层地维护在分布式数据库系统中的事务一致性。
在操作802中,数据库管理系统从客户端系统接收查询。如上所讨论的,该查询可以指示由客户端系统上运行的应用程序启动的一个或多个数据库事务。分布式数据库系统可以分布式数据库系统中的任意数量的客户端系统上运行的任意数量的应用程序接收任意数量的查询,但是,在单个查询的操作和处理被在图8的示例性过程800进行了讨论。
在操作804中,数据库管理系统处理查询以识别一个或多个断言,断言要求在分布式数据库内的多个机器(即数据库资源或数据库管理系统)之间共识,以为了协调。
在操作806中,数据库管理系统查询在系统中的被动学习者以识别从被动学习者感知的断言的历史。在一些实施例中,从每个被动学习者感知的断言的历史表示,例如,他们相信数据库密钥是为一个时间序列(特定数据库的事务之前和/或之后的)的值。改变断言的历史被由被动学习者保持,以使系统能够最终确定在断言或数据库键的值上的机器(或数据库资源)之间的共识的的最后时间。参考操作512进行更详细的讨论。
在操作808中,数据库管理系统参考由在查询中指定的一个或多个数据库事务所依据的断言确定共识是否存在于资源之间。如果共识存在,那么,在操作810中,断言可以被排入或排向在下一个(或更高的)分层等级的下一个事务序列。在某些情况下,下一个事务序列是共享事务序列,但是,下一个事务序列也可以是跨在分布式数据库系统中的所有机器复制的全局事务序列。
如果共识不存在,那么,在操作812中,数据库管理系统回退到一直存在于所有的被动学习者的历史的断言,直到共识被达成。这个过程在本文中称为“时间旅行”。在操作814中,系统确定共识是否能在资源之间被达到,参考由在查询中指定的一个或多个数据库事务所依赖的断言。如果时间旅行期间共识被达成,那么在操作816中,有共识的数据库事务排向到下一序列以及其他事务序列被删除。
如果共识未能通过“时间旅行”取得一致的话,在过程818中,数据库管理系统确定特定的调节程序是否存在。如果是,在过程820中,断言被调节诶。然而,如果共识不能使用从被动学习者观察到的断言的历史被达成且没有具体调节程序存在,则,在操作822中,数据库管理系统中止该事务。
图9示出了在计算机系统900的示例形式中的示意性表示,在其中的一组指令用于使该机器执行在此所讨论的一个或多个方法的任何一个,可被执行。
在另一个实施例中,机器操作作为一个独立的设备或可以被连接(例如,联网)到其它机器。在联网的部署中,机器可以操作在客户端-服务器网络环境中的服务器或机器的能力,或作为在点对点(或分布式)网络环境中的对等机器。
该机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络家电、网络路由器、交换机或桥接器、或能够执行指定将由该机器采取的动作的一组指令(顺序的或其他方式)的任何机器。
虽然机器可读介质被在示例性实施例中示出为单个介质,但是术语“机器可读介质”应当被理解为包括一个单一介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器),其用于存储一个或多个指令集。术语“机器可读介质”还应当被视为包括能够存储,编码或携带一组指令用于由机器执行和导致该机器执行本发明任一所述的一个或多个的方法的任何介质。
通常,被执行以实现本公开的实施例的例程,可以被实现为操作系统或特定应用的一部分、组件、程序、对象、模块或称作“计算机程序”的指令序列。计算机程序通常包括在一台计算机内的各种存储器和存储设备中的在不同时间的一个或多个指令集,并且当由计算机中的一个或多个处理器读取和执行时,使得计算机执行操作以执行涉及本公开的各个方面的元素。
此外,虽然实施例已经在全功能的计算机和计算机系统的上下文中进行了描述,本领域技术人员将会理解,各种实施例能够被分布为各种形式的程序产品,并且该发明同样适用于不论特定类型的用于实际上实现分发的机器或计算机可读介质。
机器或计算机可读介质的其它例子包括但不限于可记录型介质,诸如易失性和非易失性存储器设备,软盘和其它可移动磁盘,硬盘驱动器,光盘(例如,压缩盘只读只读存储器(CD ROMS),数字多功能盘(DVD)等),等等,以及传输型介质,诸如数字和模拟通信链路。
除非上下文清楚地要求,否则遍及说明书和权利要求书,词语“包括”,“包含”等将被解释为包含的意义,而不是排他或详尽的意义,也就是就是说,在这个意义上“包括,但不限于”。如本文所用,术语“连接”,“耦合”或其任何变体,是指任何连接或耦合,无论是直接的还是间接的,两个或更多元件之间的;元件之间的连接的连接可以是物理的,逻辑的,或它们的组合。此外,“在本文中,、”单词“以上”,“以下”,以及类似含义的词语,在本申请中使用时,应指本申请的整体而非本申请的任何特定部分。如文义许可,在上述详细说明使用单数或复数的话也可以包括复数或单数分别。词语“或”,在提及的两个或多个项目的列表,包括了所有的单词的以下解释:任何在列表中的项目,所有的在列表中的项目,以及该项目的任何组合中列表。
本发明的实施例的以上详细描述并不是为了穷举或者限制本教导为以上公开的精确形式。然而,本公开的上述具体实施例和示例是用于说明的目的,各种等同修改是可能的公开内容的范围之内,因为那些相关领域技术人员将认识。例如,尽管处理或模块以给定的顺序呈现,替代实施例可以具有以下步骤执行例程或采用具有系统块,以不同的顺序,并且一些处理或模块可以被删除,移动,添加,细分,组合和/或修改,以提供替代性或子组合。这些处理或模块的每一个可以以多种不同的方式来实现。此外,尽管过程或块有时示为被串联执行,这些过程或块可以改为并行执行,或可以在不同的时间执行。进一步,本文指出的任何特定数字仅仅是示例:替代性实施方式可以采用不同的值或范围。
本文提供的公开内容的教导可以应用于其它系统,而不一定是上述系统。上面描述的各种实施例的元素和动作可以被组合以提供进一步的实施例。
任何专利和申请以及上面提到的其他参考文献,包括任何可能被列在随附的申请文件,通过引用并入本文。本公开的方面可以修改,如果需要的话,采用本系统,功能和上述参考文献的概念提供本公开的再进一步的实施例。
这些和其它的变化可根据上述详细说明被作出。虽然上述说明描述了本发明的某些实施例,并且描述所考虑的最佳模式,上述出现在文本中的无论多么详尽,本教导可以以多种方式实施。系统的细节可以在其实施细节上产生相当的变化,同时仍然包含在在此所公开的主题之中。如上所述,当描述本发明的某些特征或方面时使用的特定术语不应被认为暗示该术语在此被重新定义以被限制为任何特定特性,特征,或者与该术语相关联的本发明的方面。在一般情况下,在以下权利要求中使用的术语不应当被解释为限制本公开为在说明书中公开的具体实施例,除非上述详细说明部分明确定义了此种术语。因此,本发明的实际范围不仅包括所公开的实施例,还包括在权利要求下实现或实施的所有等同的方式。
Claims (32)
1.一种在分布式数据库中分层地维护事务一致性的方法,所述方法包括:
基于多个数据库,查询在数据库管理系统识别多个事务序列,其中每个数据库查询指示由在所述分布式数据库中的多个客户端之一上运行的应用所启动的一个或多个数据库事务;
在数据库管理系统选择所述多个事务序列的子集;以及
在数据库管理系统生成中间共享事务序列以连续地维护在所述多个事务序列的所述子集之间的事务的一致性,其中在所述中间共享事务序列中维护的中间共享事务随后被用于,经由对于遍及所述分布式数据库的多个资源进行复制的全局事务序列来实现全局事务一致性。
2.如权利要求1所述的方法,进一步包括:
对于遍及所述分布式数据库的所述多个资源,复制所述全局事务序列。
3.如权利要求1所述的方法,其中所述多个事务序列的所述子集的每个事务序列,从所述应用之一的所述观点指示数据库事务的因果历史。
4.如权利要求1所述的方法,进一步包括:
维护所述中间共享事务序列,其中维护所述中间共享事务序列包含异步地协调所述多个事务序列的所述子集到所述中间共享事务序列。
5.如权利要求4所述的方法,其中每个数据库事务包括一个或多个断言,以及协调所述多个事务序列的所述子集到所述中间共享事务序列包括确定所述每个断言的有效性。
6.如权利要求5所述的方法,其中确定所述每个断言的有效性包括在每个事务之内,从源事务一贯地移动到原因事务,直到每个断言被验证。
7.如权利要求1所述的方法,其中所述中间共享事务序列代表如从在所述多个客户端的两个或更多的客户端上操作的两个或更多的应用所感知的观点共享点。
8.如权利要求1所述的方法,其中所述多个事务序列的所述子集的一个或多个事务序列,系基于由一个或多个事务序列启动的所述应用而被选择。
9.如权利要求1所述的方法,其中所述多个事务序列的所述子集的一个或多个事务序列,系基于与所述一个或多个事务序列相关联的一个或多个客户端的地理位置而被选择。
10.如权利要求1所述的方法,其中所述多个事务序列的所述子集的一个或多个事务序列,系基于与所述一个或多个事务序列相关联的一个或多个客户端的属性而被选择。
11.如权利要求1所述的方法,进一步包括:
提交在所述中间共享事务序列中的所述共享事务以维护所述全局事务序列,其中提交所述共享事务到所述全局事务序列包括用在所述分布式数据库中的其他数据库事务,协调在所述中间共享事务序列中的一个或多个的所述共享事务。
12.如权利要求10所述的方法,其中,每个数据库事务包括一个或多个断言,以及协调包括达成在关于所述每个断言的有效性的多个数据库资源之间的共识。
13.如权利要求12所述的方法,其中达成所述共识包括在每个事务序列之内,从源数据库事务一贯地移动到原因数据库事务,直到每个断言被验证。
14.如权利要求10所述的方法,进一步包括:
在提交所述共享事务到所述全局事务序列之前,通知所述应用之一所述相关联的数据库查询被完成。
15.如权利要求10所述的方法,进一步包括:
提交所述多个数据库事务的其他未提交的数据库事务到所述全局事务序列,其中所述其他未提交的数据库事务不在所述中间共享事务序列之中。
16.如权利要求1所述的方法,其中所述多个事务序列的所述子集,系基于第一应用的所述用户之间的关系而被选择。
17.如权利要求16所述的方法,其中每个用户具有与所述第一应用相关联的用户配置文件,并且其中所述多个事务序列的所述子集,系基于所述用户配置文件之间的关系而被选择。
18.如权利要求16所述的方法,其中所述多个事务序列的所述子集,系基于所述第一应用程序的类型而被选择。
19.如权利要求16所述的方法,其中所述第一应用包括多用户在线互动游戏。
20.如权利要求19所述的方法,其中,所述多个事务序列的所述子集,系基于在所述多用户在线互动游戏中的社会等级而被选择。
21.一种数据库管理系统,包括:
处理单元;
接口,其被配置为接收多个数据库查询,其中每个数据库查询指示由在分布式数据库系统中的多个客户端之一上运行的应用所启动的一个或多个数据库事务;
内存单元,其具有存储在其上的指令,其中所述指令,当由所述处理单元执行时,使所述处理单元以基于所述多个数据库查询识别多个事务的序列、选择所述多个事务序列的子集并生成中间共享事务序列,来维护在所述多个事务序列的所述子集之间的事务一致性。
22.如权利要求21所述的数据库管理系统,其中在所述中间共享事务序列中维护的中间共享事务,随后被用于经由对于遍及所述分布式数据库的多个资源进行复制的全局事务序列来实现全局事务一致性。
23.如权利要求21所述的数据库管理系统,其中所述多个资源包括在所述分布式数据库系统中的其它数据库管理系统。
24.如权利要求21所述的数据库管理系统,其中所述多个资源包括在所述分布式数据库系统中的存储管理系统。
25.如权利要求21所述的数据库管理系统,其中所述多个事务序列的所述子集的每个事务序列,从所述应用之一的所述观点指示数据库事务的因果历史。
26.如权利要求21所述的数据库管理系统,其中所述中间共享事务序列代表如从在所述多个客户端的两个或更多的客户端上操作的两个或更多的应用所感知的观点共享点。
27.如权利要求21所述的数据库管理系统,其中所述多个事务序列的所述子集的一个或多个事务序列,系基于由一个或多个事务序列启动的所述应用而被选择。
28.如权利要求21所述的数据库管理系统,其中所述多个事务序列的所述子集的一个或多个事务序列,系基于与所述一个或多个事务序列相关联的一个或多个客户端的地理位置而被选择。
29.如权利要求21所述的数据库管理系统,其中所述多个事务序列的所述子集的一个或多个事务序列,系基于与所述一个或多个事务序列相关联的一个或多个客户端的属性而被选择。
30.一种在分布式数据库系统中分层地维护事务一致性的方法,所述方法包括:
在数据库管理系统从在所述分布式数据库系统中的多个客户端系统接收多个数据库事务,其中每个事务序列指示由在所述多个客户端系统之一上运行的应用所启动的未提交数据库事务;
基于所述多个数据库事务,在数据库管理系统识别多个事务序列,其中每个数据库事务是由在所述分布式数据库系统中的多个客户端之一上运行的应用所启动;
基于第一标准,在数据库管理系统选择所述多个事务序列的子集;
在数据库管理系统生成中间共享事务序列来维护所述多个事务序列的所述子集之间的事务一致性;
提交由所述中间共享事务序列指示的所述数据库事务到全局事务序列;以及
在提交由所述中间共享事务序列指示的所述数据库事务到所述全局事务序列之前,从所述数据库管理系统发送指示在所述中间共享事务序列中的一个或多个的所述数据库事务的提交或故障的通知到在启动数据库请求的客户端上的所述应用。
31.如权利要求30所述的方法,其中所述第一标准包括启动所述多个事务序列的所述子集的所述应用之间的关联。
32.一种数据库管理系统,包括:
用于基于多个数据库查询识别多个事务序列的装置,其中每个数据库查询指示由在所述分布式数据库中的多个客户端之一上运行的应用所启动的一个或多个数据库事务;
用于选择所述多个事务序列的子集的装置,以及
用于生成中间共享事务序列来维持在所述多个事务序列的所述子集之间的事务一致性的装置。
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/049206 WO2013019888A1 (en) | 2011-08-01 | 2012-08-01 | Reconciling a distributed databases from hierarchical viewpoints |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103858123A true CN103858123A (zh) | 2014-06-11 |
Family
ID=47627611
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280048371.6A Pending CN103842995A (zh) | 2011-08-01 | 2012-08-01 | 在分布式数据库中的一般化的协调 |
CN201280048368.4A Pending CN103858123A (zh) | 2011-08-01 | 2012-08-01 | 从分层的观点协调分布式数据库 |
CN201280048364.6A Pending CN103842994A (zh) | 2011-08-01 | 2012-08-01 | 异步分布式数据库管理的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280048371.6A Pending CN103842995A (zh) | 2011-08-01 | 2012-08-01 | 在分布式数据库中的一般化的协调 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280048364.6A Pending CN103842994A (zh) | 2011-08-01 | 2012-08-01 | 异步分布式数据库管理的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US8805810B2 (zh) |
EP (3) | EP2740057A4 (zh) |
CN (3) | CN103842995A (zh) |
CA (3) | CA2845306A1 (zh) |
WO (3) | WO2013019888A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110140116A (zh) * | 2016-12-19 | 2019-08-16 | 斯沃尔德斯股份有限公司 | 用于启用事件删除的分布式数据库的方法和设备 |
CN112307113A (zh) * | 2019-07-29 | 2021-02-02 | 中兴通讯股份有限公司 | 一种业务请求消息发送方法及分布式数据库架构 |
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 (70)
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 | 주식회사 알티베이스 | 메인메모리 데이터베이스 관리 시스템의 액티브 노드 및 스탠바이 노드의 데이터베이스 관리 장치 및 방법 |
US10191915B2 (en) * | 2013-02-19 | 2019-01-29 | Hitachi, Ltd. | Information processing system and data synchronization control scheme thereof |
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 |
EP3611268A1 (en) | 2013-08-22 | 2020-02-19 | E. I. du Pont de Nemours and Company | Plant genome modification using guide rna/cas endonuclease systems and methods of use |
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 |
US9524302B2 (en) | 2014-03-05 | 2016-12-20 | Scality, S.A. | Distributed consistent database implementation within an object store |
US10248682B2 (en) | 2015-02-20 | 2019-04-02 | Scality, S.A. | Object storage system capable of performing snapshots, branches and locking |
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 |
KR101821470B1 (ko) * | 2014-06-03 | 2018-01-23 | 가부시키가이샤 고마쓰 세이사쿠쇼 | 굴삭 기계의 제어 시스템 및 굴삭 기계 |
US9734021B1 (en) | 2014-08-18 | 2017-08-15 | Amazon Technologies, Inc. | Visualizing restoration operation granularity for a database |
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 |
US10291705B2 (en) | 2014-09-10 | 2019-05-14 | Panzura, Inc. | Sending interim notifications for namespace operations for 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 |
AU2016292786B2 (en) | 2015-07-10 | 2019-05-23 | Ab Initio Technology Llc | Method and architecture for providing database access control in a network with a distributed database system |
EP3418915B1 (en) * | 2015-08-28 | 2020-11-25 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US9529923B1 (en) | 2015-08-28 | 2016-12-27 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
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 |
US10838827B2 (en) | 2015-09-16 | 2020-11-17 | Richard Banister | System and method for time parameter based database restoration |
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 |
AU2016338785B2 (en) | 2015-10-12 | 2022-07-14 | E. I. Du Pont De Nemours And Company | 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 |
US10567500B1 (en) | 2015-12-21 | 2020-02-18 | Amazon Technologies, Inc. | Continuous backup of data in a distributed data store |
US10423493B1 (en) | 2015-12-21 | 2019-09-24 | Amazon Technologies, Inc. | Scalable log-based continuous data protection for distributed databases |
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信号逾时的监控系统及方法 |
EP3494447B1 (en) | 2016-08-04 | 2021-05-19 | Reification Inc. | Methods for simultaneous localization and mapping (slam) and related apparatus and systems |
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 | 天津易遨在线科技有限公司 | 一种在线交流服务器集群架构 |
US11334678B2 (en) * | 2017-07-06 | 2022-05-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 |
US10824612B2 (en) | 2017-08-21 | 2020-11-03 | Western Digital Technologies, Inc. | Key ticketing system with lock-free concurrency and versioning |
US11210211B2 (en) | 2017-08-21 | 2021-12-28 | Western Digital Technologies, Inc. | Key data store garbage collection and multipart object management |
US11210212B2 (en) | 2017-08-21 | 2021-12-28 | Western Digital Technologies, Inc. | Conflict resolution and garbage collection in distributed databases |
US11055266B2 (en) | 2017-08-21 | 2021-07-06 | Western Digital Technologies, Inc. | Efficient key data store entry traversal and result generation |
US10990581B1 (en) | 2017-09-27 | 2021-04-27 | Amazon Technologies, Inc. | Tracking a size of a database change log |
US10754844B1 (en) | 2017-09-27 | 2020-08-25 | Amazon Technologies, Inc. | Efficient database snapshot generation |
WO2019089742A1 (en) | 2017-11-01 | 2019-05-09 | Swirlds, Inc. | Methods and apparatus for efficiently implementing a fast-copyable database |
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 |
CN112970234B (zh) | 2018-10-30 | 2023-07-04 | 维萨国际服务协会 | 账户断言 |
US11042454B1 (en) | 2018-11-20 | 2021-06-22 | Amazon Technologies, Inc. | Restoration of a data source |
CN109977171B (zh) * | 2019-02-02 | 2023-04-28 | 中国人民大学 | 一种保证事务一致性和线性一致性的分布式系统和方法 |
WO2020237140A1 (en) | 2019-05-22 | 2020-11-26 | Swirlds, Inc. | Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database |
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 |
US7181453B2 (en) | 2001-06-28 | 2007-02-20 | Mysql Ab | Method for concurrency control for a secondary 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 |
US7146366B2 (en) * | 2002-09-13 | 2006-12-05 | Netezza Corporation | Distributed concurrency control using serialization ordering |
JP4158534B2 (ja) | 2003-01-21 | 2008-10-01 | 修平 西山 | 分散型データベースシステム |
US7962481B2 (en) * | 2003-09-04 | 2011-06-14 | Oracle International Corporation | Query based invalidation subscription |
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 |
EP2548135B1 (en) | 2010-03-18 | 2020-05-13 | NUODB Inc. | Database management system |
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 |
DE202012013469U1 (de) | 2011-11-14 | 2017-01-30 | Google Inc. | Datenverarbeitungsdienst |
-
2012
- 2012-08-01 CN CN201280048371.6A patent/CN103842995A/zh active Pending
- 2012-08-01 US US13/564,187 patent/US8805810B2/en active Active
- 2012-08-01 EP EP12820633.1A patent/EP2740057A4/en not_active Withdrawn
- 2012-08-01 US US13/564,147 patent/US20130036105A1/en not_active Abandoned
- 2012-08-01 CN CN201280048368.4A patent/CN103858123A/zh active Pending
- 2012-08-01 CN CN201280048364.6A patent/CN103842994A/zh active Pending
- 2012-08-01 US US13/564,242 patent/US20130036089A1/en not_active Abandoned
- 2012-08-01 WO PCT/US2012/049206 patent/WO2013019888A1/en active Application Filing
- 2012-08-01 CA CA2845306A patent/CA2845306A1/en not_active Abandoned
- 2012-08-01 WO PCT/US2012/049210 patent/WO2013019892A1/en active Application Filing
- 2012-08-01 EP EP12820368.4A patent/EP2740055A4/en not_active Withdrawn
- 2012-08-01 WO PCT/US2012/049213 patent/WO2013019894A1/en active Application Filing
- 2012-08-01 CA CA2845312A patent/CA2845312A1/en not_active Abandoned
- 2012-08-01 CA CA2845328A patent/CA2845328A1/en not_active Abandoned
- 2012-08-01 EP EP12820440.1A patent/EP2740056A4/en not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
CN112307113A (zh) * | 2019-07-29 | 2021-02-02 | 中兴通讯股份有限公司 | 一种业务请求消息发送方法及分布式数据库架构 |
Also Published As
Publication number | Publication date |
---|---|
US20130036106A1 (en) | 2013-02-07 |
WO2013019892A1 (en) | 2013-02-07 |
US20130036089A1 (en) | 2013-02-07 |
CA2845312A1 (en) | 2013-02-07 |
CA2845328A1 (en) | 2013-02-07 |
EP2740057A4 (en) | 2015-09-09 |
CN103842994A (zh) | 2014-06-04 |
CA2845306A1 (en) | 2013-02-07 |
US8805810B2 (en) | 2014-08-12 |
EP2740057A1 (en) | 2014-06-11 |
EP2740055A1 (en) | 2014-06-11 |
WO2013019894A1 (en) | 2013-02-07 |
EP2740055A4 (en) | 2015-09-09 |
WO2013019888A1 (en) | 2013-02-07 |
EP2740056A4 (en) | 2015-09-09 |
EP2740056A1 (en) | 2014-06-11 |
CN103842995A (zh) | 2014-06-04 |
US20130036105A1 (en) | 2013-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103858123A (zh) | 从分层的观点协调分布式数据库 | |
Chacko et al. | Why do my blockchain transactions fail? a study of hyperledger fabric | |
EP4254183A1 (en) | Transaction processing method and apparatus, computer device, and storage medium | |
US20190007526A1 (en) | Provisioning multiple network resources | |
CN110417844A (zh) | 使用区块链分散管理多所有者节点的系统和方法 | |
US20190251080A1 (en) | Platform for atomic transfer of smart assets within blockchain networks | |
US20120143951A1 (en) | System and method for providing a platform as a service (paas) with a materialized shared space | |
CN108446976B (zh) | 一种公积金转移方法、计算机可读存储介质及终端设备 | |
US20220222590A1 (en) | Blockchain-based room inventory management system and method | |
CN101958848A (zh) | 具有协作约束的社交社区生成的回答系统 | |
CN105320722A (zh) | 确保分布式存储系统中导出数据的一致性 | |
Witten et al. | Liveware: A new approach to sharing data in social networks | |
CN109582734A (zh) | 分布式数据库的一致性解决方法 | |
Bu et al. | Cross hyperledger fabric transactions | |
US11704726B1 (en) | Systems and methods for bartering services and goods using distributed ledger techniques | |
US20120324074A1 (en) | Workflow processes and systems | |
Reddy et al. | A nonblocking transaction data flow graph based protocol for replicated databases | |
Ibrahim | Mobile transaction processing for a distributed war environment | |
Demichev et al. | Provenance metadata management in distributed storages using the Hyperledger blockchain platform | |
Singh et al. | Agreement protocols for a dataspace system | |
US20230131232A1 (en) | Verifying external accounts in real-time using dynamic smart contracts | |
US8504592B2 (en) | Data organization tool and apparatus for remotely managing a meeting | |
Huo et al. | Research on Social Networks Based on Blockchain | |
Sabry | Distributed Ledger: Putting the Wealth and Faith in a Mathematical Framework, Free of Politics and Human Error | |
Sutra et al. | Decentralised commitment for optimistic semantic replication |
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: 20140611 |