A method for maintaining the consistency of distributed databases includes that the coordinator receives transaction initiation messages for transactions from the application server. In addition, the method includes: determining whether to generate a distributed transaction identifier (DXID) for the aforementioned transaction, which includes: determining whether the transaction is executed on a single data node or on multiple data nodes; determining the generation of the DXID in response to the determination that the transaction will be executed on the multiple data nodes; and responding to the determination that the transaction will be executed on the multiple data nodes; A DXID for the transaction is generated, and the coordinator generates a DXID corresponding to the transaction. The method also includes: the coordinator sends the DXID directly to the first data node; the coordinator sends the DXID directly to the second data node; and executes the transaction using the DXID.
【技术实现步骤摘要】
【国外来华专利技术】分散式分布式数据库一致性相关申请案交叉申请本申请要求于2016年12月8日递交的专利技术名称为“分散式分布式数据库一致性”的第15/373,240号美国非临时申请案的在先申请优先权,后者又要求于2016年10月13日递交的专利技术名称为“用于分布式数据库的系统和方法”的第62/407,838号美国临时申请案的在先申请优先权,这两份专利申请案的全部内容以引入的方式并入本文。
本专利技术大体涉及一种用于数据库的系统和方法,并在特定实施例中涉及一种用于保持分布式数据库的一致性的系统和方法。
技术介绍
分布式数据库系统可包括协作执行事务的许多个数据节点。通过协调不同的数据节点执行事务,其中不同的节点处理不同的事务或事务的不同方面。某些数据库事务在多个数据节点上执行,这可能导致一致性异常。例如,任务可以由一个数据节点提交,但不在特定时间在其它数据节点上提交,在此期间另一并发事务可能访问那些相同的数据节点并且仅查看部分提交的数据。当在多个数据节点上执行并发事务时,期望所述事务对事务的所有数据节点上的数据具有一致可见性。当提交涉及多个服务器的事务时,可以进行两阶段提交以确保完成 ...
【技术保护点】
1.一种用于保持分布式数据库中的一致性的方法,其特征在于,所述方法包括:协调器从应用服务器接收用于事务的事务发起消息;确定是否为所述事务生成分布式事务标识(distributed transaction identifier,DXID),包括:确定所述事务是将在单个数据节点上执行还是在多个数据节点上执行;响应于确定所述事务将在所述多个数据节点上执行,确定生成所述DXID;响应于确定生成用于所述事务的DXID,所述协调器生成与所述事务相对应的DXID;以及;所述协调器直接向第一数据节点发送所述DXID;所述协调器直接向第二数据节点发送所述DXID;使用所述DXID执行所述事务。
【技术特征摘要】
【国外来华专利技术】2016.10.13 US 62/407,838;2016.12.08 US 15/373,2401.一种用于保持分布式数据库中的一致性的方法,其特征在于,所述方法包括:协调器从应用服务器接收用于事务的事务发起消息;确定是否为所述事务生成分布式事务标识(distributedtransactionidentifier,DXID),包括:确定所述事务是将在单个数据节点上执行还是在多个数据节点上执行;响应于确定所述事务将在所述多个数据节点上执行,确定生成所述DXID;响应于确定生成用于所述事务的DXID,所述协调器生成与所述事务相对应的DXID;以及;所述协调器直接向第一数据节点发送所述DXID;所述协调器直接向第二数据节点发送所述DXID;使用所述DXID执行所述事务。2.根据权利要求1所述的方法,其特征在于,所述方法还包括将所述事务分配给所述第一数据节点和所述第二数据节点并避免将所述DXID发送到未分配给所述事务的第三数据节点。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述协调器向所述第一数据节点发送第一事务发起消息;所述协调器向所述第二数据节点发送第二事务发起消息。4.根据权利要求1所述的方法,其特征在于,确定所述事务是在所述单个数据节点上执行还是在所述多个数据节点上执行包括确定所述事务将在所述单个数据节点上执行,以响应所述单个数据节点上有足够资源可用于执行所述事务。5.根据权利要求1所述的方法,其特征在于,所述确定是否为所述事务生成所述DXID包括:确定所述事务是写事务还是读事务;响应于确定所述事务是写事务,确定生成所述DXID。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述协调器从所述第一数据节点接收所述第一数据节点上活动的DXID的第一DXID列表;所述协调器从所述第二数据节点接收所述第二数据节点上活动的DXID的第二DXID列表;根据所述第一DXID列表和所述第二DXID列表确定全局DXID列表;所述协调器向所述第一数据节点发送所述全局DXID列表;所述协调器向所述第二数据节点发送所述全局DXID列表。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述协调器从所述第一数据节点接收第一本地快照;所述协调器从所述第二数据节点接收第二本地快照;根据所述第一本地快照和所述第二本地快照生成全局快照;所述协调器向所述第一数据节点发送所述全局快照;所述协调器向所述第二数据节点发送所述全局快照。8.根据权利要求1所述的方法,其特征在于,所述确定是否为所述事务生成所述DXID包括:确定所述事务是否已经存在所述DXID;响应于确定所述事务尚未存在所述DXID,确定生成所述DXID;响应于确定所述事务已经存在所述DXID,确定不生成所述DXID。9.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述协调器向所述第一数据节点发送第一操作请求;所述协调器向所述第二数据节点发送第二操作请求;所述协调器从所述第一数据节点接收第一操作结果;所述协调器从所述第二数据节点接收第二操作结果;所述协调器向所述应用服务器发送所述第一操作结果;所述协调器向所述应用服务器发送所述第二操作结果。10.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述协调器向所述应用服务器发送事务响应消息;所述协调器从所述应用服务器接收操作命令消息。11.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述协调器从所述应用服务器接收所述事务的事务提交消息;响应于接收到所述事务提交消息,执行两阶段提交;所述协调器向所述应用服务器发送事务结果。12.根据权利要求11所述的方法,其特征在于,执行所述两阶段提交包括:所述协调器向所述第一数据节点发送第一事务准备消息;所述协调器向所述第二数据节点发送第二事务准备消息;所述协调器从所述第一数据节点接收第一事务准备结果;所述协调器从所述第二数据节点接收第二事务准备结果;所述协调器向所述第一数据节点发送第一提交准备消息;所...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。