CN102955801A - 基于分布式数据库系统的数据控制方法及系统 - Google Patents
基于分布式数据库系统的数据控制方法及系统 Download PDFInfo
- Publication number
- CN102955801A CN102955801A CN2011102467912A CN201110246791A CN102955801A CN 102955801 A CN102955801 A CN 102955801A CN 2011102467912 A CN2011102467912 A CN 2011102467912A CN 201110246791 A CN201110246791 A CN 201110246791A CN 102955801 A CN102955801 A CN 102955801A
- Authority
- CN
- China
- Prior art keywords
- control server
- main control
- server node
- function
- storing process
- 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.)
- Granted
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Abstract
本发明公开了一种基于分布式数据库系统的数据控制方法及系统。其中,该方法包括:主控服务器节点接收存储过程和函数执行命令,并根据存储过程和函数执行命令发送事务开始通知至非主控服务器节点,非主控服务器创建一个新事务;在主控服务器节点执行处理语句时,将处理语句发送至非主控服务器节点;非主控服务器节点执行该处理语句,并将获取到的处理结果返回至主控服务器节点;主控服务器节点发送事务提交通知给任意一个或多个非主控服务器节点,非主控服务器节点接收事务提交通知并提交创建的新事务。通过本发明,能够达到存储过程和函数可以对多服务器节点硬盘存储数据进行访问和操作,提高了资源的利用率以及系统的执行效率。
Description
技术领域
本发明涉及通信领域,具体而言,尤其涉及一种基于分布式数据库系统的数据控制方法及系统。
背景技术
随着传统的数据库技术日趋成熟,互联网应用的高速发展,数据库应用已经普遍出现在互联网之上。而传统的集中式数据库系统也同时表现出它的不足之处:集中式管理,势必造成性能瓶颈,单一的提高硬件性能已不能满足目前互联网的大数据量,高并发查询写入的需求,同时产生大量的硬件维护和升级费用。而数据库的集中管理往往造成多数据库关联,一旦一台数据库崩溃将造成整个系统崩溃。所以分布式数据库将逐步取代传统集中式数据库系统。
在分布式数据库系统中,多台服务器节点组成服务器集群,数据被分布在多台服务器节点上,利用各个节点下的本机专属中央处理器(CPU)和硬盘同步处理数据。每个服务器节点地位是平等的,包括:对结构化查询语言(STRUCTURED QUERY LANGUAGE,简称SQL)解析模块、执行模块、节点间通信模块、数据存储模块等。客户端通过某种一致性算法(比如:HASH算法)选择一台服务器节点接入分布式数据库系统。
对于传统的集中式数据库系统的存储过程和函数,因为其集中式管理的特点,即存储过程和函数的执行只能使用一台服务器节点的CPU、同一服务器节点下数据库实例中的表或视图。在分布式数据库系统中,由于多服务器集群环境下,数据表被分布在多台服务器节点上,基于传统的集中式数据库系统中存储过程和函数的执行模式无法满足分布式数据要求。
针对上述现有技术的由于存储过程和函数无法在分布式数据库系统多服务器节点上执行,导致无法充分利用所有的服务器节点的CPU、硬盘等资源,降低了服务器执行效率的问题,目前还没有有效的解决方案。
发明内容
本发明的主要目的在于提供一种基于分布式数据库系统的数据控制方法及系统,以解决现有技术的由于存储过程和函数无法在分布式数据库系统多服务器节点上执行,导致无法充分利用所有的服务器节点的CPU、硬盘等资源,降低了服务器执行效率的问题。
为了实现上述目的,根据本发明的一方面,提供了一种操基于分布式数据库系统的数据控制方法。
根据本发明的基于分布式数据库系统的数据控制方法包括:主控服务器节点接收存储过程和函数执行命令,并根据存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点,接收到事务开始通知的非主控服务器创建一个新事务;在主控服务器节点执行存储过程和函数中的处理语句,并将处理语句发送至任意一个或多个非主控服务器节点;非主控服务器节点执行该处理语句,并将获取到的处理结果返回至主控服务器节点;主控服务器节点根据处理结果执行完存储过程和函数的所有处理语句,并发送事务提交通知给任意一个或多个非主控服务器节点,非主控服务器节点接收事务提交通知并提交创建的新事务。
进一步地,在主控服务器节点接收存储过程和函数执行命令之前,方法还包括:主控服务器接收创建存储过程和函数的创建命令;根据创建命令解析存储过程和函数的作词法和语法,并记录保存存储过程和函数中的每一句处理语句的内容。
进一步地,在主控服务器节点执行存储过程和函数中的处理语句之前,方法还包括:主控服务器节点将处理语句中的变量名称用具体变量值替换。
进一步地,在主控服务器节点根据存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点之后,方法还包括:判断主控服务器节点发送事务开始通知是否成功,在发送失败的情况下,系统结束该存储过程和函数执行操作。
进一步地,在主控服务器节点根据存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点,接收到事务开始通知的非主控服务器创建一个新事务之后,方法还包括:非主控服务器节点将处理事务开始通知的结果返回给主控服务器节点;判断主控服务器节点接收处理事务开始通知结果的时间是否超过预定时间,其中,在超过预定时间的情况下,在执行存储过程和函数命令失败;在未超过预定时间的情况下,如果主控服务器节点接收的所有非主控服务器节点处理事务开始通知结果中,有任一节点的开始事务操作发生失败,则执行存储过程和函数失败。
进一步地,在主控服务器节点执行存储过程和函数中的处理语句,并将处理语句发送至任意一个或多个非主控服务器节点之后,方法还包括:判断主控服务器节点发送处理语句是否失败,在发送失败的情况下,执行该存储过程和函数此次执行失败。
进一步地,在非主控服务器节点执行该处理语句,并将获取到的处理结果返回至主控服务器节点之后,方法还包括:在主控服务器节点接收的所有非主控服务器节点执行处理语句结果中,如果有任一非主控服务器节点执行处理语句过程中发生失败,则执行存储过程和函数失败;或者在主控服务器节点等待任一非主控服务器节点执行处理语句结果的时间超过了某一个时间限制后,则存储过程和函数执行失败。
为了实现上述目的,根据本发明的另一个方面,提供了一种基于分布式数据库系统的数据控制系统。
根据本发明的基于分布式数据库系统的数据控制系统包括:主控服务器,用于接收客户端发出的存储过程和函数执行命令,并根据存储过程和函数执行命令发送事务开始通知,同时执行存储过程和函数中的处理语句,在执行完存储过程和函数的所有处理语句之后,发送事务提交通知;一个或多个非主控服务器,用于在接收到事务开始通知之后创建一个新事务,同时执行接收到的处理语句,并在接收到事务提交通知之后提交创建的新事务。
进一步地,主控服务器还包括:创建单元,用于接收客户端发出的创建存储过程和函数的创建命令,并根据创建命令解析存储过程和函数的作词法和语法,同时记录保存存储过程和函数中的每一句处理语句的内容。
进一步地,主控服务器还包括:第一判断模块,用于判断主控服务器节点发送事务开始通知是否成功,在发送失败的情况下,系统结束该存储过程和函数执行操作;第二判断模块,用于判断主控服务器节点接收处理事务开始通知结果的时间是否超过预定时间,其中,在超过预定时间的情况下,在执行存储过程和函数命令失败;在未超过预定时间的情况下,如果主控服务器节点接收的所有非主控服务器节点处理事务开始通知结果中,有任一节点的开始事务操作发生失败,则执行存储过程和函数失败;第三判断模块,用于判断主控服务器节点发送处理语句是否失败,在发送失败的情况下,执行该存储过程和函数此次执行失败。
通过本发明,采用主控服务器节点接收存储过程和函数执行命令;主控服务器节点根据存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点,接收到事务开始通知的非主控服务器创建一个新事务;在主控服务器节点执行存储过程和函数中的处理语句,并将处理语句发送至任意一个或多个非主控服务器节点;非主控服务器节点执行该处理语句,并将获取到的处理结果返回至主控服务器节点;主控服务器节点根据处理结果执行完存储过程和函数的所有处理语句,并发送事务提交通知给任意一个或多个非主控服务器节点,非主控服务器节点接收事务提交通知并提交创建的新事务,解决了现有技术的由于存储过程和函数无法在分布式数据库系统多服务器节点上执行,导致无法充分利用所有的服务器节点的CPU、硬盘等资源,降低了服务器执行效率的问题,进而达到了存储过程和函数可以对多服务器节点硬盘存储数据进行访问和操作,提高了资源的利用率以及系统的执行效率的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的基于分布式数据库系统的数据控制系统的结构示意图;
图2是根据本发明实施例的基于分布式数据库方法的流程示意图;
图3是根据本发明实施例的存储过程和函数创建处理流程图;
图4是根据本发明实施例的基于分布式数据库方法的详细流程示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供了一种基于分布式数据库系统的数据控制方法及系统。
图1是根据本发明实施例的基于分布式数据库系统的数据控制系统的结构示意图。
如图1所示,该系统包括:客户端10,主控服务器节点30以及非主控服务器节点50。
其中,主控服务器节点30,用于接收客户端10发出的存储过程和函数执行命令,并根据存储过程和函数执行命令发送事务开始通知,同时执行存储过程和函数中的处理语句,在执行完存储过程和函数的所有处理语句之后,发送事务提交通知;以及一个或多个非主控服务器节点50,用于在接收到事务开始通知之后创建一个新事务,同时执行接收到的处理语句,并在接收到事务提交通知之后提交创建的新事务。优选地,本发明上述实施例中的处理语句为SQL语句。
本发明上述实施例实现了在分布式数据库多服务器集群下存储过程和函数执行的实现方法,该分布式数据库系统有多个服务器节点组成,客户端10通过某种一致性算法(比如:HASH算法)选择一台服务器节点接入分布式数据库系统,也就是与客户端10存在TCP链路链接的服务器节点称为主控服务器节点,不存在链路链接的服务器节点称为非主控服务器节点50。上述实施例通过建立通信数据反馈机制解决了存储过程和函数执行方法解决了存储过程和函数无法在分布式数据库系统多服务器节点上执行的问题,使存储过程和函数可以对多服务器节点硬盘存储数据进行访问和操作,即可以使存储过程和函数在分布式数据库的多个服务器节点上并发执行,可以充分利用每个服务器节点的CPU、硬盘等资源,大大提高了执行效率。
上述实施例中的主控服务器还可以包括:创建单元,用于接收客户端10发出的创建存储过程和函数的创建命令,并根据创建命令解析存储过程和函数的作词法和语法,同时记录保存存储过程和函数中的每一句处理语句的内容。
优选地,该主控服务器还可以包括:第一判断模块,用于判断主控服务器节点发送事务开始通知是否成功,在发送失败的情况下,系统结束该存储过程和函数执行操作;第二判断模块,用于判断主控服务器节点接收处理事务开始通知结果的时间是否超过预定时间,其中,在超过预定时间的情况下,在执行存储过程和函数命令失败;在未超过预定时间的情况下,如果主控服务器节点接收的所有非主控服务器节点50处理事务开始通知结果中,有任一节点的开始事务操作发生失败,则执行存储过程和函数失败。以及第三判断模块,用于判断主控服务器节点发送处理语句是否失败,在发送失败的情况下,执行该存储过程和函数此次执行失败。
图2是根据本发明实施例的基于分布式数据库方法的流程示意图。如图2所示,该方法包括如下步骤:
步骤S102,主控服务器节点30接收存储过程和函数执行命令。
步骤S104,主控服务器节点30根据存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点50,接收到事务开始通知的非主控服务器节点创建一个新事务。
步骤S106,在主控服务器节点执行存储过程和函数中的处理语句,并将处理语句发送至任意一个或多个非主控服务器节点50。
步骤S108,非主控服务器节点50执行该处理语句,并将获取到的处理结果返回至主控服务器节点。
步骤S110,主控服务器节点30根据处理结果执行完存储过程和函数的所有处理语句,并发送事务提交通知给任意一个或多个非主控服务器节点50,非主控服务器节点50接收事务提交通知并提交创建的新事务。
上述实施例实现了在多台服务器节点组成服务器集群环境下的一种存储过程和函数执行实现方法,且涉及到的处理语句可以为SQL语句,解决了存储过程和函数无法在分布式数据库系统多服务器节点上执行的问题,使存储过程和函数可以对多服务器节点硬盘存储数据进行访问和操作,可以使存储过程和函数在分布式数据库的多个服务器节点上并发执行,实现了充分利用每个服务器节点的CPU、硬盘等资源,大大提高了执行效率的效果。
在上述实施例中,在主控服务器节点接收存储过程和函数执行命令之前,方法还可以包括:主控服务器接收创建存储过程和函数的创建命令;根据创建命令解析存储过程和函数的作词法和语法,并记录保存存储过程和函数中的每一句处理语句的内容。
图3是根据本发明实施例的存储过程和函数创建处理流程图,如图3所示。该创建处理流程包括如下步骤:
步骤201,客户端10发送创建存储过程和函数命令给主控服务器节点30。
步骤202,分布式数据库系统对存储过程和函数作词法和语法解析,并记录保存每一句处理语句,例如SQL语句。
具体的,上述实施例可以实现在分布式数据库系统中创建存储过程和函数时,即在结构化查询语言(STRUCTURED QUERY LANGUAGE,简称SQL)解析层中对存储过程和函数作词法和语法解析时,记录保存存储过程和函数中的每一句SQL语句内容。
优选地,在主控服务器节点30执行存储过程和函数中的处理语句之前,方法还可以包括:主控服务器节点30将处理语句中的变量名称用具体变量值替换。
本发明上述实施例中,在主控服务器节点30根据存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点50之后,方法还可以包括:判断主控服务器节点30发送事务开始通知是否成功,在发送失败的情况下,系统结束该存储过程和函数执行操作。
本发明上述实施例中,在主控服务器节点30根据存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点50,接收到事务开始通知的非主控服务器节点50创建一个新事务之后,方法还可以包括:非主控服务器节点50将处理事务开始通知的结果返回给主控服务器节点;判断主控服务器节点30接收处理事务开始通知结果的时间是否超过预定时间,其中,在超过预定时间的情况下,在执行存储过程和函数命令失败;在未超过预定时间的情况下,如果主控服务器节点接收的所有非主控服务器节点50处理事务开始通知结果中,有任一节点的开始事务操作发生失败,则执行存储过程和函数失败。
本发明上述实施例中,在主控服务器节点30执行存储过程和函数中的处理语句,并将处理语句发送至任意一个或多个非主控服务器节点50之后,方法还可以包括:判断主控服务器节点30发送处理语句是否失败,在发送失败的情况下,执行该存储过程和函数此次执行失败。
本发明上述实施例中,在非主控服务器节点50执行该处理语句,并将获取到的处理结果返回至主控服务器节点之后,方法还包括:在主控服务器节点30接收的所有非主控服务器节点50执行处理语句结果中,如果有任一非主控服务器节点50执行处理语句过程中发生失败,则执行存储过程和函数失败;或者在主控服务器节点等待任一非主控服务器节点50执行处理语句结果的时间超过了某一个时间限制后,则存储过程和函数执行失败。
图4是根据本发明实施例的基于分布式数据库方法的详细流程示意图,如图4所示,用于存储过程和函数在分布式数据库系统多服务器节点上执行,执行时可以对多服务器节点硬盘存储数据进行操作,包括如下步骤:
步骤301,客户端10发送存储过程和函数执行命令给主控服务器节点30;
步骤302,主控服务器节点30发送事务开始通知给其他非主控服务器节点50。具体的,该步骤可以实现在分布式数据库系统的主控服务器节点30执行存储过程和函数时,主控服务器节点30先发送存储过程和函数事务开始通知给其他非主控服务器节点50,其他非主控服务器节点50接到事务开始通知后创建一个新事务,并发送处理结果给主控服务器节点30。
优选地,在该步骤执行过程中,如果主控服务器节点30给任一非主控服务器节点50发送事务开始通知发生失败,则认为该存储过程和函数此次执行时发送错误,并结束存储过程和函数执行操作。
同时,在非主控服务器节点50接收从主控服务器节点30发送的事务开始通知之后,非主控服务器节点50开始创建一个新的事务,并把处理结果发送给主控服务器节点。
主控服务器节点30等待任一非主控服务器节点50处理事务开始通知结果的时间超过了某一个时间限制后,则认为存储过程和函数执行失败,并结束存储过程和函数执行操作。
主控服务器节点30接收的所有非主控服务器节点50处理事务开始通知结果中,如果有任一节点的开始事务操作发生失败,则认为存储过程和函数执行失败,并结束存储过程和函数执行操作。
步骤303,主控服务器节点30执行每个SQL语句前,使用具体变量值替换变量名称。具体的,该步骤可以实现分布式数据库系统的主控服务器节点在存储过程和函数中的每一个SQL语句执行前,使用变量的实际值替换SQL语句内容中变量名
步骤304,主控服务器节点30发送SQL语句给其他非主控服务器节点50。具体的,该步骤可以实现分布式数据库系统的主控服务器节点在本机上执行SQL语句,如果该条SQL语句需要其他非主控服务器节点50硬盘存储的数据,则主控服务器节点30把该SQL语句通过网络协议发送给对应的非主控服务器节点50,非主控服务器节点50收到并执行该SQL语句,并发送回执行结果。
在该步骤执行的过程中,如果主控服务器节点30给任一非主控服务器节点50发送SQL语句发生失败,则认为该存储过程和函数此次执行时发送错误,并结束存储过程和函数执行操作。
主控服务器节点30接收的所有非主控服务器节点50执行SQL语句结果中,如果有任一节点执行SQL语句过程中发生失败,则认为存储过程和函数执行失败,并结束存储过程和函数执行操作。
主控服务器节点30等待任一非主控服务器节点50执行SQL语句结果的时间超过了某一个时间限制后,则认为存储过程和函数执行失败,并结束存储过程和函数执行操作。
上述实施例中,当主控服务器节点30判断存储过程和函数执行过程中发送失败,在结束存储过程和函数执行操作前,主控服务器节点30需要通知非主控服务器节点50对事务回滚处理,具体的,主控服务器节点30可以发送事务回滚通知给其他非主控服务器节点50,其他非主控服务器节点50收到通知后执行事务回滚处理,并发送回处理结果。
同时,上述过程中的SELECT语句、DELETE语句、UPDATE语句采用群发到其他非主控服务器节点50方式,INSERT语句根据数据分布的一致性算法计算出发送的具体服务器节点。
步骤305,非主控服务器节点50接收SQL语句,并执行SQL语句,发送处理结果给主控服务器节点30;
步骤306,主控服务器节点30执行完存储过程和函数的所有SQL语句后,发送事务提交通知给其他非主控服务器节点50,非主控服务器节点50接收事务提交通知并提交事务,发处理结果发送给主控服务器节点30。
具体的,上述两个步骤可以实现分布式数据库系统的主控服务器节点执行完存储过程和函数中的SQL语句后,发送提交事务通知给其他非主控服务器节点50,其他非主控服务器节点50收到提交事务通知并提交事务,并发送处理结果给主控服务器节点。
如果主控服务器节点30给任一非主控服务器节点50发送事务提交通知发生失败,则认为该存储过程和函数此次执行时发送错误,并结束存储过程和函数执行操作。
非主控服务器节点50接收主控服务器节点发送的事务提交通知等待时间超过了某一个时间限制后,则认为存储过程和函数执行失败,执行事务回滚处理操作。
需要说明的是,本发明实施例在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
从以上的实施例描述中,可以看出,本发明实现了如下技术效果:本发明的存储过程和函数执行方法解决了存储过程和函数在分布式数据库系统多服务器节点上执行问题,可以对多服务器节点硬盘存储数据进行操作;本发明的存储过程和函数执行方法可以使存储过程和函数在分布式数据库的多个服务器节点上并发执行,大大提高了执行效率。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成多个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (10)
1.一种基于分布式数据库系统的数据控制方法,其特征在于,包括:
主控服务器节点接收存储过程和函数执行命令,并根据所述存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点,接收到所述事务开始通知的非主控服务器节点创建一个新事务;
在所述主控服务器节点执行所述存储过程和函数中的处理语句,并将所述处理语句发送至任意一个或多个所述非主控服务器节点;
所述非主控服务器节点执行该处理语句,并将获取到的处理结果返回至所述主控服务器节点;
所述主控服务器节点根据所述处理结果执行完存储过程和函数的所有处理语句,并发送事务提交通知给任意一个或多个所述非主控服务器节点,所述非主控服务器节点接收所述事务提交通知并提交创建的所述新事务。
2.根据权利要求1所述的方法,其特征在于,在主控服务器节点接收存储过程和函数执行命令之前,所述方法还包括:
所述主控服务器节点接收创建所述存储过程和函数的创建命令;
根据所述创建命令解析所述存储过程和函数的作词法和语法,并记录保存所述存储过程和函数中的每一句处理语句的内容。
3.根据权利要求2所述的方法,其特征在于,在所述主控服务器节点执行所述存储过程和函数中的处理语句之前,所述方法还包括:
所述主控服务器节点将处理语句中的变量名称用具体变量值替换。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在所述主控服务器节点根据所述存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点之后,所述方法还包括:
判断所述主控服务器节点发送所述事务开始通知是否成功,在发送失败的情况下,系统结束该存储过程和函数执行操作。
5.根据权利要求4所述的方法,其特征在于,在所述主控服务器节点根据所述存储过程和函数执行命令发送事务开始通知至任意一个或多个非主控服务器节点,接收到所述事务开始通知的非主控服务器节点创建一个新事务之后,所述方法还包括:
所述非主控服务器节点将处理事务开始通知的结果返回给所述主控服务器节点;
判断所述主控服务器节点接收所述处理事务开始通知结果的时间是否超过预定时间,其中,
在超过所述预定时间的情况下,在执行所述存储过程和函数命令失败;
在未超过所述预定时间的情况下,如果所述主控服务器节点接收的所有非主控服务器节点处理事务开始通知结果中,有任一节点的开始事务操作发生失败,则执行所述存储过程和函数失败。
6.根据权利要求1-3中任一项所述的方法,其特征在于,在所述主控服务器节点执行所述存储过程和函数中的处理语句,并将所述处理语句发送至任意一个或多个所述非主控服务器节点之后,所述方法还包括:
判断所述主控服务器节点发送所述处理语句是否失败,在发送失败的情况下,执行该存储过程和函数此次执行失败。
7.根据权利要求6所述的方法,其特征在于,在所述非主控服务器节点执行该处理语句,并将获取到的处理结果返回至所述主控服务器节点之后,所述方法还包括:
在所述主控服务器节点接收的所有非主控服务器节点执行处理语句结果中,如果有任一非主控服务器节点执行处理语句过程中发生失败,则执行所述存储过程和函数失败;或者
在所述主控服务器节点等待任一非主控服务器节点执行处理语句结果的时间超过了某一个时间限制后,则所述存储过程和函数执行失败。
8.一种基于分布式数据库系统的数据控制系统,其特征在于,包括:
主控服务器,用于接收存储过程和函数执行命令,并根据所述存储过程和函数执行命令发送事务开始通知,同时执行所述存储过程和函数中的处理语句,在执行完存储过程和函数的所有处理语句之后,发送事务提交通知;
一个或多个非主控服务器,用于在接收到所述事务开始通知之后创建一个新事务,同时执行接收到的所述处理语句,并在接收到所述事务提交通知之后提交创建的新事务。
9.根据权利要求8所述的系统,其特征在于,所述主控服务器还包括:
创建单元,用于接收客户端发出的创建所述存储过程和函数的创建命令,并根据所述创建命令解析所述存储过程和函数的作词法和语法,同时记录保存所述存储过程和函数中的每一句处理语句的内容。
10.根据权利要求8所述的系统,其特征在于,所述主控服务器还包括:
第一判断模块,用于判断所述主控服务器节点发送所述事务开始通知是否成功,在发送失败的情况下,系统结束该存储过程和函数执行操作;
第二判断模块,用于判断所述主控服务器节点接收所述处理事务开始通知结果的时间是否超过预定时间,其中,在超过所述预定时间的情况下,在执行所述存储过程和函数命令失败;在未超过所述预定时间的情况下,如果所述主控服务器节点接收的所有非主控服务器节点处理事务开始通知结果中,有任一节点的开始事务操作发生失败,则执行所述存储过程和函数失败;
第三判断模块,用于判断所述主控服务器节点发送所述处理语句是否失败,在发送失败的情况下,执行该存储过程和函数此次执行失败。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110246791.2A CN102955801B (zh) | 2011-08-25 | 2011-08-25 | 基于分布式数据库系统的数据控制方法及系统 |
PCT/CN2012/074552 WO2013026287A1 (zh) | 2011-08-25 | 2012-04-23 | 基于分布式数据库系统的数据控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110246791.2A CN102955801B (zh) | 2011-08-25 | 2011-08-25 | 基于分布式数据库系统的数据控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102955801A true CN102955801A (zh) | 2013-03-06 |
CN102955801B CN102955801B (zh) | 2017-06-16 |
Family
ID=47745884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110246791.2A Active CN102955801B (zh) | 2011-08-25 | 2011-08-25 | 基于分布式数据库系统的数据控制方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102955801B (zh) |
WO (1) | WO2013026287A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017156673A1 (zh) * | 2016-03-14 | 2017-09-21 | 华为技术有限公司 | 一种存储过程处理方法及装置 |
CN107729421A (zh) * | 2017-09-27 | 2018-02-23 | 华为技术有限公司 | 存储过程的执行方法、装置及存储介质 |
CN109992259A (zh) * | 2019-04-15 | 2019-07-09 | 成都四方伟业软件股份有限公司 | 函数动态创建方法、装置及电子设备 |
CN112685497A (zh) * | 2020-12-25 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种mysql数据库集群的数据操作执行方法、装置及设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229628B (zh) * | 2016-03-23 | 2022-02-01 | 金篆信科有限责任公司 | 分布式数据库预处理的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089857A (zh) * | 2007-07-24 | 2007-12-19 | 中兴通讯股份有限公司 | 一种内存数据库事务管理方法及系统 |
CN101567006A (zh) * | 2009-05-25 | 2009-10-28 | 中兴通讯股份有限公司 | 一种数据库系统及分布式sql语句执行计划重用方法 |
CN101576915A (zh) * | 2009-06-18 | 2009-11-11 | 北京大学 | 一种分布式b+树索引系统及构建方法 |
US20100005124A1 (en) * | 2006-12-07 | 2010-01-07 | Robert Edward Wagner | Automated method for identifying and repairing logical data discrepancies between database replicas in a database cluster |
CN101699439A (zh) * | 2009-11-16 | 2010-04-28 | 中兴通讯股份有限公司 | 一种数据库的事务提交方法和装置 |
CN101901222A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种sql解析及匹配的方法和系统 |
CN101950297A (zh) * | 2010-09-10 | 2011-01-19 | 北京大学 | 一种海量语义数据的存储和查询方法及装置 |
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603B (zh) * | 2008-04-11 | 2011-03-30 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
WO2009149388A1 (en) * | 2008-06-06 | 2009-12-10 | Pivot3 | Method and system for distributing commands to targets |
-
2011
- 2011-08-25 CN CN201110246791.2A patent/CN102955801B/zh active Active
-
2012
- 2012-04-23 WO PCT/CN2012/074552 patent/WO2013026287A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100005124A1 (en) * | 2006-12-07 | 2010-01-07 | Robert Edward Wagner | Automated method for identifying and repairing logical data discrepancies between database replicas in a database cluster |
CN101089857A (zh) * | 2007-07-24 | 2007-12-19 | 中兴通讯股份有限公司 | 一种内存数据库事务管理方法及系统 |
CN101567006A (zh) * | 2009-05-25 | 2009-10-28 | 中兴通讯股份有限公司 | 一种数据库系统及分布式sql语句执行计划重用方法 |
CN101901222A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种sql解析及匹配的方法和系统 |
CN101576915A (zh) * | 2009-06-18 | 2009-11-11 | 北京大学 | 一种分布式b+树索引系统及构建方法 |
CN101699439A (zh) * | 2009-11-16 | 2010-04-28 | 中兴通讯股份有限公司 | 一种数据库的事务提交方法和装置 |
CN101950297A (zh) * | 2010-09-10 | 2011-01-19 | 北京大学 | 一种海量语义数据的存储和查询方法及装置 |
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
Non-Patent Citations (1)
Title |
---|
王建林: "基于分布式数据访问框架的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑 》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017156673A1 (zh) * | 2016-03-14 | 2017-09-21 | 华为技术有限公司 | 一种存储过程处理方法及装置 |
CN107729421A (zh) * | 2017-09-27 | 2018-02-23 | 华为技术有限公司 | 存储过程的执行方法、装置及存储介质 |
WO2019062156A1 (zh) * | 2017-09-27 | 2019-04-04 | 华为技术有限公司 | 存储过程的执行方法、装置及存储介质 |
CN107729421B (zh) * | 2017-09-27 | 2019-11-15 | 华为技术有限公司 | 存储过程的执行方法、装置及存储介质 |
CN109992259A (zh) * | 2019-04-15 | 2019-07-09 | 成都四方伟业软件股份有限公司 | 函数动态创建方法、装置及电子设备 |
CN112685497A (zh) * | 2020-12-25 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种mysql数据库集群的数据操作执行方法、装置及设备 |
CN112685497B (zh) * | 2020-12-25 | 2024-02-13 | 北京浪潮数据技术有限公司 | 一种mysql数据库集群的数据操作执行方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2013026287A1 (zh) | 2013-02-28 |
CN102955801B (zh) | 2017-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2932370B1 (en) | System and method for performing a transaction in a massively parallel processing database | |
US8090806B1 (en) | Two-stage network device configuration process | |
US8738568B2 (en) | User-defined parallelization in transactional replication of in-memory database | |
CN101188566B (zh) | 一种集群环境下数据缓存同步的方法及系统 | |
CN101098248B (zh) | 一种基于配置描述文件实现通用网络管理的方法及系统 | |
CN102148817B (zh) | 配置网络设备的方法、客户端、服务器端及网络系统 | |
CN106713391B (zh) | 一种session信息的共享方法和共享系统 | |
CN103036717A (zh) | 分布式数据的一致性维护系统和方法 | |
CN110716793B (zh) | 一种分布式事务的执行方法、装置、设备及存储介质 | |
CN104917833A (zh) | 一种基于nio请求的异步信息处理方法 | |
CN102955801A (zh) | 基于分布式数据库系统的数据控制方法及系统 | |
CN102981857A (zh) | 数据库集群的并行压缩海量数据装载方法 | |
CN103581332A (zh) | HDFS架构及HDFS架构中NameNode节点的压力分解方法 | |
WO2011145046A2 (en) | Smart database caching | |
CN112751847A (zh) | 接口调用请求的处理方法、装置、电子设备及存储介质 | |
CN107682460A (zh) | 一种分布式存储集群数据通信方法及系统 | |
CN108090056B (zh) | 数据查询方法、装置及系统 | |
KR20190139095A (ko) | 분산 캐시 환경에서 니어 캐시를 제어하는 방법 및 이를 이용한 분산 캐시 서버 | |
US20150271009A1 (en) | Latency virtualization data accelerator | |
CN102427474B (zh) | 云存储中的数据传输系统 | |
CN103577424A (zh) | 分布式数据库视图的实现方法及系统 | |
CN113032477B (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 | |
EP3629616B1 (en) | Data interaction method, device and equipment | |
KR100492167B1 (ko) | 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법 | |
CN105187244A (zh) | 一种支持多种管理模式的数字通信设备访问管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |