CN113609104A - 一种部分故障的键值对分布式存储***访问方法及装置 - Google Patents
一种部分故障的键值对分布式存储***访问方法及装置 Download PDFInfo
- Publication number
- CN113609104A CN113609104A CN202110956820.8A CN202110956820A CN113609104A CN 113609104 A CN113609104 A CN 113609104A CN 202110956820 A CN202110956820 A CN 202110956820A CN 113609104 A CN113609104 A CN 113609104A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- distributed storage
- storage system
- access
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000010076 replication Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种部分故障的键值对分布式存储***访问方法及装置,键值对分布式存储***包括多段数据区域,各段数据区域分别对应相应关键字,方法包括:确定键值对分布式存储***发生部分故障;确定键值对分布式存储***故障的关键字范围;接收数据访问信号;确定数据访问信号对应的访问关键字范围;当访问数据位于故障的关键字范围时,将数据访问信号发至关系型数据库管理***;根据数据访问信号对关系型数据库管理***进行相应的访问操作。在键值对分布式存储***发生部分故障时,对故障部分的访问,可转到对关系型数据库管理***的访问,使得在键值对分布式存储***发生部分故障时,写入和部分读取功能仍然能够使用,从而提高了***的可用性。
Description
技术领域
本公开涉及键值对分布式存储***技术领域,尤其涉及一种部分故障的键值对分布式存储***访问方法及装置。
背景技术
键值对(Key-Value)分布式存储***一般由多个节点组成的,键值对分布式存储***的每条数据例如以3个副本写到不同的3个节点的3个磁盘上,当检查到如果同时有2块或以上的磁盘损坏,那么多数副本位于这些损坏的磁盘上的数据区域将变得不可用,因此会出现键值对分布式存储***无法访问的情况。
现有技术中,键值对分布式存储***通常采用进一步增加副本数量的方式来解决多个磁盘同时损坏的情况。但是通过增加副本的方式降低***不可访问的情况会带来.***运行成本大大增加的问题。
发明内容
本公开提供一种部分故障的键值对分布式存储***访问方法及装置,用以解决现有技术中为增加***可用性通过增加数据副本数量的方式从而增加***运行成本及造成***延迟等的缺陷,实现***部分故障时可继续访问数据且不增加***负担的目的。
本公开提供一种部分故障的键值对分布式存储***访问方法,键值对分布式存储***包括多段数据区域,各段所述数据区域分别对应相应的关键字,所述方法包括:
确定键值对分布式存储***发生部分故障;
确定键值对分布式存储***故障的关键字范围;
接收数据访问信号;
确定所述数据访问信号对应的访问关键字范围;
当所述访问数据位于所述故障的关键字范围时,将所述数据访问信号发送至关系型数据库管理***;
根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作。
根据本公开提供的一种部分故障的键值对分布式存储***访问方法,所述键值对分布式存储***包括多个节点服务器,各段所述数据区域的数据的副本分别存储在设定个数的节点服务器的磁盘中,所述确定键值对分布式存储***故障的关键字范围,具体包括:按照预设间隔定期查看键值对分布式存储***的各节点服务器述磁盘工作状态,当其中大于等于设定阈值个数的所述节点服务器的磁盘发生损坏时,将所述键值对分布式存储***判定为发生故障,并确定对应的数据故障区域范围。
根据本公开提供的一种部分故障的键值对分布式存储***访问方法,所述根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作,具体包括:
当所述数据访问信号为数据写入请求信号时,将所述数据访问信号的写入数据写入所述关系型数据库管理***中;
接收键值对分布式存储***故障解除信号;
将写入所述关系型数据库管理***中的数据复制到所述键值对分布式存储***中对应的数据区域内。
根据本公开提供的一种故障的键值对分布式存储***访问方法,所述接收键值对分布式存储***故障解除信号,具体包括:查看键值对分布式存储***的各节点服务器述磁盘工作状态,当其中小于设定阈值个数的所述节点服务器的磁盘发生损坏时,所述键值对分布式存储***故障解除。
根据本公开提供的一种部分故障的键值对分布式存储***访问方法,所述当所述数据访问信号为数据写入请求信号时,将所述数据访问信号的写入数据写入所述关系型数据库管理***中,具体包括:
在所述关系型数据库管理***中建立关键字-值列表;
确定所述数据访问信号的要写入数据对应的关键字;
将要写入数据对应的关键字写入所述列表中对应关键字的位置;
将要写入数据的内容写入所述列表中对应其关键字对应的值的位置。
根据本公开提供的一种部分故障的键值对分布式存储***访问方法,所述将写入所述关系型数据库管理***中的数据复制到所述键值对分布式存储***中对应的数据区域内,具体包括:
将所述关系型数据库管理***中的关键字-值列表中的关键字位置的各关键字与所述键值对分布式存储***中的关键字进行匹配;
将所述列表中的值的数据按照键值对分布式存储***中匹配的关键字存入其对应的数据区域内。
根据本公开提供的一种部分故障的键值对分布式存储***访问方法,所述根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作,具体包括:
当所述数据访问信号为数据读取请求信号时,获取所述数据访问信号要读取数据所对应的关键字;
在所述列表中查询与要读取数据所对应的关键字对应的关键字的值的数据:当所述值的数据中存在所述要读取数据的记录时,将对应的所述记录输出;当所述值的数据中不存在所述要读取数据的记录时,输出访问失败的结果。
本公开还提供一种部分故障的键值对分布式存储***访问装置,所述键值对分布式存储***包括多段数据区域,各段所述数据区域分别对应相应的关键字,所述装置包括:
***故障确定单元,用于确定键值对分布式存储***发生部分故障;
故障关键字确定单元,用于当所述键值对分布式存储***发生故障时,确定键值对分布式存储***故障的关键字范围;
访问信号接收单元,用于接收数据访问信号;
访问信号关键字确定单元,用于确定所述数据访问信号对应的访问关键字范围;
访问信号切换发送单元,用于当所述访问数据位于所述故障的关键字范围时,将所述数据访问信号发送至关系型数据库管理***;
访问单元,用于根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作。
本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述部分故障的键值对分布式存储***访问方法的步骤。
本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述部分故障的键值对分布式存储***访问方法的步骤。
本公开提供的故障的键值对分布式存储***访问方法及装置,在键值对分布式存储***发生部分故障时,通过一个后备的关系型数据库管理***,对键值对分布式存储***的部分访问失败,可以转到对后备关系型数据库管理***的访问,使得在键值对分布式存储***发生部分故障时,写入和部分读取功能仍然能够使用,从而提高了整个***的可用性。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开提供的部分故障的键值对分布式存储***访问方法的流程示意图;
图2是图1中在步骤160中当数据访问信号为数据写入请求信号时步骤150的具体流程示意图;
图3是图2中步骤210的具体流程示意图;
图4是图2中步骤230的具体流程示意图;
图5是图1中在步骤160中当数据访问信号为数据读取请求信号时步骤160的具体流程示意图;
图6是本公开提供的部分故障的键值对分布式存储***访问切换***的结构示意图;
图7是本公开提供的部分故障的键值对分布式存储***访问装置的结构示意图;
图8是本公开提供的电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开实施例一部分实施例,而不是全部的实施例。基于本公开实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开实施例保护的范围。
一个键值对分布式存储***(Key-Value)以下简称KV***,是由多个节点组成的,KV***的每条数据通常以3个副本写到不同的3个节点的3个磁盘上,这里以分布式TiKV***(开源的分布式事务Key-Value数据库)为例,所有的关键字(key)按照字典序分段,每一段数据被称为数据区域(region),每个region的数据会分别写到3块不同的磁盘上。对于TiKV来说,如果同时有2块或以上的磁盘损坏,那么多数副本位于这些损坏的磁盘上的region将变得不可用。
如图1所示,本公开实施例提供一种部分故障的键值对分布式存储***访问方法,键值对分布式存储***包括多段数据区域,各段所述数据区域分别对应相应的关键字,当所述键值对分布式存储***发生部分故障时,所述方法包括:
步骤110:确定键值对分布式存储***发生部分故障;
本公开实施例中,***设置按照预设时间间隔对***的工作状态进行检查,当***的一个关键字或者几个关键字(不包括全部关键字)对应的数据区域的数据存在写入或读取问题时即认为***发生部分故障。本公开实施例提供的访问方法针对的是KV***部分故障时的访问方法。
步骤120:确定键值对分布式存储***故障的关键字范围;
本公开实施例中,所述键值对分布式存储***包括多个节点服务器,各段所述数据区域的数据的副本分别存储在设定个数的节点服务器的磁盘中,因此本步骤具体包括:按照预设间隔定期查看键值对分布式存储***的各节点服务器述磁盘工作状态,当其中大于等于设定阈值个数的所述节点服务器的磁盘发生损坏时,将所述键值对分布式存储***判定为发生故障,并确定对应的数据故障区域范围。
例如在TiKV***中,通过pd-server的服务得知当前KV***的各个region的分布,和每个实例(磁盘)的工作状态。TiKV***中数据以副本形式保存在3个磁盘中,当其中2个以上磁盘发生损坏时,即认为KV***发生故障或部分故障,对应故障的数据区域的访问操作切换至MySQL***中。
步骤130:接收数据访问信号;
本公开实施例中,数据访问信号可以是对数据的写入信号也可能是对数据的读取信号。
步骤140:确定所述数据访问信号对应的访问关键字范围;
本公开实施例中,数据访问信号中包括要写入或者读取的数据所对应的关键字(key)。
步骤150:当所述访问数据位于所述故障的关键字范围时,将所述数据访问信号发送至关系型数据库管理***;
本公开实施例中,当数据访问信号的关键字处于步骤110确定的数据故障区域的关键字范围时,将数据访问切换至对关系型数据库管理***(MySQL)的访问。
步骤160:根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作。
具体地,当所述数据访问信号为数据写入请求信号时,如图2所示,步骤160具体包括:
步骤210:将所述数据访问信号的写入数据写入所述关系型数据库管理***中;
本步骤中,当数据访问信号为数据写入请求信号且数据访问信号对应的写入的数据区域为KV***发生故障的数据区域时,将要写入的数据内容写入到MySQL***中。
写入过程如图3所示,具体包括:
步骤310:在所述关系型数据库管理***中建立关键字-值列表;
在MySQL***中,对数据访问信号要写入的内容建立关键字-值列表。
步骤320:确定所述数据访问信号的要写入数据对应的关键字;
步骤330:将要写入数据对应的关键字写入所述列表中对应关键字的位置;
将要写入数据对应的关键字写入关键字-值列表中的“关键字”的位置中。
步骤340:将要写入数据的内容写入所述列表中对应其关键字对应的值的位置。
将要写入数据的内容写入关键字-值列表中对应其关键字对应的“值”的位置中。
步骤220:接收键值对分布式存储***故障解除信号;
本步骤具体包括:查看键值对分布式存储***的各节点服务器述磁盘工作状态,当其中小于设定阈值个数的所述节点服务器的磁盘发生损坏时,所述键值对分布式存储***故障解除。
例如,在TiKV***中,通过pd-server的服务得知当前KV***的各个region的分布,和每个实例(磁盘)的工作状态。当TiKV***中存储数据副本的3个磁盘中,当其中2个以上磁盘损坏恢复时,即认为KV***故障解除,准备将数据访问路径由MySQL***切换至KV***中。
步骤230:将写入所述关系型数据库管理***中的数据复制到所述键值对分布式存储***中对应的数据区域内。
本公开实施例中,关系型数据库管理***即MySQL***中的binlog模块具有数据复制功能,当KV***故障恢复后,通过binlog模块将临时写入MySQL***中的数据复制到KV***相应的数据区域内。
具体地,如图4所示步骤230包括:
步骤410:将所述关系型数据库管理***中的关键字-值列表中的关键字位置的各关键字与所述键值对分布式存储***中的关键字进行匹配;
将MySQL***中建立的关键字-值列表中的各关键字与KV***中的关键字对应。
步骤420:将所述列表中的值的数据按照键值对分布式存储***中匹配的关键字存入其对应的数据区域内。
将MySQL***中关键字-值列表中对应各关键字的值的内容分别复制到KV***对应各关键字的数据区域内。
当所述数据访问信号为数据读取请求信号时,如图5所示,步骤160具体包括:
步骤510:当所述数据访问信号为数据读取请求信号时,获取所述数据访问信号要读取数据所对应的关键字;
当KV***部分故障且数据访问信号要访问的为故障的关键字范围内的数据时,数据访问信号准备对MySQL***中关键字-值列表中的数据进行读取访问。
步骤520:在所述列表中查询与要读取数据所对应的关键字对应的关键字的值的数据:当所述值的数据中存在所述要读取数据的记录时,将对应的所述记录输出;当所述值的数据中不存在所述要读取数据的记录时,输出访问失败的结果。
本公开实施例中,当KV***发生部分故障时,数据访问信号为数据读取请求信号时,数据访问信号只能对MySQL***中关键字-值列表中的数据进行读取访问,如果关键字-值列表中之前的写入的数据中包括要读取的数据,则输出相应的查询数据记录,如果要读取的数据不存在于关键字-值列表中,则输出访问失败结果。
本公开实施例提供的部分故障的键值对分布式存储***(KV***)访问方法,在KV***发生多个磁盘损坏时,通过一个后备的小的MySQL***,对分布式KV***的部分访问(指key的某个范围)失败,可以转到对后备MySQL***的访问;而在分布式KV***故障恢复后,需要先将写入到后备MySQL***的数据复制到分布式KV***中,然后再将对故障对应的key的访问切回到对分布式KV***的访问。本公开实施例中涉及的MySQL***为集群式结构,一般为1主设备1从设备或者1主设备2从设备的结构,而KV***同样为集群式结构,但是一般有10台设备、20台设备甚至更多的设备,因此本公开实施例中,MySQL***相较于KV***为轻量级小***,因此当KV***部分故障时数据访问时对MySQL***进行访问的方式相较于增加***副本数量的方式,不会增加***整体运行负担、访问速度快。
将MySQL***作为分布式KV***存储的后备***,以降低***运行成本,解决规模较大的KV***一段时间部分不可用的问题。
利用MySQL binlog的replication功能将写入MySQL***中的数据同步回分布式KV***中,实现故障前和故障后的平滑切换。
如图6所示,对本公开实施例提供的部分故障的键值对分布式存储***访问切换***进行描述,下文描述的部分故障的键值对分布式存储***访问切换***与上文描述的部分故障的键值对分布式存储***访问方法可相互对应参照。
本公开实施例提供一种部分故障的键值对分布式存储***访问切换***,所述键值对分布式存储***包括多段数据区域,各段所述数据区域分别对应相应的关键字,访问切换***包括:
状态检查模块(Health Check Service)610,用于定期检查分布式KV***集群,查看集群中是否有同时两个或两个以上的磁盘损坏,如果发现了损坏,则记录当前的状态和损坏的关键字(key)的范围;并向KV***APP模块发送当前KV***工作状态;
APP模块620,用于接收状态检查模块的信息,访问KV***的应用,主要是对KV***集群的Get和Put操作;
复制模块(Replication Service)630,用于在分布式KV***故障恢复后,通过MySQL binlog将写入的数据恢复到分布式KV***中。
当KV***故障时的访问切换过程为:
状态检查模块检测到分布式KV***发生了部分故障,部分范围的key读写失败;
状态检查模块通知KV***APP模块对故障范围内的key的读写切换到后备的MySQL***中;
KV***APP模块收到切换信息后:
a.将故障范围内的key的Put(写入)请求写入MySQL***中;
对于Get(读取)请求:
b.如果要读取的记录在MySQL***中,直接返回MySQL***中的记录;
c.如果要读取的记录不在MySQL***中,则返回读取失败的结果,因为改读取数据不存在于MySQL***中但是不确定该记录是否存在于KV***中;
状态检查模块检测到分布式KV***的故障已经恢复,通知复制模块分布式KV***故障恢复;
复制模块从MySQL***的binlog中读取写入数据记录,将这些记录写入到分布式KV***中。
当KV***故障恢复后的访问切换过程为:
状态检查模块请求复制模块的工作状态;
当接收到复制模块的binlog数据复制全部完成的消息后,状态检查模块通知KV***APP模块停止写入MySQL***;
KV***APP模块将***访问路径切换至分布式KV***中。
如图7所示,对本公开实施例提供的部分故障的键值对分布式存储***访问装置进行描述,下文描述的部分故障的键值对分布式存储***访问装置与上文描述的部分故障的键值对分布式存储***访问方法可相互对应参照。
一个键值对分布式存储***(Key-Value)以下简称KV***,是由多个节点组成的,所有的关键字(key)按照字典序分段,每一段数据被称为数据区域(region)。
本公开提供一种部分故障的键值对分布式存储***访问装置,所述键值对分布式存储***包括多段数据区域,各段所述数据区域分别对应相应的关键字,所述装置包括:
***故障确定单元710,用于确定键值对分布式存储***发生部分故障;
故障关键字确定单元720,用于当所述键值对分布式存储***发生故障时,确定键值对分布式存储***故障的关键字范围;
本公开实施例中,故障关键字确定单元720按照预设间隔定期查看键值对分布式存储***的各节点服务器述磁盘工作状态,当其中大于等于设定阈值个数的所述节点服务器的磁盘发生损坏时,将所述键值对分布式存储***判定为发生故障,并确定对应的数据故障区域范围。
例如,TiKV***中数据以副本形式保存在3个磁盘中,当其中2个以上磁盘发生损坏时,即认为KV***发生故障或部分故障,对应故障的数据区域的访问操作切换至MySQL***中。
访问信号接收单元730,用于接收数据访问信号;
本公开实施例中,数据访问信号可以是对数据的写入信号也可能是对数据的读取信号。
访问信号关键字确定单元740,用于确定所述数据访问信号对应的访问关键字范围;
本公开实施例中,数据访问信号中包括要写入或者读取的数据所对应的关键字(key)。
访问信号切换发送单元750,用于当所述访问数据位于所述故障的关键字范围时,将所述数据访问信号发送至关系型数据库管理***;
本公开实施例中,当数据访问信号的关键字处于故障关键字确定单元720确定的数据故障区域的关键字范围时,将数据访问切换至对关系型数据库管理***(MySQL)的访问。
访问单元760,用于根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作。
本公开实施例中,具体地,当所述数据访问信号为数据写入请求信号时,访问单元760具体包括:
写入子单元,用于将所述数据访问信号的写入数据写入所述关系型数据库管理***中;当数据访问信号为数据写入请求信号且数据访问信号对应的写入的数据区域为KV***发生故障的数据区域时,将要写入的数据内容写入到MySQL***中。
故障解除接收子单元,用于接收键值对分布式存储***故障解除信号;
查看键值对分布式存储***的各节点服务器述磁盘工作状态,当其中小于设定阈值个数的所述节点服务器的磁盘发生损坏时,所述键值对分布式存储***故障解除。
例如,当TiKV***中存储数据副本的3个磁盘中,当其中2个以上磁盘损坏恢复时,即认为KV***故障解除,准备将数据访问路径由MySQL***切换至KV***中。
数据复制子单元,用于将写入所述关系型数据库管理***中的数据复制到所述键值对分布式存储***中对应的数据区域内。
本公开实施例中,关系型数据库管理***即MySQL***中的binlog模块具有数据复制功能,当KV***故障恢复后,通过binlog模块将临时写入MySQL***中的数据复制到KV***相应的数据区域内。
具体地,写入子单元具体包括:
列表建立子单元,用于在所述关系型数据库管理***中建立关键字-值列表;
在MySQL***中,对数据访问信号要写入的内容建立关键字-值列表。
写入数据关键字确定子单元,用于确定所述数据访问信号的要写入数据对应的关键字;
写入数据关键字写入子单元,用于将要写入数据对应的关键字写入所述列表中对应关键字的位置;
将要写入数据对应的关键字写入关键字-值列表中的“关键字”的位置中。
写入数据值写入子单元,将要写入数据的内容写入所述列表中对应其关键字对应的值的位置。
将要写入数据的内容写入关键字-值列表中对应其关键字对应的“值”的位置中。
具体地,数据复制子单元包括:
关键字匹配子单元,用于将所述关系型数据库管理***中的关键字-值列表中的关键字位置的各关键字与所述键值对分布式存储***中的关键字进行匹配;
将MySQL***中建立的关键字-值列表中的各关键字与KV***中的关键字对应。
复制写入子单元,用于将所述列表中的值的数据按照键值对分布式存储***中匹配的关键字存入其对应的数据区域内。
将MySQL***中关键字-值列表中对应各关键字的值的内容分别复制到KV***对应各关键字的数据区域内。
本公开实施例中,当所述数据访问信号为数据读取请求信号时,访问单元760具体包括:
读取数据关键字获取子单元,用于当所述数据访问信号为数据读取请求信号时,获取所述数据访问信号要读取数据所对应的关键字;
当KV***部分故障且数据访问信号要访问的为故障的关键字范围内的数据时,数据访问信号准备对MySQL***中关键字-值列表中的数据进行读取访问。
查询子单元,用于在所述列表中查询与要读取数据所对应的关键字对应的关键字的值的数据:当所述值的数据中存在所述要读取数据的记录时,将对应的所述记录输出;当所述值的数据中不存在所述要读取数据的记录时,输出访问失败的结果。
本公开实施例中,当KV***发生部分故障时,数据访问信号为数据读取请求信号时,数据访问信号只能对MySQL***中关键字-值列表中的数据进行读取访问,如果关键字-值列表中之前的写入的数据中包括要读取的数据,则输出相应的查询数据记录,如果要读取的数据不存在于关键字-值列表中,则输出访问失败结果。
将MySQL***作为分布式KV***存储的后备***,以降低***运行成本,解决规模较大的KV***一段时间部分不可用的问题。
利用MySQL binlog的replication功能将写入MySQL***中的数据同步回分布式KV***中,实现故障前和故障后的平滑切换。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行部分故障的键值对分布式存储***访问方法,该方法包括:确定键值对分布式存储***发生部分故障;确定键值对分布式存储***故障的关键字范围;接收数据访问信号;确定所述数据访问信号对应的访问关键字范围;当所述访问数据位于所述故障的关键字范围时,将所述数据访问信号发送至关系型数据库管理***;根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本公开还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的部分故障的键值对分布式存储***访问方法,该方法包括:确定键值对分布式存储***发生部分故障;确定键值对分布式存储***故障的关键字范围;接收数据访问信号;确定所述数据访问信号对应的访问关键字范围;当所述访问数据位于所述故障的关键字范围时,将所述数据访问信号发送至关系型数据库管理***;根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作。
又一方面,本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的部分故障的键值对分布式存储***访问方法,该方法包括:确定键值对分布式存储***发生部分故障;确定键值对分布式存储***故障的关键字范围;接收数据访问信号;确定所述数据访问信号对应的访问关键字范围;当所述访问数据位于所述故障的关键字范围时,将所述数据访问信号发送至关系型数据库管理***;根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
Claims (10)
1.一种部分故障的键值对分布式存储***访问方法,其特征在于,所述键值对分布式存储***包括多段数据区域,各段所述数据区域分别对应相应的关键字,所述方法包括:
确定键值对分布式存储***发生部分故障;
确定键值对分布式存储***故障的关键字范围;
接收数据访问信号;
确定所述数据访问信号对应的访问关键字范围;
当所述访问数据位于所述故障的关键字范围时,将所述数据访问信号发送至关系型数据库管理***;
根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作。
2.根据权利要求1所述的部分故障的键值对分布式存储***访问方法,其特征在于,所述确定键值对分布式存储***故障的关键字范围,具体包括:
按照预设间隔定期查看键值对分布式存储***的各节点服务器述磁盘工作状态;其中,所述键值对分布式存储***包括多个节点服务器,各段所述数据区域的数据的副本分别存储在设定个数的节点服务器的磁盘中;
当其中大于等于设定阈值个数的所述节点服务器的磁盘发生损坏时,将所述键值对分布式存储***判定为发生故障,并确定对应的数据故障区域范围。
3.根据权利要求2所述的部分故障的键值对分布式存储***访问方法,其特征在于,所述根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作,具体包括:
当所述数据访问信号为数据写入请求信号时,将所述数据访问信号的写入数据写入所述关系型数据库管理***中;
接收键值对分布式存储***故障解除信号;
将写入所述关系型数据库管理***中的数据复制到所述键值对分布式存储***中对应的数据区域内。
4.根据权利要求3所述的部分故障的键值对分布式存储***访问方法,其特征在于,所述接收键值对分布式存储***故障解除信号,具体包括:
查看键值对分布式存储***的各节点服务器述磁盘工作状态,当其中小于设定阈值个数的所述节点服务器的磁盘发生损坏时,所述键值对分布式存储***故障解除。
5.根据权利要求3所述的部分故障的键值对分布式存储***访问方法,其特征在于,所述当所述数据访问信号为数据写入请求信号时,将所述数据访问信号的写入数据写入所述关系型数据库管理***中,具体包括:
在所述关系型数据库管理***中建立关键字-值列表;
确定所述数据访问信号的要写入数据对应的关键字;
将要写入数据对应的关键字写入所述列表中对应关键字的位置;
将要写入数据的内容写入所述列表中对应其关键字对应的值的位置。
6.根据权利要求5所述的部分故障的键值对分布式存储***访问方法,其特征在于,所述将写入所述关系型数据库管理***中的数据复制到所述键值对分布式存储***中对应的数据区域内,具体包括:
将所述关系型数据库管理***中的关键字-值列表中的关键字位置的各关键字与所述键值对分布式存储***中的关键字进行匹配;
将所述列表中的值的数据按照键值对分布式存储***中匹配的关键字存入其对应的数据区域内。
7.根据权利要求6所述的部分故障的键值对分布式存储***访问方法,其特征在于,所述根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作,具体包括:
当所述数据访问信号为数据读取请求信号时,获取所述数据访问信号要读取数据所对应的关键字;
在所述列表中查询与要读取数据所对应的关键字对应的关键字的值的数据:当所述值的数据中存在所述要读取数据的记录时,将对应的所述记录输出;当所述值的数据中不存在所述要读取数据的记录时,输出访问失败的结果。
8.一种部分故障的键值对分布式存储***访问装置,其特征在于,所述键值对分布式存储***包括多段数据区域,各段所述数据区域分别对应相应的关键字,所述装置包括:
***故障确定单元,用于确定键值对分布式存储***发生部分故障;
故障关键字确定单元,用于确定键值对分布式存储***故障的关键字范围;
访问信号接收单元,用于接收数据访问信号;
访问信号关键字确定单元,用于确定所述数据访问信号对应的访问关键字范围;
访问信号切换发送单元,用于当所述访问数据位于所述故障的关键字范围时,将所述数据访问信号发送至关系型数据库管理***;
访问单元,用于根据所述数据访问信号对所述关系型数据库管理***进行相应的访问操作。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述部分故障的键值对分布式存储***访问方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述部分故障的键值对分布式存储***访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110956820.8A CN113609104B (zh) | 2021-08-19 | 2021-08-19 | 一种部分故障的键值对分布式存储***访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110956820.8A CN113609104B (zh) | 2021-08-19 | 2021-08-19 | 一种部分故障的键值对分布式存储***访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113609104A true CN113609104A (zh) | 2021-11-05 |
CN113609104B CN113609104B (zh) | 2023-11-03 |
Family
ID=78341336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110956820.8A Active CN113609104B (zh) | 2021-08-19 | 2021-08-19 | 一种部分故障的键值对分布式存储***访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113609104B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132441A (ja) * | 1998-10-23 | 2000-05-12 | Nec Corp | 分散データベースシステム、処理装置及びデータベースアクセス方法 |
US6505305B1 (en) * | 1998-07-16 | 2003-01-07 | Compaq Information Technologies Group, L.P. | Fail-over of multiple memory blocks in multiple memory modules in computer system |
US20120284317A1 (en) * | 2011-04-26 | 2012-11-08 | Dalton Michael W | Scalable Distributed Metadata File System using Key-Value Stores |
CN105468475A (zh) * | 2015-11-16 | 2016-04-06 | 北京奇虎科技有限公司 | 数据库的备份方法及备份装置 |
CN105528373A (zh) * | 2014-10-21 | 2016-04-27 | 阿里巴巴集团控股有限公司 | 数据库故障处理方法、装置、***及服务器 |
US20170185625A1 (en) * | 2015-12-28 | 2017-06-29 | Sandisk Technologies Llc | Key-value store with partial data access |
CN109308227A (zh) * | 2018-08-24 | 2019-02-05 | 腾讯科技(深圳)有限公司 | 故障检测控制方法及相关设备 |
CN111628893A (zh) * | 2020-05-27 | 2020-09-04 | 星辰天合(北京)数据科技有限公司 | 分布式存储***的故障处理方法及装置、电子设备 |
CN111930745A (zh) * | 2020-07-31 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于前置***的分库方法及*** |
CN112115206A (zh) * | 2019-06-19 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 一种处理对象存储元数据的方法和装置 |
CN112235142A (zh) * | 2020-10-15 | 2021-01-15 | 国网江苏省电力有限公司营销服务中心 | 一种可实现关键业务容灾的用电信息采集***及其运行方法 |
-
2021
- 2021-08-19 CN CN202110956820.8A patent/CN113609104B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6505305B1 (en) * | 1998-07-16 | 2003-01-07 | Compaq Information Technologies Group, L.P. | Fail-over of multiple memory blocks in multiple memory modules in computer system |
JP2000132441A (ja) * | 1998-10-23 | 2000-05-12 | Nec Corp | 分散データベースシステム、処理装置及びデータベースアクセス方法 |
US20120284317A1 (en) * | 2011-04-26 | 2012-11-08 | Dalton Michael W | Scalable Distributed Metadata File System using Key-Value Stores |
CN105528373A (zh) * | 2014-10-21 | 2016-04-27 | 阿里巴巴集团控股有限公司 | 数据库故障处理方法、装置、***及服务器 |
CN105468475A (zh) * | 2015-11-16 | 2016-04-06 | 北京奇虎科技有限公司 | 数据库的备份方法及备份装置 |
US20170185625A1 (en) * | 2015-12-28 | 2017-06-29 | Sandisk Technologies Llc | Key-value store with partial data access |
CN109308227A (zh) * | 2018-08-24 | 2019-02-05 | 腾讯科技(深圳)有限公司 | 故障检测控制方法及相关设备 |
CN112115206A (zh) * | 2019-06-19 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 一种处理对象存储元数据的方法和装置 |
CN111628893A (zh) * | 2020-05-27 | 2020-09-04 | 星辰天合(北京)数据科技有限公司 | 分布式存储***的故障处理方法及装置、电子设备 |
CN111930745A (zh) * | 2020-07-31 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于前置***的分库方法及*** |
CN112235142A (zh) * | 2020-10-15 | 2021-01-15 | 国网江苏省电力有限公司营销服务中心 | 一种可实现关键业务容灾的用电信息采集***及其运行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113609104B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256715B2 (en) | Data backup method and apparatus | |
US20150213100A1 (en) | Data synchronization method and system | |
CN110807064B (zh) | Rac分布式数据库集群***中的数据恢复装置 | |
CN107506266B (zh) | 一种数据恢复方法及*** | |
WO2018113484A1 (zh) | 一种多副本数据恢复方法及装置 | |
US11748215B2 (en) | Log management method, server, and database system | |
CN105049258A (zh) | 网络容灾***的数据传输方法 | |
US20110295803A1 (en) | Database system, method, and recording medium of program | |
CN110121712B (zh) | 一种日志管理方法、服务器和数据库*** | |
JP5698139B2 (ja) | 同期に基づく知識を有する破棄項目 | |
CN110737716B (zh) | 一种数据写入的方法和装置 | |
JP2012506593A5 (zh) | ||
CN111352766A (zh) | 一种数据库的双活实现方法及装置 | |
WO2023151443A1 (zh) | 同步主备数据库 | |
CN113609104B (zh) | 一种部分故障的键值对分布式存储***访问方法及装置 | |
CN107888430B (zh) | 虚拟机管理操作同步方法及装置 | |
WO2023019953A1 (zh) | 数据同步方法、***、服务器及存储介质 | |
CN114564458A (zh) | 集群间数据同步的方法、装置、设备和存储介质 | |
US8549221B2 (en) | RAID management apparatus, RAID management method, and computer product | |
KR101996895B1 (ko) | 데이터베이스 복구 방법 및 장치 | |
US20220035772A1 (en) | System and method for mirroring a file system journal | |
CN116821092A (zh) | 一种基于MasterHA的数据迁移方法、装置及存储介质 | |
CN115344437A (zh) | 容灾切换方法、装置、电子设备及存储介质 | |
CN118264676A (zh) | 分布式存储的节点下线方法、装置、存储介质以及电子设备 | |
CN114880319A (zh) | 一种备份索引的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |