CN103842994A - 异步分布式数据库管理的系统和方法 - Google Patents
异步分布式数据库管理的系统和方法 Download PDFInfo
- Publication number
- CN103842994A CN103842994A CN201280048364.6A CN201280048364A CN103842994A CN 103842994 A CN103842994 A CN 103842994A CN 201280048364 A CN201280048364 A CN 201280048364A CN 103842994 A CN103842994 A CN 103842994A
- Authority
- CN
- China
- Prior art keywords
- data base
- transaction
- dbms
- distributed data
- management system
- 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的共同未决的美国专利申请____________,其内容以引用的方式被明示地合并于此。
本申请涉及题为“Generalized Reconciliation in a DistributedDatabase”,也是由贾森·卢卡斯发明的,于2012年8月1日提交的,代理案号为58520-8007.US01的共同未决的美国专利申请___________,其的内容以引用的方式被明示地合并于此。
技术领域
本发明的具体实施例一般涉及数据库管理技术以及,更具体地说,异步分布式数据库管理。
背景技术
分布式数据库是一种不是所有的存储装置都被连接到共同的中央处理单元(CPU)的数据库。分布式数据库可以被存储在位于同一物理位置的多台计算机中,或可以分散在处于多个物理位置的互连的计算机网络。分布式系统的位置或场所可能分布在大的区域(如美国或世界),或在一个小的区域(如建筑物或校园)。在分布式数据库中的数据集合也可以分布在多个物理位置。
通常情况下,分布式数据库系统的目的是让很多用户(客户端或应用)在相同时间的数据集合中的相同信息的使用,同时使它看起来好像每个用户独占访问整个数据集合。分布式数据库系统应以性能的损失最小(潜伏期)和最大事务吞吐量来提供这项服务。也就是说,在位置A的用户必须能够访问(也许更新)在位置B的数据。如果用户更新信息,该更新必须被整个传播分布式数据库系统的资源以维护在分布式数据库系统中的一致性。
更新(或数据库事务)都必须在分布式数据库系统中串行化以维护一致性。如果事务以串行顺序被执行,同时冲突永远不会发生,因为每一个事务将是在特定时间的系统上被执行的唯一事务,并有专用的系统资源。新的事务将看到以前事务的结果,再加上由该事务作出的变化,但永远不会看到那些尚未启动的事务的结果。在操作中,事务通常同时执行,并且要求到相同资源的同时访问和修改。因此,维护在分布式数据库系统中的一致性可能非常复杂并且经常导致不可接受的响应时间。
当前存在各种同时控制机制,例如,开放式同时控制机制,其通过事后检测无效使用进行操作。这些类型的机制的基本思想是把数据库事务的生命周期分为三个阶段:读取、验证和发布。在读阶段,事务获取资源而不计冲突或有效性,但它维护它采时用的资源集合(读集)的纪录和它已经修改资源集合(写集)。在验证阶段,开放式同时控制机制检查事务的读集,并决定那些资源的当前状态是否已经改变。如果读集并没有改变,那么事务的开放式的假设被证实是正确的,并且系统发布写集,提交事务的更改。如果读集有变化,那么事务的开放式假设被证明是错误的,并且系统将中止导致所有更改的损失的事务。
不幸的是,在一些高度分布式数据库中,远程事件和连续异步协调可以暂时建立不一致性,其导致假设被证明是暂时错误的事务的不必要的中止。
发明内容
本发明的实施例包括异步分布式数据库管理的系统和方法。在一个实施例中,系统和方法等待执行和/或更新数据库事务或命令,直到特定的条件得到满足,从单个表达式的赋值中的更新时间分离读取时间,相应地,在此描述的系统和方法可以,在某些情况下,解决暂时的不一致性,而无需中止和/或以其他方式终止数据库事务,该数据库事务将以其他方式被中止。
根据各种实施例,数据库管理系统(DBMS)通过从分布式数据库系统中的多个客户端系统接收与事务序列相关联的数据库事务,异步地管理分布式数据库,其中数据库事务包括一个或多个断言,轮询关于被包括在数据库事务中的一个或多个断言的有效性的多个数据库资源以达成共识,以及如果共识被在超时时间间隔内达成,基于达成共识,在数据库管理系统更新在分布式数据库系统中的数据库事务,其中共识最初并未在多个数据库资源之间被达成。
在一个实施例中,DBMS通过通知在所述分布式数据库中的所述客户端,如果所述共识未在所述超时时间内被达成,则所述数据库事务被中止来异步地管理分布式数据库。
在一个实施例中,数据库事务是由在客户端上运行的应用程序启动。
在一个实施例中,DBMS通过在更新分布式数据库系统之前,通知所述客户端所述数据库事务已经被成功完成。
在一个实施例中,超时时间间隔包括时间的半秒和3秒之间的持续时间和小于半秒的持续时间。
在一个实施例中,其中更新所述分布式数据库系统进一步包括异步地协调所述数据库事务与在所述分布式数据库系统中的一个或多个其他数据库事务。
在一个实施例中,DBMS通过在更新分布式数据库系统之前,从分布式数据库系统读取相关于数据库事务的信息,和传送信息给客户端,而不论共识是否已经被达到来异步管理分布式数据库。
在一个实施例中,DBMS通过在数据库管理系统从在分布式数据库系统中的第二客户端接收与第二事务序列相关联的第二数据库事务来异步管理分布式数据库,其中第二数据库事务包括一个或多个第二断言,并且其中一个或多个第二断言要求读取与数据库事务相关的信息。
在一个实施例中,其中更新分布式数据库系统进一步包括提交数据库事务至全局事务序列,以及遍及分布式数据库的多个数据库资源复制全局事务序列。
在一个实施例中,DBMS通过确定所述共识可以被达成的可能性来异步管理数据库。
在一个实施例中,DBMS通过基于共识可以被达成的可能性,在数据库管理系统设置超时时间间隔来异步管理数据库。
在一个实施例中,多个数据库资源包括在分布式数据库系统中的一个或多个其它数据库管理系统或在分布式数据库系统中的一个或多个存储管理系统。
根据各种实施例中,DBMS通过从分布式数据库系统中的客户端接收与事务序列相关联的数据库事务来异步管理分布式数据库,其中数据库事务包括一个或多个断言,处理数据库事务以识别一个或多个断言,其中一个或多个断言必须有特定的配置以便更新在分布式数据库系统中的数据库事务,在第一时间在数据库管理系统确定关于一个或多个断言的多个数据库资源之间的第一配置,其中第一配置不同于特定配置,以及如果关于一个或多个断言的多个数据库资源之间的第二配置与在第二时间的特定配置是一样的,在数据库管理系统在第二时间更新在分布式数据库系统中的数据库事务。
在一个实施例中,特定配置要求所述一个或多个断言是有效的。
根据各种实施例,DBMS可以异步管理分布式数据库。DBMS可以包括处理单元、接口和内存单元。接口可以从分布式数据库系统中的客户端系统接收与事务序列相关联的数据库事务,其中数据库事务包括一个或多个断言。内存储单元可以具有存储在其上的指令,其中当指令由处理单元执行时,使处理单元处理数据库事务以确定一个或多个断言,其中一个或多个断言必须具有特定配置,以便更新在分布式数据库系统中的数据库事务,在第一时间确定关于一个或多个断言的多个数据库资源之间的第一配置,其中第一配置不同于特定配置,并且如果在关于一个或多个断言的多个数据库资源之间的第二配置与在第二时间的特定配置相同,则在第二时间更新全局事务序列中的数据库事务。
附图说明
图1根据一个实施例示出了示例性分布式数据库环境的框图,其说明了本发明的各种特征可被用于其内的多个分布式数据库站点和客户端系统。
图2根据本发明一个实施例示出了本发明的各种特征可被用于其内的分布式数据库环境的示例性节点的框图。
图3示出了根据一个实施例的异步分布式数据库管理的数据库管理系统的组件的框图。
图4根据一个实施例示出了流程图,其说明了异步分布式数据库管理的示例性过程。
图5根据一个实施例描述了流程图,其说明了异步分布式数据库管理的示例性过程。
图6根据一个实施例描述了流程图,其说明了异步分布式数据库管理的示例性过程。
图7根据本发明一个实施例示出了说明数据库环境的组件的示例性操作的序列图
图8示出了根据一个实施例的在计算机系统的示例形式中的机器的示意性表示,一组指令在计算机系统之内,用于使机器执行在此讨论的任何一个或多个的方法,可被执行。
具体实施方式
异步分布式数据库管理的系统和方法被在此进行描述。特别地,数据库命令或事务通常被在一组特定的现有条件之上被断定。如果条件存在,则该命令可以成功实施。然而,如果条件不立即存在,则该命令被终止,并生成错误代码。命令或数据库事务的立即终止在大型的、高度分布式数据库中是尤其严重的问题,其中远程事件和持续协调往往造成暂时的不一致。因此,本文所述的系统和方法等待执行或更新数据库事务,直到特定的一组条件被满足。
在一个实施例中,数据库事务可以包括事务所依赖的一个或多个断言。通常情况下,断言必须具有特定的配置或有效的,以便被更新和/或协调为全局事务序列。无效的断言导致在数据库中的可以是临时的不一致性。有利的是,本文所述的系统和方法可以在某些情况下,解决暂时的不一致性,而无需中止和/或以其他方式终止数据库事务。
在一个实施例中,该目标可通过从单个表达式的赋值中的更新时间分离读出时间来完成。可以理解的是,在一些实施例中,命令或数据库事务可能因其他原因而超时。
下面的描述和附图是说明性的,并且不应当被解释为限制性的。许多具体的细节被描述以提供对本发明的彻底理解。然而,在某些情况下,公知的或常规的细节不被描述是为了避免混淆本说明。在本发明中的一个实施例的参考可以是,但不一定是,参考相同的实施例,以及,这样的引用指的是实施例中的至少一个。
在本说明书中参考文献对“一个实施例”或“实施例”意味着特定的特征、结构或连同实施例所描述的特性被包括在本发明的至少一个实施例中。在说明书中各个地方的“在一个实施例中”的短语的出现并不必要的都是指的同一实施例,也不是指单独的或其他实施例的互相排斥的替代实施例。此外,各种特征被描述,其可通过一些实施例而不是其他实施例被展示。同样,各种要求被描述,其可以是一些实施例而不是其他实施例的要求。
在本说明书中使用的术语通常具有本领域中、本发明内容的范围内以及在每个术语使用的特定上下文之内的普通含义。被用于描述本发明的某些术语将在下面或者在说明书的其它地方进行讨论,以为关于本发明描述的实践者提供额外的指导。为方便起见,某些术语可能会被突出显示,例如使用斜体和/或引号。突出显示的使用不会对术语的范围和含义造成影响,在同样的情况下,术语的范围和含义是一样的,不论它是否被突出显示。将理解的是,同样的事物可以以一种以上的方式进行表述。
因此,替代语言和同义词可用于在此所讨论的任何一个或多个的术语,也不是被赋予术语是否被在此阐述或描述的任何特殊的意义。若干术语的同义词被提供。一个或多个同义词的列举不排除使用其他的同义词。包括任何在此讨论的术语的例子的本说明书中的任何位置的例子的使用,仅是说明性的,而不是为了进一步限制本发明的范围和含义或任何示例性术语。同样地,本发明并不限定于在本说明书中给出的各种实施例。
在不意图以进一步限制本发明的范围,根据本发明的实施例的仪器、装置、方法及其相关结果的例子被给定如下。应注意的是,标题或副标题为了方便读者可以被使用在实施例中,其绝不应该限制本发明的范围。除非另有定义,在此使用的所有技术和科学术语具有通常由本发明内容所属的领域的普通技术人员的通常理解的相同的含义。在冲突的情况下,以本文件(包括定义)为准。
本发明公开的具体实施方式包括各种步骤,这些步骤将在下面描述。步骤可以通过硬件组件来执行,或者可以被以机器可执行指令体现,其可被用来使以指令编程的通用或专用处理器执行这些步骤。可替换地,这些步骤可以由硬件,软件和/或固件的组合来执行。
本发明的具体实施方式可被提供为计算机程序产品,其可以包括其上存储有指令的机器可读介质,其可被用来对计算机(或其他电子设备)编程以执行过程。该机器可读介质可以包括,但不限于,软盘、光盘、光盘只读存储器(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。应用程序26可以在客户端25上执行,并可能包括用于调用查询接口22的功能,该查询接口22用于将数据库查询传递到数据库服务器进行处理。应用程序26可调用查询接口22用于从分布式数据库20的数据库表中读出数据或将数据写入到分布式数据库20的数据库表中。在一般情况下,应用程序26和查询接口22可以是任何类型的可解释或可执行软件代码,例如内核组件,应用程序,脚本,链接库,或者具有方法的对象,包括其组合或变体。在一个示例中,应用程序26包括一个多用户交互游戏,但是,可以理解,其它的应用程序也是可能的。
在一些实施例中,一个或多个数据库管理系统18通过异步地和同时地从各个层次观点协调数据库事务为每个客户端系统25维护一个或多个事务序列。该事务序列可以包含一个或多个数据库事务。在操作中,数据库事务可以由客户端系统25内的应用程序26产生并经由由查询接口22产生的查询被转移到关联的数据库管理系统18。如在图1的例子中所示,查询被通过网络150传递并在数据库管理系统18中的一个被接收。
在一些实施例中,每个事务序列可能是一个连续的独立的序列或线性时间模型,其从个人的观点指示数据库事务。个人的观点可以是,例如,在客户端上运行的一个或多个应用程序的观点和/或客户端系统或客户端系统的操作者(例如,用户或玩家)的观点。
在一些实施例中,事务序列可以通过一个图形,如因果图或序列图来表示。因果图和序列图包含有关当前和历史数据库事务或操作,如从客户端系统接收到数据库查询的信息。
在一些实施例中,数据库管理系统18维护客户端系统25的现关联的事务序列以及异步地和同时地协调事务序列之内的数据库事务,该事务序列具有在分布式数据库系统中接收的其它事务序列中的其他相关数据库事务。
在一些实施例中,每个数据库事务用数据库事务所依赖的一组假设操作。如在此所描述的,假设被断言所控制,该断言可以用来代替锁以允许操作的交错并增加并行性。在一些实施例中,断言使用各种机制执行一致性,该机制例如,例如,多版本同时控制(MVCC)机制。如在此所述,同时控制机制促进在断言是真实的过去寻求时间的能力。这个过程在此称为“时间旅行”,并且被参照图6进行更详细地讨论。
在一些实施例中,数据库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、轮询引擎333、协调引擎334、通知引擎335和更新/提交引擎336。
在一个实施例中,共识引擎332被配置为获得关于每个断言的有效性的分布式数据库系统的多个数据库资源之间的共识。多个资源或系统可以包括,例如,在分布式数据库系统中的节点或数据库管理系统。在一个实施例中,本文描述的系统和方法可以根据该CAP定理,也被称为布鲁尔定理进行操作。CAP理论指出,分布式计算机系统同时保证一致性、可用性和分区容忍性是不可能的。
一致性保证了分布式数据库的所有节点在同一时间看到同一数据。可用性保证每个请求收到有关请求是否成功或失败的响应。分区容忍性保证系统继续操作,尽管任意消息丢失。根据CAP定理,分布式系统可以同时满足以上保证的任意两个,但不是所有的三个保证。
数据库系统上的某些限制维护分布式可扩展的状态,由于,至少部分的,不可靠的处理器。一个解决方案是允许共识。共识是商定一组参与者(或资源)之间的单个结果的过程。共识协议是分布式计算的状态机方法的基础。状态机方法是用于转换算法为容错的,分布式实施的技术。每一个潜在的故障必须有一种方法来处理,以及特设技术常常会留下未解决故障的重大情况。
在一些实施例中,在此描述的系统和方法使用共识协议,如,例如,Paxos算法。Paxos算法描述了用于解决不可靠处理器的网络中的共识的协议。当参加者或他们的通信媒介体验故障时,这个问题变得困难。Paxos方法提供了一种技术以确保所有的情况下被安全地处理。然而,这些情况可能仍然需要被单独编码。
Paxos协议定义了许多角色,并通过他们在协议中的角色(客户端、接受者、申请者、学习者、和领导者)描述了过程的动作。在典型的实施例中,单个处理器可以同时扮演一个或多个角色。这并不影响协议的正确性,它通常联合角色以改善在协议中的消息的延时和/或数量。
Paxos协议包括处理器数量之间的权衡的频谱,在学习约定价值之前消息延迟的数量,个体参与者的活动水平,发送的消息的数量和故障的类型。然而,没有容错共识协议可以保证进展。
客户端:客户端发出请求至分布式系统,并等待响应。例如,在分布式文件服务器中的文件上的写入请求。接受者:接受者充当协议的容错“记忆”的角色。接受者被集合到称为Quorums的组。发送到接受者的任何消息必须被发送到接受者的Quorums,并且从接受者接收到的任何消息被忽略,除非副本是从Quorums中的每个接受者收到的。申请者:申请者倡导客户端请求,试图说服接受者同意,并充当调节器的角色以当发生冲突时向前推进协议。学习者:学习者充当协议的复制因子的角色。一旦客户端请求已由接受者同意,学习者可采取行动(即,执行请求同时送响应至客户端)。为了提高处理的可用性,额外的学习者可以被加入。领导者:领导者是被要求取得进步的杰出的申请者。许多过程可能会认为他们是领导者,但协议只保证进度,如果他们中的一个被最终选择。如果两个过程相信他们是领导者,可能通过不断提出冲突更新来搪塞协议。无论如何安全性能被保存。
在一个实施例中,轮询引擎333被配置为轮询或以其它方式连续地反复(例如,多于一次),和/或周期性地生成被发送到共识引擎332的触发以轮询有关被包括在数据库事务内的一个或多个断言的有效性的数据库资源。
在一个实施例中,协调引擎334被配置为通过连续和异步地协调多个事务序列来维护全局事务序列。例如,协调引擎334可以根据潜在的断言协调数据库序列。即,断言可以用来代替锁,以允许数据库事务的交错和增加同时性。
在一个实施例中,通知引擎335被配置为当数据库事务已中止(失败)或者当数据库事务已经成功完成时通知客户端。例如,如果共识未在超时时间间隔或超时周期内被达成,则当数据库事务已被中止时,通知引擎335通知在分布式数据库中的客户端。相似地,通知引擎335可以提供关于数据库事务已经被成功完成的的及早指示给客户端系统或在客户端系统上的应用程序(例如,在使用数据库事务更新分布式数据库系统之前)。有利的是,当实际上事务是不完整的时候,通过引导客户端系统相信事务被完成,提供及早通知将读取时间从在表达式的赋值或数据库事务中的更新时间分离。
在一个实施例中,更新/提交引擎336被配置为提交数据库事务至全局事务序列。为确保实时、分布式更新操作的数据完整性,合作事务管理器可以执行提交协议。提交协议是一个良好定义的过程(包括信息的交换),以确保全局事务要么是在每个站点被成功完成,要么被中止。
最广泛使用的协议被称为两阶段提交。两阶段提交协议保证了在多个站点同时事务就好像他们在所有网站使用同一串行顺序被执行一样的被处理。两阶段提交分两期进行。首先,发起全局事务的站点或整体协调站点发送请求到每一个将处理事务的某一部分的站点。每个站点处理该子事务(如果可能的话),但不会立即提交(或存储)结果到局部数据库。相反,结果被存储在临时文件中。此外,每个站点锁定(或禁止他人更新)其正在被更新数据库的部分,当它已经完成了它的子事务时,并通知始发站点。当所有的站点都回应时,始发站点现在启动两阶段提交协议。
在准备阶段,消息被广播到每个参与站点(或节点),询问站点是否愿意在该站点上提交其部分的事务。每个站点都将返回“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中,如果共识是在指定的时间内达成,数据库管理系统基于达成共识更新数据库事务。例如,如果共识是在超时时间间隔内达成,数据库管理系统可以基于达成共识更新在分布式数据库系统中的数据库事务。在这个例子中,共识最初并未在多个数据库资源之间被达成,因此,数据库管理系统必须在未能达成共识以后达成共识。未能达成共识,从而避免了因多个资源不同意作为一个或多个断言的有效性的结果。同样,未能达成共识可能发生针对由多个资源达成的共识的断言并非有效的结果。例如,如果断言认为“X=1”且多个资源认为“X=3”,则针对于由多个资源达成的共识的断言是无效的。
最后,在通知操作450中,在更新操作440之前,数据库管理系统通知客户端系统数据库事务已被成功完成。例如,如果共识未在超时时间间隔内被达成,则数据库管理系统可以通知在分布式数据库中的客户端数据库事务被中止。有利的是,当实际上事务并未在分布式数据库系统中被更新的时候,通过引导客户端系统相信事务已被完成,提供及早通知将读取时间从在表达式的赋值或数据库事务中的更新时间分离。
图5根据一个实施例示出了一流程图,其说明了用于控制在分布式数据库系统中的事务一致性的示例性过程500。更具体地,过程500说明了异步分布式数据库观看的示例。一个或多个数据库管理系统中,诸如,例如,图1的数据库管理系统18,在其他功能之间,控制在此所述的分布式数据库系统和异步分布式数据库管理特征中的包括维护和/或协调数据库事务的事务一致性。
在操作502中,数据库管理系统从客户端系统接收查询。查询可以指示由客户端系统上运行的应用程序启动的一个或多个数据库事务。分布式数据库系统可以分布式数据库系统中的任意数量的客户端系统上运行的任意数量的应用程序接收任意数量的查询,但是,在单个查询的操作和处理被在图5的示例性过程500进行了讨论。
在操作504中,数据库管理系统处理查询以识别一个或多个断言,断言要求在分布式数据库内的多个机器(即数据库资源或数据库管理系统)之间共识,以为了协调。
在操作506中,数据库管理系统可选地设置超时间隔。超时时间间隔通常表示共识必须被达成以提交、更新或以其他方式完成数据库事务的时间间隔。如果超时间隔过期,数据库事务将时间无法完成(即,数据库事务将失败)。在某些情况下,数据库管理系统将不得不采取一定的措施,撤消依赖于未完成数据库事务的其他数据库事务,并指示该数据库事务(其可能被指示客户端系统正常完成)没有正常完成。
在一个实施例中,数据库管理系统确定共识能够达成的可能性。这个可能性可以基于,例如,在数据库密钥值中的差异、断言的类型,断言的密钥值等。数据库管理系统可以基于共识可以达成的可能性设置超时时间间隔。在一个实施例中,超时时间间隔包括在半秒或3秒之间的持续时间或时间范围。数据库管理系统可以动态地设置该值,或者它可以是一个预先确定的值,例如,由应用程序开发者预先确定的值。在其它实施例中,超时时间间隔包括小于半秒的持续时间或时间范围。
在操作508中,数据库管理系统查询在系统中的被动学习者以识别从被动学习者感知的断言的历史。在一些实施例中,从每个被动学习者感知的断言的历史表示,例如,他们相信数据库密钥是为一个时间序列(特定数据库的事务之前和/或之后的)的值。改变断言的历史被由被动学习者保持,以使系统能够最终确定在断言或数据库键的值上的机器(或数据库资源)之间的共识的的最后时间。参考操作512进行更详细的讨论。
在操作510中,数据库管理系统参考由在查询中指定的一个或多个数据库事务所依据的断言确定共识是否存在于资源之间。如果共识存在,那么,在操作512中,数据库事务被更新以及在操作514中,断言可以被排入或排向在下一个(或更高的)分层等级的下一个事务序列。在该例中,下一个事务序列是遍及分布式数据库系统中的所有机器复制的全局事务序列。
如果共识不存在,那么在操作512中,数据库管理系统确定时间间隔是否已过期。如果超时间隔已过期,则,在操作518中,数据库事务被中止或以其他方式被终止。然而,如果时间间隔尚未过期,则数据库管理系统再次查询被动学习者的断言的当前历史记录。
图6根据一个实施例示出了一个流程图,该流程图说明了用于控制在分布式数据库系统中的事务一致性的示例性过程600。图6的过程600类似图5的过程500,然而,过程600还包括时间旅行的能力以便协调数据库事务。
特别地,如果共识不存在,并且超时时间间隔已过期,则在操作618中,数据库管理系统回退到一直存在于所有的被动学习者的历史的断言,直到共识被达成。这个过程在本文中称为“时间旅行”。在操作514中,系统确定共识是否能在资源之间被达到,参考由在查询中指定的一个或多个数据库事务所依赖的断言。如果时间旅行期间共识被达成,那么在操作616中,有共识的数据库事务排向到下一序列以及其他事务序列被删除。
图7根据一个实施例示出了序列图700,图700说明了分布式数据库环境的组件的示例性操作。更具体地说,序列图700示出了将读取时间从在表达式中的赋值或数据库事务中的更新时间基本上分离的例子。
如图所示,分布式数据库系统的环境包括客户端#1,以及数据库管理系统(DBMS)A-D。单个客户端(客户端#1)被在本例中示出,然而,如上所讨论的,任何数量的客户端可以被激活和/或存在于分布式数据库系统中的任何数量的位置。在此例中,数据库管理系统都位于不同的地点,尽管一些或全部的数据库管理系统可以在同一地点。
首先,客户端#1发送数据库事务A到数据库管理系统A。数据库管理系统A然后确定数据库事务所需的特定配置。例如,数据库管理系统可以处理数据库事务以确定一个或多个断言,其中,一个或多个断言必须具有特定配置以便更新分布式数据库系统中的数据库事务。特定配置可以指示,例如,具有必须是特定值的密钥或数据库条目的一个或多个断言。即,数据库管理系统中作出关于断言(例如,密钥或数据库条目)的某些假设(基于先前读取的值)。特定配置可能需要额外的和/或替代形式。
数据库管理系统可稍后确定关于在第一时间的一个或多个断言的多个数据库资源中的第一配置。在这个例子中,第一配置最初不同于特定配置。第一配置可能导致,例如,通过查询被动学习者(即,DBMS C-D)的方式,虽然替换配置和/或变化是可能的。
此例中,数据库管理系统确定第一配置不同于特定配置。第一配置可以因任何数量的原因不同于特定配置。例如,在一些实施例中,第一配置将会不同于特定配置,如果共识相对于断言的有效性(或值)并未在被动学习者之间被达成。这可能会导致未确定的第一配置永远不同于特定配置。可替代地或另外地,第一配置可以不同于特定配置,如果特定配置(例如,来自客户端#1的断言)不同于来自被动学习者达成的共识。
因为第一配置不同与特定配置,数据库管理系统可以在轮询或以其他方式再次查询被动学习者之前等待。在这个例子中,在第一配置中的第二查询结果与特定配置相同。因此,数据库事务可以被更新和/或以其他方式全局地提交至分布式数据库系统。
图8示出了在计算机系统800的示例形式中的示意性表示,在其中的一组指令用于使该机器执行在此所讨论的一个或多个方法的任何一个,可被执行。
在另一个实施例中,机器操作作为一个独立的设备或可以被连接(例如,联网)到其它机器。在联网的部署中,机器可以操作在客户端-服务器网络环境中的服务器或机器的能力,或作为在点对点(或分布式)网络环境中的对等机器。
该机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络家电、网络路由器、交换机或桥接器、或能够执行指定将由该机器采取的动作的一组指令(顺序的或其他方式)的任何机器。
虽然机器可读介质被在示例性实施例中示出为单个介质,但是术语“机器可读介质”应当被理解为包括一个单一介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器),其用于存储一个或多个指令集。术语“机器可读介质”还应当被视为包括能够存储,编码或携带一组指令用于由机器执行和导致该机器执行本发明任一所述的一个或多个的方法的任何介质。
通常,被执行以本公开的实施例的例程,可以被为操作系统或特定应用的一部分、组件、程序、对象、模块或称作“计算机程序”的指令序列。计算机程序通常包括在一台计算机内的各种存储器和存储设备中的在不同时间的一个或多个指令集,并且当由计算机中的一个或多个处理器读取和执行时,使得计算机执行操作以执行涉及本公开的各个方面的元素。
此外,虽然实施例已经在全功能的计算机和计算机系统的上下文中进行了描述,本领域技术人员将会理解,各种实施例能够被分布为各种形式的程序产品,并且该发明同样适用于不论特定类型的用于实际上分发的机器或计算机可读介质。
机器或计算机可读介质的其它例子包括但不限于可记录型介质,诸如易失性和非易失性存储器设备,软盘和其它可移动磁盘,硬盘驱动器,光盘(例如,压缩盘只读只读存储器(CD ROMS),数字多功能盘(DVD)等),等等,以及传输型介质,诸如数字和模拟通信链路。
除非上下文清楚地要求,否则遍及说明书和权利要求书,词语“包括”,“包含”等将被解释为包含的意义,而不是排他或详尽的意义,也就是就是说,在这个意义上“包括,但不限于”。如本文所用,术语“连接”,“耦合”或其任何变体,是指任何连接或耦合,无论是直接的还是间接的,两个或更多元件之间的;元件之间的连接的连接可以是物理的,逻辑的,或它们的组合。此外,在本文中单词“以上”,“以下”,以及类似含义的词语,在本申请中使用时,应指本申请的整体而非本申请的任何特定部分。如文义许可,在上述详细说明使用单数或复数的话也可以包括复数或单数分别。词语“或”,在提及的两个或多个项目的列表,包括了所有的单词的以下解释:任何在列表中的项目,所有的在列表中的项目,以及该项目的任何组合中列表。
本发明的实施例的以上详细描述并不是为了穷举或者限制本教导为以上公开的精确形式。然而,本公开的上述具体实施例和示例是用于说明的目的,各种等同修改是可能的公开内容的范围之内,因为那些相关领域技术人员将认识。例如,尽管处理或模块以给定的顺序呈现,替代实施例可以具有以下步骤执行例程或采用具有系统块,以不同的顺序,并且一些处理或模块可以被删除,移动,添加,细分,组合和/或修改,以提供替代性或子组合。这些处理或模块的每一个可以以多种不同的方式来。此外,尽管过程或块有时示为被串联执行,这些过程或块可以改为并行执行,或可以在不同的时间执行。进一步,本文指出的任何特定数字仅仅是示例:替代性实施方式可以采用不同的值或范围。
本文提供的公开内容的教导可以应用于其它系统,而不一定是上述系统。上面描述的各种实施例的元素和动作可以被组合以提供进一步的实施例。
任何专利和申请以及上面提到的其他参考文献,包括任何可能被列在随附的申请文件,通过引用并入本文。本公开的方面可以修改,如果需要的话,采用本系统,功能和上述参考文献的概念提供本公开的再进一步的实施例。
这些和其它的变化可根据上述详细说明被作出。虽然上述说明描述了本发明的某些实施例,并且描述所考虑的最佳模式,上述出现在文本中的无论多么详尽,本教导可以以多种方式实施。系统的细节可以在其实施细节上产生相当的变化,同时仍然包含在在此所公开的主题之中。如上所述,当描述本发明的某些特征或方面时使用的特定术语不应被认为暗示该术语在此被重新定义以被限制为任何特定特性,特征,或者与该术语相关联的本发明的方面。在一般情况下,在以下权利要求中使用的术语不应当被解释为限制本公开为在说明书中公开的具体实施例,除非上述详细说明部分明确定义了此种术语。因此,本发明的实际范围不仅包括所公开的实施例,还包括在权利要求下或实施的所有等同的方式。
Claims (34)
1.一种异步分布式数据库管理的方法,所述方法包括:
在数据库管理系统,从分布式数据库系统中的客户端接收与事务序列相关联的数据库事务,其中所述数据库事务包括一个或多个断言;
在所述数据库管理系统,轮询关于被包括在所述数据库事务中的所述一个或多个断言的所述有效性的多个数据库资源以达成共识;以及
如果所述共识被在超时时间间隔内达成,基于达成所述共识,在所述数据库管理系统更新在所述分布式数据库系统中的所述数据库事务,其中所述共识最初并未在所述多个数据库资源之间被达成。
2.如权利要求1所述的方法,进一步包括:
在所述数据库管理系统通知在所述分布式数据库中的所述客户端,如果所述共识未在所述超时时间内被达成,则所述数据库事务被中止。
3.如权利要求1所述的方法,其中所述数据库事务是由在所述客户端上运行的应用程序所启动。
4.如权利要求1所述的方法,进一步包括:
在更新所述分布式数据库系统之前,通知所述客户端所述数据库事务已经被成功完成。
5.如权利要求1所述的方法,其中所述超时时间间隔包括半秒和3秒之间的持续时间。
6.如权利要求1所述的方法,其中所述超时间隔包括小于半秒的持续时间。
7.如权利要求1所述的方法,其中更新所述分布式数据库系统进一步包括:
异步地协调所述数据库事务与在所述分布式数据库系统中的一个或多个其他数据库事务。
8.如权利要求1所述的方法,进一步包括:
在更新所述分布式数据库系统之前,从所述分布式数据库系统读取相关于所述数据库事务的信息;
传送所述信息给所述客户端,而不论是否已经达到所述共识。
9.如权利要求1所述的方法,进一步包括:
在所述数据库管理系统,从在所述分布式数据库系统中的第二客户端接收与第二事务序列相关联的第二数据库事务,其中所述第二数据库事务包括一个或多个第二断言,并且其中所述一个或多个第二断言要求读取与所述数据库事务相关的信息。
10.如权利要求1所述的方法,其中更新所述分布式数据库系统进一步包括:
提交所述数据库事务至全局事务序列;以及
在遍及所述分布式数据库的所述多个数据库资源复制所述全局事务序列。
11.如权利要求1所述的方法,进一步包括:
在所述数据库管理系统确定所述共识可以被达成的可能性。
12.如权利要求11所述的方法,还包括:
基于所述共识可以被达成的可能性,在所述数据库管理系统设置所述超时时间间隔。
13.如权利要求1所述的方法,其中所述多个数据库资源包含在所述分布式数据库系统中的一个或多个其他数据库管理系统,或者在所述分布式数据库系统中的一个或多个存储管理系统。
14.一种异步分布式数据库管理的方法,所述方法包括:
在数据库管理系统,从分布式数据库系统中的客户端接收与事务序列相关联的数据库事务,其中所述数据库事务包括一个或多个断言;
在所述数据库管理系统,处理所述数据库事务以识别所述一个或多个断言,其中所述一个或多个断言必须有特定的配置,以便更新在所述分布式数据库系统中的所述数据库事务;
于第一时间,在所述数据库管理系统确定关于所述一个或多个断言的多个数据库资源之间的第一配置,其中所述第一配置不同于所述特定配置;以及
如果关于所述一个或多个断言的所述多个数据库资源之间的第二配置与在所述第二时间的所述特定配置相同,在所述数据库管理系统于所述第二时间更新在所述分布式数据库系统中的所述数据库事务。
15.如权利要求14所述的方法,其中所述特定配置要求所述一个或多个断言是有效的。
16.如权利要求14所述的方法,进一步包括:
如果所述第二配置与在所述第二时间的所述特定配置不同,在所述数据库管理系统通知在所述分布式数据库中的所述客户端所述数据库事务已被中止。
17.如权利要求14所述的方法,其中所述数据库事务是由在所述客户端上运行应用程序所启动。
18.如权利要求17所述的方法,进一步包括:
在更新所述分布式数据库系统之前,通知所述应用程序所述数据库事务已经被成功完成。
19.如权利要求14所述的方法,其中更新所述分布式数据库系统进一步包括:
异步地协调所述数据库事务与在所述分布式数据库系统中的一个或多个其他数据库事务。
20.如权利要求14所述的方法,还包括:
在更新所述分布式数据库系统之前,从所述分布式数据库系统读取相关于所述数据库事务的信息;
传送所述信息给所述客户端,而不论所述共识是否已经被达成。
21.如权利要求14所述的方法,还包括:
在所述数据库管理系统,从在所述分布式数据库系统中的第二客户端接收与第二事务序列相关联的第二数据库事务,其中所述第二数据库事务包括一个或多个第二断言,并且其中所述一个或多个第二断言要求读取与所述数据库事务相关的信息。
22.如权利要求14所述的方法,其中,更新的分布式数据库系统进一步包括:
提交所述数据库事务至全局事务序列;以及
在遍及所述分布式数据库的所述多个数据库资源复制所述全局事务序列。
23.如权利要求14所述的方法,还包括:
在所述数据库管理系统确定所述共识可以被达成的可能性。。
24.如权利要求23所述的方法,还包括:
基于所述共识可以被达成的可能性,在所述数据库管理系统设置所述超时时间间隔。
25.如权利要求14所述的方法,其中所述多个资源包含在所述分布式数据库系统中的一个或多个其他数据库管理系统,或者在所述分布式数据库系统中的一个或多个存储管理系统。
26.一种数据库管理系统,包括:
处理单元;
接口,其被配置为从在分布式数据库系统中的客户端接收与事务序列相关联的数据库事务,其中所述数据库事务包括一个或多个断言;
内存单元,其具有存储在其上的指令,其中所述指令当由所述处理单元执行时,使所述处理单元处理所述数据库事务以确定所述一个或多个断言,其中所述一个或多个断言必须具有特定配置,以便更新在所述分布式数据库系统中的所述数据库事务,在第一时间确定关于所述一个或多个断言的多个数据库资源之间的第一配置,其中所述第一配置不同于所述特定配置,并且如果在关于所述一个或多个断言的所述多个数据库资源之间的第二配置与在第二时间的所述特定配置相同,则在第二时间更新所述全局事务序列中的所述数据库事务。
27.如权利要求26所述的数据库管理系统,其中所述特定配置要求所述一个或多个断言是有效的。
28.如权利要求26所述的数据库管理系统,其中所述指令当由所述处理单元执行时,进一步使所述处理单元通知在所述分布式数据库系统中的所述客户端所述数据库的事务已被中止,如果所述第二配置不同于在第二时间的所述特定配置。
29.如权利要求26所述的数据库管理系统,其中所述数据库事务是由在所述客户端上运行的应用程序所启动。
30.如权利要求29所述的数据库管理系统,其中所述指令当由所述处理单元执行时,进一步使所述处理单元通知所述应用程序所述数据库事务在更新所述分布式数据库系统之前已被成功完成。
31.如权利要求26所述的数据库管理系统,其中所述指令当由所述处理单元执行时,进一步使所述处理单元确定所述共识可以被达成的可能性。
32.如权利要求31所述的数据库管理系统,其中所述指令当由所述处理单元执行时,进一步使所述处理单元设置超时时间间隔,其中所述第二时间小于或等于所述超时时间间隔。
33.一种数据库管理系统,包括:
处理单元;
接口,被配置为从在所述分布式数据库系统中的客户端接收与事务序列相关联的数据库事务,其中所述数据库事务包括一个或多个断言;
内存单元,其上存储有指令,其中所述指令当由所述处理单元执行时,使所述处理单元能够反复查询关于被包括在所述数据库事务中的一个或多个断言的所述有效性的数据库资源以达成共识,以及如果所述共识被在超时时间间隔内达成,基于达成所述共识,更新所述分布式数据库系统中的所述数据库事务,其中所述共识并未最初在所述多个资源之间被达成,并且如果所述共识并未在所述超时间隔内被达成,通知在所述分布式数据库中的所述客户端所述数据库事务被中止。
34.一种数据库管理系统,包括:
用于从在分布式数据库系统中的客户端接收与事务序列相关联的数据库事务的装置,其中所述数据库事务包括一个或多个断言;
用于轮询关于被包括在所述数据库事务内的所述一个或多个断言的所述有效性的多个数据库资源以达成共识的装置;以及
如果所述共识并未被在超时时间间隔内达成,基于达成所述共识,用于更新在所述分布式数据库系统中的所述数据库事务的装置,其中所述共识最初并未被在所述多个数据库资源之间被达成。
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/049213 WO2013019894A1 (en) | 2011-08-01 | 2012-08-01 | Systems and methods for asynchronous distributed database management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103842994A true CN103842994A (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 After (2)
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 | 从分层的观点协调分布式数据库 |
Country Status (5)
Country | Link |
---|---|
US (3) | US8805810B2 (zh) |
EP (3) | EP2740055A4 (zh) |
CN (3) | CN103842994A (zh) |
CA (3) | CA2845312A1 (zh) |
WO (3) | WO2013019888A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572077A (zh) * | 2014-12-12 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 数据库事务的处理方法及业务系统 |
CN106547781A (zh) * | 2015-09-21 | 2017-03-29 | 南京中兴新软件有限责任公司 | 一种实现分布式事务的方法、装置及数据库服务器 |
CN108123979A (zh) * | 2016-11-30 | 2018-06-05 | 天津易遨在线科技有限公司 | 一种在线交流服务器集群架构 |
CN108140043A (zh) * | 2015-10-01 | 2018-06-08 | 微软技术许可有限责任公司 | 只附加分布式数据库的读写协议 |
CN108140028A (zh) * | 2015-07-10 | 2018-06-08 | 起元技术有限责任公司 | 在具有分布式数据库系统的网络中提供数据库访问控制的方法和架构 |
CN110597891A (zh) * | 2018-06-12 | 2019-12-20 | 武汉斗鱼网络科技有限公司 | MySQL聚合为PostgreSQL数据库的设备、系统、方法、存储介质 |
CN110928897A (zh) * | 2018-09-20 | 2020-03-27 | 艾玛迪斯简易股份公司 | 函数调用序列处理 |
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 |
BR112016003591A8 (pt) | 2013-08-22 | 2018-01-30 | Du Pont | promotor u6 de polimerase iii de soja e métodos de uso |
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 |
DE112014000075B4 (de) * | 2014-06-03 | 2020-09-24 | Komatsu Ltd. | Steuersystem für Erdbewegungsmaschine und Erdbewegungsmaschine |
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 |
US10291705B2 (en) | 2014-09-10 | 2019-05-14 | Panzura, Inc. | Sending interim notifications for namespace operations 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 |
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 |
US9529923B1 (en) | 2015-08-28 | 2016-12-27 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US9390154B1 (en) | 2015-08-28 | 2016-07-12 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US10747753B2 (en) | 2015-08-28 | 2020-08-18 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
SI3418915T1 (sl) * | 2015-08-28 | 2021-03-31 | Swirlds, Inc. | Postopki in naprava za porazdeljeno bazo podatkov v omrežju |
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 |
CA2999050C (en) | 2015-10-12 | 2024-05-28 | 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 |
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信号逾时的监控系统及方法 |
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 |
AU2017357770B2 (en) | 2016-11-10 | 2020-12-24 | Hedera Hashgraph, Llc | Methods and apparatus for a distributed database including anonymous entries |
EP3555757A4 (en) | 2016-12-19 | 2020-06-17 | Swirlds, Inc. | METHOD AND DEVICE FOR A DISTRIBUTED DATABASE TO ENABLE THE DELETION OF EVENTS |
US11334678B2 (en) * | 2017-07-06 | 2022-05-17 | Chromaway Ab | Method and system for a distributed computing system |
AU2018300147B2 (en) | 2017-07-11 | 2020-07-16 | Hedera Hashgraph, Llc | Methods and apparatus for efficiently implementing a distributed database within a network |
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 |
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 |
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 |
SG11202002308RA (en) | 2017-11-01 | 2020-04-29 | 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 |
US11042503B1 (en) | 2017-11-22 | 2021-06-22 | Amazon Technologies, Inc. | Continuous data protection and restoration |
US11269731B1 (en) | 2017-11-22 | 2022-03-08 | Amazon Technologies, Inc. | Continuous data protection |
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 |
US11126505B1 (en) | 2018-08-10 | 2021-09-21 | Amazon Technologies, Inc. | Past-state backup generator and interface for database systems |
US11757638B2 (en) | 2018-10-30 | 2023-09-12 | 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 | 中国人民大学 | 一种保证事务一致性和线性一致性的分布式系统和方法 |
CA3134691A1 (en) | 2019-05-22 | 2020-11-26 | Swirlds, Inc. | Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database |
CN112307113A (zh) * | 2019-07-29 | 2021-02-02 | 中兴通讯股份有限公司 | 一种业务请求消息发送方法及分布式数据库架构 |
US12061708B1 (en) | 2019-09-27 | 2024-08-13 | Amazon Technologies, Inc. | Remote tracking and identification of key access patterns for databases |
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 |
DE59909128D1 (de) * | 1998-07-27 | 2004-05-13 | Siemens Ag | 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 |
WO2003003251A1 (en) | 2001-06-28 | 2003-01-09 | 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 |
US7146366B2 (en) * | 2002-09-13 | 2006-12-05 | Netezza Corporation | Distributed concurrency control using 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 |
RU2591169C2 (ru) * | 2010-03-18 | 2016-07-10 | НУОДиБи ИНК. | Система управления базой данных |
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 |
WO2013074665A1 (en) | 2011-11-14 | 2013-05-23 | Google Inc. | Data processing service |
-
2012
- 2012-08-01 CN CN201280048364.6A patent/CN103842994A/zh active Pending
- 2012-08-01 WO PCT/US2012/049206 patent/WO2013019888A1/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 US US13/564,187 patent/US8805810B2/en active Active
- 2012-08-01 WO PCT/US2012/049210 patent/WO2013019892A1/en active Application Filing
- 2012-08-01 US US13/564,242 patent/US20130036089A1/en not_active Abandoned
- 2012-08-01 US US13/564,147 patent/US20130036105A1/en not_active Abandoned
- 2012-08-01 EP EP12820440.1A patent/EP2740056A4/en not_active Withdrawn
- 2012-08-01 CA CA2845312A patent/CA2845312A1/en not_active Abandoned
- 2012-08-01 CN CN201280048371.6A patent/CN103842995A/zh active Pending
- 2012-08-01 CA CA2845306A patent/CA2845306A1/en not_active Abandoned
- 2012-08-01 CA CA2845328A patent/CA2845328A1/en not_active Abandoned
- 2012-08-01 EP EP12820633.1A patent/EP2740057A4/en not_active Withdrawn
- 2012-08-01 CN CN201280048368.4A patent/CN103858123A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572077A (zh) * | 2014-12-12 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 数据库事务的处理方法及业务系统 |
CN104572077B (zh) * | 2014-12-12 | 2018-03-06 | 百度在线网络技术(北京)有限公司 | 数据库事务的处理方法及业务系统 |
CN108140028A (zh) * | 2015-07-10 | 2018-06-08 | 起元技术有限责任公司 | 在具有分布式数据库系统的网络中提供数据库访问控制的方法和架构 |
CN108140028B (zh) * | 2015-07-10 | 2022-04-29 | 起元技术有限责任公司 | 在具有分布式数据库系统的网络中提供数据库访问控制的方法和架构 |
CN106547781A (zh) * | 2015-09-21 | 2017-03-29 | 南京中兴新软件有限责任公司 | 一种实现分布式事务的方法、装置及数据库服务器 |
CN108140043A (zh) * | 2015-10-01 | 2018-06-08 | 微软技术许可有限责任公司 | 只附加分布式数据库的读写协议 |
CN108140043B (zh) * | 2015-10-01 | 2022-05-24 | 微软技术许可有限责任公司 | 只附加分布式数据库的读写协议 |
CN108123979A (zh) * | 2016-11-30 | 2018-06-05 | 天津易遨在线科技有限公司 | 一种在线交流服务器集群架构 |
CN110597891A (zh) * | 2018-06-12 | 2019-12-20 | 武汉斗鱼网络科技有限公司 | MySQL聚合为PostgreSQL数据库的设备、系统、方法、存储介质 |
CN110928897A (zh) * | 2018-09-20 | 2020-03-27 | 艾玛迪斯简易股份公司 | 函数调用序列处理 |
CN110928897B (zh) * | 2018-09-20 | 2022-04-26 | 艾玛迪斯简易股份公司 | 在至少一个处理器上处理多个函数调用的输入序列的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130036105A1 (en) | 2013-02-07 |
US20130036089A1 (en) | 2013-02-07 |
US8805810B2 (en) | 2014-08-12 |
WO2013019892A1 (en) | 2013-02-07 |
EP2740057A4 (en) | 2015-09-09 |
EP2740055A1 (en) | 2014-06-11 |
EP2740055A4 (en) | 2015-09-09 |
CA2845306A1 (en) | 2013-02-07 |
EP2740056A4 (en) | 2015-09-09 |
WO2013019894A1 (en) | 2013-02-07 |
CA2845312A1 (en) | 2013-02-07 |
US20130036106A1 (en) | 2013-02-07 |
WO2013019888A1 (en) | 2013-02-07 |
EP2740057A1 (en) | 2014-06-11 |
CN103858123A (zh) | 2014-06-11 |
EP2740056A1 (en) | 2014-06-11 |
CA2845328A1 (en) | 2013-02-07 |
CN103842995A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103842994A (zh) | 异步分布式数据库管理的系统和方法 | |
US20240040006A1 (en) | Provisioning multiple network resources | |
CN110990182B (zh) | 事务处理方法、装置、设备及存储介质 | |
US20180246923A1 (en) | Non-blocking processing of federated transactions for distributed data partitions | |
US20190354518A1 (en) | Chain mesh network for decentralized transaction systems | |
CN103782574B (zh) | 用于数据库事务的幂等性 | |
US6983395B2 (en) | Multi-agent cooperative transaction method and system | |
US20220222590A1 (en) | Blockchain-based room inventory management system and method | |
US20230177183A1 (en) | Redistribution operations for data privacy integration services using different redistribution responder groups | |
CN112527759B (zh) | 日志执行方法、装置、计算机设备及存储介质 | |
US10817537B2 (en) | Feedback loops for managing profile store synchronization issues | |
CN101771671A (zh) | 一种内容标识管理服务器间的交互处理方法及装置 | |
GB2514459A (en) | Method and system for registering software systems in data-sharing sessions | |
US10108923B2 (en) | Method and system for inventory data sharing between airlines | |
EP1168171B1 (en) | Autonomous network service configuration | |
US10313433B2 (en) | Method and system for registering software systems and data-sharing sessions | |
Ibrahim | Mobile transaction processing for a distributed war environment | |
US10713281B1 (en) | Intelligent batching of verification requests for profile stores | |
Sabry | Distributed Ledger: Putting the Wealth and Faith in a Mathematical Framework, Free of Politics and Human Error | |
Khaing | A Dynamic Replication for Periodic Transactions in Weather Forecast Data Distribution by ORDER-RS | |
Pankowski | Lorq: A system for replicated NoSQL data based on consensus quorum | |
Ölveczky et al. | Distributed Algorithms | |
Yosinski et al. | A distributed database view of network tracking systems |
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 |