CN102063427A - 分布式数据库***中的异常处理***及方法 - Google Patents
分布式数据库***中的异常处理***及方法 Download PDFInfo
- Publication number
- CN102063427A CN102063427A CN2009101101795A CN200910110179A CN102063427A CN 102063427 A CN102063427 A CN 102063427A CN 2009101101795 A CN2009101101795 A CN 2009101101795A CN 200910110179 A CN200910110179 A CN 200910110179A CN 102063427 A CN102063427 A CN 102063427A
- Authority
- CN
- China
- Prior art keywords
- data base
- node
- master data
- write request
- base node
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及分布式数据库***中的异常处理***,设置于数据库节点中,其包括第一判断模块,用于判断主数据库节点是否发生异常,并输出判断结果;缓存模块,用于在判断结果为主数据库节点发生异常时,将接收到的写请求缓存;第一写请求发送模块,用于当判断结果为主数据库节点正常时,将缓存模块中的写请求转发到主数据库节点。本发明还提供分布式数据库***中的异常处理方法。上述分布式数据库***中的异常处理***及方法可解决分布式数据库***未确定新的主数据库节点时,出现暂时的写访问失败的问题。
Description
技术领域
本发明领域一般涉及数据库***领域,尤其涉及分布式数据库***发生异常时的处理方法及***。
背景技术
随着传统的数据库技术日趋成熟,计算机网络技术的飞速发展和应用范围的扩大,以分布式为主要特征的数据库***的研究与开发受到人们的注意。分布式数据库是数据库技术与计算机网络技术相结合的产物,在数据库领域已形成一个分支。在分布式数据库***中,通常采用冗余备份的方式,同时运行两个或两个以上包含相同内容的数据库节点来提高数据库***的可靠性。在只有一个主数据库节点的分布式数据库***中,由于只有主数据库节点在工作,因而客户端对数据库的写操作必须在该单一的主数据库节点上进行,而其他从数据库节点只能完成读操作的访问。
为了提高分布式数据库***的访问效率,客户端需记录当前***的主数据库节点,并将写操作请求发送到主数据库节点,因此,当分布式数据库***发生主数据库节点和备用数据库节点的切换,比如主数据库节点发生异常而没响应,此时分布式数据库***还没有确定新的主数据库节点时候,数据库***就会出现暂时的写访问失败。
发明内容
本发明的目的在于提供分布式数据库***中的异常处理***及方法,以解决主数据库节点发生异常而没响应,此时分布式数据库***还没有确定新的主数据库节点时候,数据库***就会出现暂时的写访问失败的问题。
本发明提供的分布式数据库***中的异常处理***,设置于数据库节点中,其包括第一判断模块,用于判断主数据库节点是否发生异常,并输出判断结果;缓存模块,用于在判断结果为主数据库节点发生异常时,将接收到的写请求缓存;第一写请求发送模块,用于当判断结果为主数据库节点正常时,将缓存模块中的写请求转发到主数据库节点。
优选的,上述分布式数据库***中的异常处理***还包括第二判断模块,用于判断接收到写请求或者状态变化通知的数据库节点是否为主数据库节点;当数据库节点是主数据库节点时,第二判断模块通知主数据库节点根据写请求进行写操作,并给客户端返回操作结果。
优选的,当第二判断模块判断该数据库节点不是主节点时,还通知第一判断模块判断主数据库节点是否发生异常。
优选的,上述分布式数据库***中的异常处理***还包括设置于客户端的状态信息获取模块,用于定时获取分布式数据库***各数据库节点的状态信息并输出;设置于客户端的第三判断模块,用于根据所述状态信息判断是否存在主数据库节点,并输出判断结果;设置于客户端的第二写请求发送模块,用于在判断结果为存在主数据库节点时,将写请求发往主数据库节点;或者用于在判断结果为不存在主数据库节点时,将写请求发往备用数据库节点。
本发明提供的分布式数据库***中的异常处理方法,包括数据库节点判断主数据库节点是否发生异常,并输出判断结果;在判断结果为主数据库节点发生异常时,数据库节点将接收到的写请求缓存;当判断结果为主数据库节点正常时,数据库节点缓存的写请求转发到主数据库节点。
优选的,上述分布式数据库***中的异常处理方法,在数据库节点判断主数据库节点是否发生异常,并输出判断结果之前还包括如下步骤:数据库节点接收到写请求或者状态信息之后,判断自身是否为主数据库节点,并输出判断结果;如果判断结果为自身不是主数据库节点,则所述数据库节点判断主数据库节点是否发生异常。
优选的,如果判断结果为自身是主数据库节点,则所述数据库节点处理接收到的写请求。
优选的,上述分布式数据库***中的异常处理方法,还包括如下步骤:客户端定时获取分布式数据库***各数据库节点的状态信息;客户端根据所述状态信息判断是否存在主数据库节点,并输出判断结果;如果判断结果为存在主数据库节点,客户端将写请求发往主数据库节点;如果判断结果为不存在主数据库节点,客户端将写请求发往备用数据库节点。
本发明实施例中的分布式数据库***中的异常处理***及方法,可解决主数据库节点发生异常而没响应,此时分布式数据库***还没有确定新的主数据库节点时候,数据库***就会出现暂时的写访问失败的问题。
附图说明
图1所示为本发明一种分布式数据库***实施例的示意图;
图2所示为本发明分布式数据库***中的异常处理***的一种实施例的结构示意图;
图3所示为本发明分布式数据库***中的异常处理***的另一种实施例的结构示意图;
图4所示为本发明一种分布式数据库***中的异常处理方法实施例的流程图;
图5所示为客户端进行写操作的处理流程;
图6所示为本发明数据库节点收到写操作请求的处理流程;
图7所示为本发明数据库节点收到状态变化通知的处理流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
图1所示为本发明一种分布式数据库***实施例的示意图。
分布式数据库***包括数据库节点1、数据库节点2......数据库节点M,共M个数据库节点,假定最初数据库节点1为主数据库节点,其它为备用数据库节点,分别有客户端1、客户端2......客户端N,共N个客户端接入各个数据库节点。备用数据库节点对客户端提供读操作的服务,主数据库节点对客户端提供读、写操作的服务,各个数据库节点和各个客户端之间通过网络相互连接。本发明分布式数据库***也可以包括任意多个数据库节点,并可连接任意多个客户端,其数量可根据实际需要设定。
图2所示为本发明分布式数据库***中的异常处理***200的一种实施例的结构示意图。
本实施例中的分布式数据库***中的异常处理***200可应用于图1所示的分布式数据库***。
分布式数据库***中的异常处理***200包括设置于数据库节点的第一判断模块201、缓存模块202和第一写请求发送模块203。
第一判断模块201用于判断主数据库节点是否发生异常,并输出判断结果。
缓存模块202用于在判断结果为主数据库节点发生异常时,将接收到的写请求缓存。第一写请求发送模块203用于当判断结果为主数据库节点正常时,将缓存模块202中的写请求转发到主数据库节点。
本发明实施例中的分布式数据库***中的异常处理***200,可通过第一判断模块201判断主数据库节点是否发生异常,在主数据库节点发生异常时通过缓存模块202缓存写请求;或者在主数据库节点正常时,通过第一写请求发送模块203将写请求发送到主数据库节点,从而解决主数据库节点发生异常而没响应,此时分布式数据库***还没有确定新的主数据库节点时候,分布式数据库***就会出现暂时的写访问失败的问题。
图3所示为本发明分布式数据库***中的异常处理***200的另一种实施例的结构示意图。
在本实施例中,分布式数据库***中的异常处理***200除了包括图2所示的第一判断模块201、缓存模块202和第一写请求发送模块203之外,还在数据库节点设置了第二判断模块204,并在客户端设置了状态信息获取模块205、第二写请求发送模块207和第三判断模块206。
第二判断模块204用于判断接收到写请求或者状态变化通知的数据库节点是否为主数据库节点;当数据库节点是主数据库节点时,第二判断模块204通知主数据库节点根据写请求进行写操作,并给客户端返回操作结果。当第二判断模块204判断该数据库节点不是主节点时,还通知第一判断模块201判断主数据库节点是否发生异常。
状态信息获取模块205用于定时获取分布式数据库***各数据库节点的状态信息并输出。第三判断模块206用于根据所述状态信息判断是否存在主数据库节点,并输出判断结果。第二写请求发送模块207用于在判断结果为存在主数据库节点时,将写请求发往主数据库节点;或者用于在判断结果为不存在主数据库节点时,将写请求发往备用数据库节点。
本发明实施例中的降低分布式数据库***可首先通过设置于客户端的状态信息获取模块205获取数据库节点的状态信息,并将状态信息提供给第三判断模块206进行预先判断判断当前是否存在主数据库节点,再将写请求发给主数据库节点或者备用节点,并结合上述第一判断模块201、缓存模块202、第一写请求发送模块203和第二判断模块204,解决主数据库节点发生异常而没响应,此时分布式数据库***还没有确定新的主数据库节点时候,分布式数据库***就会出现暂时的写访问失败的问题。
图4所示为本发明一种分布式数据库***中的异常处理方法实施例的流程图。
步骤S401,数据库节点接收写请求或者状态变化通知。
步骤S402,数据库节点判断主数据库节点是否发生异常,并输出判断结果。在所述判断结果为所述主数据库节点发生异常时,进入步骤S403;当所述判断结果为主数据库节点正常时,进入步骤S404。
步骤S403,数据库节点将接收到的写请求缓存。
步骤S404,数据库节点写请求转发到主数据库节点。
本发明实施例中的分布式数据库***中的异常处理方法,可通过判断主数据库节点是否发生异常,在主数据库节点发生异常时缓存写请求;或者在主数据库节点正常时,通过将写请求发送到主数据库节点,从而解决主数据库节点发生异常而没响应,此时分布式数据库***还没有确定新的主数据库节点时候,分布式数据库***就会出现暂时的写访问失败的问题。
图5、图6和图7所示为本发明另一种分布式数据库***中的异常处理方法实施例的流程图。其中,图5所示为客户端进行写操作的处理流程,图6所示为本发明数据库节点收到写操作请求的处理流程,图7所示为本发明数据库节点收到状态变化通知的处理流程图。
在本实施例中,主数据库节点和备用数据库节点之间复制同步数据可以采用单阶段、两阶段、三阶段等提交协议。分布式数据库***在当前的主数据库节点发生异常而没有主数据库节点的时候,可自动根据选举算法选举出并确定新的主数据库节点。
图5所示为客户端进行写操作的处理流程图。
步骤501,客户端定时获取分布式数据库***各数据库节点的状态信息。在本实施例中,客户端可以定时向主数据库节点和备用数据库节点发送状态获取请求,也可以由主数据库节点和备用数据库节点向客户端定时广播,且当主数据库节点和备用数据库节点的状态发生变化时,主数据库节点和备用数据库节点及时的向客户端发送通知。
步骤502,客户端根据各数据库节点的状态信息判断分布式数据库***的是否存在主数据库节点,如果存在,则转步骤503;如果不存在,则转步骤504。
步骤503,客户端将写请求发送到主数据库节点,进入图6的数据库节点收到写操作请求的处理流程。
步骤504,将写请求发送到备用数据库节点,进入图6的数据库节点收到写操作请求的处理流程。
图6所示为本发明数据库节点收到写操作请求的处理流程图。
步骤601,分布式数据库***中的数据库节点收到写请求。
步骤602,该数据库节点判断自身是否为主数据库节点,如果该数据库节点自身为主数据库节点则转步骤603,如果不是主数据库节点转步骤604。
步骤603,该数据库节点根据该写请求进行写操作,并给客户端返回操作结果,流程结束。
步骤604,该数据库节点判断主数据库节点是否发生异常,比如当该数据库节点不能和主数据库节点通信时即认为主数据库节点发生异常。如果主数据库节点发生异常,则转步骤606,如果主数据库节点正常,则转步骤605。
步骤605,该数据库节点将请求转发到主数据库节点,主数据库节点根据该写请求进行写操作,并通过该数据库节点给客户端返回操作结果,流程结束。
步骤606,该数据库节点将写操作请求缓存,并进入图7的数据库节点收到***的状态变化通知处理流程。
图7所示为本发明数据库节点收到状态变化通知的处理流程图。
步骤701,分布式数据库***中的数据库节点收到的状态变化通知,该通知携带确定当前分布式数据库***的哪个数据库节点为主数据库节点的信息。
步骤702,该数据库节点判断自身是否为新的主数据库节点,如果是则转步骤703,如果不是转步骤704。
步骤703,该数据库节点将自身缓存的写请求进行处理,并返回操作结果,流程结束。
步骤704,该数据库节点判断和主数据库节点之间的通信是否正常,如果正常,则转步骤705,如果不正常则转步骤706。在本实施例中,该数据库节点通过向主数据库节点发送心跳消息,询问主数据库节点是否正常。
步骤705,该数据库节点将写请求转发到主数据库节点,主数据库节点根据该写请求进行写操作,并通过该数据库节点给客户端返回操作结果,流程结束。
步骤706,该数据库节点继续缓存写操作,并等待分布式数据库节点的状态变化通知,本流程结束。
本发明实施例中的分布式数据库***中的异常处理方法,可首先通过客户端获取数据库节点的状态信息,并根据状态信息判断当前是否存在主数据库节点,再将写请求发给主数据库节点或者备用节点,并结合上述数据库节点判断主数据库是否存在异常,然后缓存或者转发写请求,解决主数据库节点发生异常而没响应,此时分布式数据库***还没有确定新的主数据库节点时候,分布式数据库***就会出现暂时的写访问失败的问题。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.分布式数据库***中的异常处理***,设置于数据库节点中,其特征在于,包括:
第一判断模块,用于判断主数据库节点是否发生异常,并输出判断结果;
缓存模块,用于在所述判断结果为所述主数据库节点发生异常时,将接收到的写请求缓存;
第一写请求发送模块,用于当所述判断结果为主数据库节点正常时,将缓存模块中的写请求转发到主数据库节点。
2.如权利要求1所述的降低分布式数据库***访问失败的***,其特征在于,还包括第二判断模块,用于判断接收到写请求或者状态变化通知的数据库节点是否为主数据库节点;当所述数据库节点是主数据库节点时,所述第二判断模块通知所述主数据库节点根据所述写请求进行写操作,并给客户端返回操作结果。
3.如权利要求2所述的降低分布式数据库***访问失败的***,其特征在于,当第二判断模块判断该数据库节点不是主节点时,还通知第一判断模块判断主数据库节点是否发生异常。
4.如权利要求1至3任一项所述的分布式数据库***中的异常处理***,其特征在于,包括:
设置于客户端的状态信息获取模块,用于定时获取分布式数据库***各数据库节点的状态信息并输出;
设置于客户端的第三判断模块,用于根据所述状态信息判断是否存在主数据库节点,并输出判断结果;
设置于客户端的第二写请求发送模块,用于在判断结果为存在主数据库节点时,将写请求发往主数据库节点;或者用于在判断结果为不存在主数据库节点时,将写请求发往备用数据库节点。
5.分布式数据库***中的异常处理方法,其特征在于,包括:
数据库节点判断主数据库节点是否发生异常,并输出判断结果;
在所述判断结果为所述主数据库节点发生异常时,数据库节点将接收到的写请求缓存;
当所述判断结果为主数据库节点正常时,数据库节点缓存的写请求转发到主数据库节点。
6.如权利要求5所述的分布式数据库***中的异常处理方法,其特征在于,所述数据库节点判断主数据库节点是否发生异常,并输出判断结果之前还包括如下步骤:
数据库节点接收到写请求或者状态信息之后,判断自身是否为主数据库节点,并输出判断结果;
如果判断结果为自身不是主数据库节点,则所述数据库节点判断主数据库节点是否发生异常。
7.如权利要求6所述的分布式数据库***中的异常处理方法,其特征在于,如果判断结果为自身是主数据库节点,则所述数据库节点处理接收到的写请求。
8.如权利要求5至7任一项所述的分布式数据库***中的异常处理方法,其特征在于,还包括如下步骤:
客户端定时获取分布式数据库***各数据库节点的状态信息;
客户端根据所述状态信息判断是否存在主数据库节点,并输出判断结果;
如果判断结果为存在主数据库节点,客户端将写请求发往主数据库节点;
如果判断结果为不存在主数据库节点,客户端将写请求发往备用数据库节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101101795A CN102063427A (zh) | 2009-11-12 | 2009-11-12 | 分布式数据库***中的异常处理***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101101795A CN102063427A (zh) | 2009-11-12 | 2009-11-12 | 分布式数据库***中的异常处理***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102063427A true CN102063427A (zh) | 2011-05-18 |
Family
ID=43998708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101101795A Pending CN102063427A (zh) | 2009-11-12 | 2009-11-12 | 分布式数据库***中的异常处理***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063427A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938001A (zh) * | 2012-12-10 | 2013-02-20 | 曙光信息产业(北京)有限公司 | 数据加载装置和数据加载方法 |
CN106452878A (zh) * | 2016-10-19 | 2017-02-22 | 北京悦畅科技有限公司 | 一种局域网中服务切换方法、装置和*** |
CN108428182A (zh) * | 2017-06-25 | 2018-08-21 | 平安科技(深圳)有限公司 | 开发平台装置、获取保单号的方法及计算机可读存储介质 |
-
2009
- 2009-11-12 CN CN2009101101795A patent/CN102063427A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938001A (zh) * | 2012-12-10 | 2013-02-20 | 曙光信息产业(北京)有限公司 | 数据加载装置和数据加载方法 |
CN102938001B (zh) * | 2012-12-10 | 2016-02-10 | 曙光信息产业(北京)有限公司 | 数据加载装置和数据加载方法 |
CN106452878A (zh) * | 2016-10-19 | 2017-02-22 | 北京悦畅科技有限公司 | 一种局域网中服务切换方法、装置和*** |
CN106452878B (zh) * | 2016-10-19 | 2019-09-10 | 北京悦畅科技有限公司 | 一种局域网中服务切换方法、装置和*** |
CN108428182A (zh) * | 2017-06-25 | 2018-08-21 | 平安科技(深圳)有限公司 | 开发平台装置、获取保单号的方法及计算机可读存储介质 |
CN108428182B (zh) * | 2017-06-25 | 2021-08-24 | 平安科技(深圳)有限公司 | 开发平台装置、获取保单号的方法及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103199972B (zh) | 基于soa、rs485总线实现的双机热备份切换方法及热备份*** | |
CN102148850B (zh) | 一种集群***的业务处理方法及集群*** | |
CN101729412B (zh) | 地理信息服务的分布式层次集群方法和*** | |
US9753954B2 (en) | Data node fencing in a distributed file system | |
CN104980519B (zh) | 多机房存储*** | |
CN112313916A (zh) | 一种融合区块链技术拟态存储防篡改日志的方法及*** | |
US20110145631A1 (en) | Enhanced cluster management | |
CN103346903A (zh) | 一种双机备份的方法和装置 | |
CN103905553A (zh) | 一种能效管理***的云架构及其运行方法 | |
CN101414946B (zh) | 一种远程数据备份方法及介质服务器 | |
CN114301972B (zh) | 一种基于云边协同的区块链节点分级部署方法和*** | |
CN103116661A (zh) | 一种数据库的数据处理方法 | |
CN102955845A (zh) | 数据访问方法、装置与分布式数据库*** | |
CN103377100B (zh) | 一种数据备份方法、网络节点及*** | |
WO2012145963A1 (zh) | 数据管理***及方法 | |
WO2012159575A1 (zh) | 一种双活***间动态数据同步的方法 | |
CN102411639A (zh) | 元数据的多副本存储管理方法和*** | |
KR20220052654A (ko) | 메시지 전송 버스를 이용한 고가용성 배전 지능화 시스템 및 지능화 클러스터 시스템 | |
CN102063427A (zh) | 分布式数据库***中的异常处理***及方法 | |
CN101126998A (zh) | 群聚式计算机***高速缓存数据备份处理方法及*** | |
JP4612714B2 (ja) | データ処理方法、クラスタシステム、及びデータ処理プログラム | |
CN101686244A (zh) | 一种传输服务信息的方法及*** | |
CN102571311B (zh) | 主备切换的通讯***和通讯方法 | |
CN105007172A (zh) | 一种hdfs高可用性方案的实现方法 | |
CN114697353B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110518 |