CN112711382B - 基于分布式系统的数据存储方法、装置和存储节点 - Google Patents
基于分布式系统的数据存储方法、装置和存储节点 Download PDFInfo
- Publication number
- CN112711382B CN112711382B CN202011621463.1A CN202011621463A CN112711382B CN 112711382 B CN112711382 B CN 112711382B CN 202011621463 A CN202011621463 A CN 202011621463A CN 112711382 B CN112711382 B CN 112711382B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- distributed system
- stored
- storage table
- 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.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 52
- 239000012634 fragment Substances 0.000 claims abstract description 120
- 238000005192 partition Methods 0.000 claims description 43
- 238000013467 fragmentation Methods 0.000 claims description 11
- 238000006062 fragmentation reaction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 abstract description 16
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000004083 survival effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于分布式系统的数据存储方法、装置和存储节点。其中,该方法包括:如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片;通过所述目标存储表分片在所述分布式系统内存在的可用存储节点存储所述待存储数据。本发明实施例提供的技术方案,无需增加存储表分片在多副本存储时指定的存储节点数量即可实现分布式系统内数据存储的全面容灾,从而保证分布式系统内数据存储的正常开销,避免出现原有存储表分片在分布式系统内指定的各个存储节点均出现故障时而导致数据存储失败的问题,提高分布式系统内数据存储容灾的成功率和可靠性。
Description
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种基于分布式系统的数据存储方法、装置和存储节点。
背景技术
随着互联网技术的蓬勃发展,快速迭代的应用程序和后台服务之间会存在海量的用户业务请求,也就会产生海量的业务数据,此时会搭建相应的分布式系统来存储各个业务数据,以利用所存储的业务数据来进行用户行为分析和故障实施排查等,因此为了确保分布式系统内数据的高性能成功读写,需要为该分布式系统下的数据存储提供一种可靠的容灾功能。
目前,分布式系统通常会采用数据分片的方式,在不同的存储节点上对同一分片数据进行主副本存储,从而利用增加副本数量的方式来实现数据存储的容灾,使得各个待存储数据均能够成功存储到分布式系统下该待存储数据对应的数据分片下主副本存储时指定的正常存储节点内,但是分布式系统下的多副本存储会带来大量额外的存储性能开销,而且在某一数据分片下的主副本所指定的各存储节点均存在故障时,也会使该数据分片对应的待存储数据存储失败,从而无法保证分布式系统下对于每一待存储数据的成功存储。
发明内容
本发明实施例提供了一种基于分布式系统的数据存储方法、装置和存储节点,在保证分布式系统内数据存储正常开销的基础上,提高分布式系统内数据存储容灾的成功率和可靠性。
第一方面,本发明实施例提供了一种基于分布式系统的数据存储方法,该方法包括:
如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片;
通过所述目标存储表分片在所述分布式系统内存在的可用存储节点存储所述待存储数据。
第二方面,本发明实施例提供了一种基于分布式系统的数据存储装置,该装置包括:
目标分片选取模块,用于如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片;
数据存储模块,用于通过所述目标存储表分片在所述分布式系统内存在的可用存储节点存储所述待存储数据。
第三方面,本发明实施例提供了一种分布式系统的存储节点,该存储节点包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的基于分布式系统的数据存储方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的基于分布式系统的数据存储方法。
本发明实施例提供的基于分布式系统的数据存储方法、装置和存储节点,在待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点时,从存在可用存储节点的多个存活存储表分片中选取一个目标存储表分片,然后将该待存储数据存储到该目标存储表分片在分布式系统内存在的各个可用存储节点中,无需增加存储表分片在多副本存储时指定的存储节点数量即可实现分布式系统内数据存储的全面容灾,从而保证分布式系统内数据存储的正常开销,避免出现原有存储表分片在分布式系统内指定的各个存储节点均出现故障时而导致数据存储失败的问题,提高分布式系统内数据存储容灾的成功率和可靠性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1A为本发明实施例一提供的基于分布式系统的数据存储方法的流程图;
图1B为本发明实施例一提供的基于分布式系统的数据存储过程的原理示意图;
图2A为本发明实施例二提供的基于分布式系统的数据存储方法的流程图;
图2B为本发明实施例二提供的分布式系统内数据读写过程的原理示意图;
图3A为本发明实施例三提供的基于分布式系统的数据存储方法的流程图;
图3B为本发明实施例三提供的方法中判断存储表分片指定的存储节点是否可用过程的原理示意图;
图4为本发明实施例四提供的基于分布式系统的数据存储装置的结构示意图;
图5为本发明实施例五提供的一种分布式系统的存储节点的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图1A为本发明实施例一提供的基于分布式系统的数据存储方法的流程图,本实施例可适用于任一分布式系统内存储各项数据的情况中。本实施例提供的基于分布式系统的数据存储方法可以由本发明实施例提供的基于分布式系统的数据存储装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的存储节点中,该存储节点可以是分布式系统内的各个分布式节点。
具体的,参考图1A,该方法可以包括如下步骤:
S110,如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片。
可选的,分布式系统内在存储各项数据时,通常会利用数据存储的容灾功能来确保数据的成功存储,目前考虑到数据分片的存储方式能够实现数据的并发存储,进而有效提升数据存储的高效性,分布式系统中会采用数据分片的存储方式来存储数据,因此分布式系统针对数据存储的容灾功能,通常会预先为每一存储表中用于存储各项数据的存储表分片指定多个存储节点,以通过主副本的方式在分布式系统的多个存储节点上存储同一数据。然而,由于分布式系统中的各个存储节点可能会不定时产生各种故障,而导致该存储节点无法工作,因此如果存储表中的某一存储表分片所指定的多个存储节点全部故障而无法工作,那么后续在该存储表分片下所存储的数据均无法成功存储,导致数据存储失败,因此本实施例针对上述情况,专门提供了一种特定的数据存储方式,以实现分布式系统内数据存储的全面容灾。
其中,本实施例中的待存储数据可以为任一业务执行过程中需要存储的业务数据,或者任一业务执行过程中所生成的各项日志数据等,本实施例对此不作限定。
具体的,分布式系统中的某一存储节点在接收到某一待存储数据的存储请求(也就是数据写请求)时,首先会从该存储节点的各个存储表中确定出该待存储数据指向的用于存储该待存储数据的原有存储表分片,如图1B所示,然后判断该原有存储表分片在分布式系统内所指定存储该分片数据的各个存储节点是否故障,如果该原有存储表分片在分布式系统内所指定的各个存储节点均出现故障,说明该原有存储表分片在分布式系统内不存在可用的存储节点,可能会导致该待存储数据存储失败,此时本实施例的分布式系统中每一存储节点均可以准确记录该分布式系统内的各个存储节点是否存在故障,并定期更新各个存储节点的故障情况,因此在确定待存储数据指向的原有存储表分片在分布式系统内不存在可用的存储节点时,可以按照各个存储节点的故障情况,从存储表划分的各个存储表分片中查找出在分布式系统内存在可用存储节点的存活存储表分片,该存活存储表分片在分布式系统内所指定存储该分片数据的各个存储节点中存在未出现故障的存储节点,然后按照负载均衡的原则,从各个存活存储表分片中随机选取出一个目标存储表分片,作为该存储节点的存储表中用于存储该待存储数据的分片,从而在确保数据存储负载均衡的基础上,进一步提高分布式系统内数据存储容灾的成功率和可靠性。
需要说明的是,本实施例中待存储数据指向的原有存储表分片的数量可以是一个,也可以是多个,由待存储数据的数据量决定,本实施例对此不作限定。
S120,通过目标存储表分片在分布式系统内存在的可用存储节点存储待存储数据。
可选的,在从存在可用存储节点的存活存储表分片中选取出对应的目标存储表分片后,该目标存储表分片在分布式系统内一定存在可用的存储节点,因此从分布式系统中查找出该目标存储表分片在分布式系统内所指定的用于存储该分片数据的各个可用存储节点,然后将该待存储数据对应存储到所查找出的各个可用存储节点内,无需增加存储表分片在多副本存储时指定的存储节点数量即可实现分布式系统内数据存储的全面容灾,从而保证分布式系统内数据存储的正常存储开销。
本实施例提供的技术方案,在待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点时,从存在可用存储节点的多个存活存储表分片中选取一个目标存储表分片,然后将该待存储数据存储到该目标存储表分片在分布式系统内存在的各个可用存储节点中,无需增加存储表分片在多副本存储时指定的存储节点数量即可实现分布式系统内数据存储的全面容灾,从而保证分布式系统内数据存储的正常开销,避免出现原有存储表分片在分布式系统内指定的各个存储节点均出现故障时而导致数据存储失败的问题,提高分布式系统内数据存储容灾的成功率和可靠性。
实施例二
图2A为本发明实施例二提供的基于分布式系统的数据存储方法的流程图,图2B为本发明实施例二提供的分布式系统内数据读写过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,如图2A所示,本实施例中主要对于分布式系统内对于待存储数据的具体存储过程以及对于已存储数据的具体读取过程进行详细的解释说明。
可选的,如图2A所示,本实施例中可以包括如下步骤:
S210,判断待存储数据指向的原有存储表分片在分布式系统内是否存在可用存储节点,若是,执行S250;若否,执行S220。
可选的,为了确保分布式系统内数据存储的准确性,分布式系统内的任一存储节点在接收到某一待存储数据的存储请求时,首先会从该存储节点的各个存储表中确定出该待存储数据指向的用于存储该待存储数据的原有存储表分片,然后按照该原有存储表分片在分布式系统内所指定存储该分片数据的各个存储节点是否故障,来判断该原有存储表分片在分布式系统内是否存在可用的存储节点,从而按照不同判断结果,在分布式系统的不同存储节点内执行对应的存储操作。
S220,从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片。
S230,合并待存储数据的数据原标识和目标存储表分片的分片标识,得到待存储数据的数据读取标识,以利用数据读取标识从分布式系统内读取待存储数据。
具体的,在待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点时,会从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片,此时会将该待存储数据存储到该目标存储表分片在分布式系统内所指定的各个存储节点中,也就是后续如果读取该待存储数据时,无法根据该待存储数据的数据原标识来确定该待存储数据在分布式系统内的实际存储位置,该数据原标识为待存储数据内能够唯一表示该数据身份的标识,例如数据id等,此时为了能够按照待存储数据的数据标识准确读取出所存储的数据,需要采用实际存储的位置来更新待存储数据的数据标识,本实施例中会保留待存储数据的数据原标识,如图2B所示,在该数据原标识的基础上,进一步合并所选取的目标存储表分片的分片标识,例如在唯一数据id后附上一个分隔符,并添加本次选取的目标存储表分片的分片id,得到新的唯一数据id为“ID|RECODRD_UUID”,作为本实施例中待存储数据存储到目标存储表分片所指定的各个存储节点时的数据读取标识,后续按照该数据读取标识中所记录的分片标识,即可直接查找出该存储数据在分布式系统内的实际存储位置,从而实现在保留数据原标识的基础上,从分布式系统内精准读取所存储的数据的特性。
S240,通过目标存储表分片在分布式系统内存在的可用存储节点存储待存储数据,并向存储用户反馈待存储数据的数据读取标识。
可选的,在合并待存储数据的数据原标识和目标存储表分片的分片标识,得到待存储数据的数据读取标识后,为了便于分布式系统内已存储数据的准确读取,本实施例会将该待存储数据直接存储到目标存储表分片在分布式系统内指定的各个可用存储节点内,同时将该待存储数据的数据读取标识反馈给各个存储用户,以便后续某一存储用户请求从分布式系统内读取该待存储数据时,能够直接利用该数据读取标识来读取。
S250,通过原有存储表分片在分布式系统内存在的可用存储节点存储待存储数据,并将待存储数据的数据原标识作为待存储数据的数据读取标识。
可选的,在待存储数据指向的原有存储表分片在分布式系统内存在可用存储节点时,说明该原有存储表分片即可实现待存储数据的成功存储,因此本实施例可以在分布式系统内查找出该原有存储表分片所指定存储该分片数据的各个可用存储节点,进而将该待存储数据直接存储到为该原有存储表分片所查找出的各个可用存储节点内,此时由于待存储数据直接存储在该原有存储表分片指定的存储节点上,后续读取该待存储数据时,也可以直接通过该待存储数据的数据原标识计算出该待存储数据指向的原有存储表分片,从而在该原有存储表分片指定的可用存储节点上实现待存储数据的准确读取,因此可以直接将待存储数据的数据原标识作为待存储数据的数据读取标识,而不对待存储数据的数据标识进行更改。
S260,如果待读取数据的数据读取标识中存在任一存储表分片的分片标识,则从该存储表分片在分布式系统内存在的可用存储节点中读取待读取数据;否则,从待读取数据指向的原有存储表分片在分布式系统内存在的可用存储节点中读取待读取数据。
可选的,分布式系统内的任一存储节点在接收到存储用户发起的对某一待读取数据的读取请求时,首先会解析该读取请求,确定出该待读取数据的数据读取标识,从而按照该数据读取标识的不同,确定该待读取数据在分布式系统内的实际存储位置,此时如果待读取数据的数据读取标识中存在任一存储表分片的分片标识,说明该待读取数据在存储时所指向的原有存储表分片在分布式系统内不存在可用存储节点,而存储到从存在可用存储节点的存活存储表分片中选取的目标存储表分片在分布式系统内所指定的各个可用存储节点中,且该数据读取标识中所存在的存储表分片的分片标识,也就是为实际存储该待读取数据的目标存储表分片的分片标识,因此直接按照该数据读取标识中存在的某一存储表分片的分片标识,可以从分布式系统内查找出该存储表分片指定存储该分片数据的各个可用存储节点,然后从所查找出的可用存储节点中读取该待读取数据;然而,如果待读取数据的数据读取标识中不存在任一存储表分片的分片标识,说明该待读取数据在存储时所指向的原有存储表分片在分布式系统内存在可用存储节点,直接存储到该原有存储表分片指定的各个可用存储节点内,因此可以按照该待读取数据的数据读取标识中的数据原标识,确定出该待读取数据在存储时指向的原有存储表分片,并查找出该原有存储表分片在分布式系统内指定存储该分片数据的各个可用存储节点,进而从所查找出的可用存储节点中读取该待读取数据,从而保证分布式系统内数据读取的准确性和便捷性。
本实施例提供的技术方案,在待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点时,从存在可用存储节点的多个存活存储表分片中选取一个目标存储表分片,并合并待存储数据的数据原标识和该目标存储表分片的分片标识,来确定待存储数据后续读取时的数据读取标识,然后将该待存储数据存储到该目标存储表分片在分布式系统内存在的各个可用存储节点中,无需增加存储表分片在多副本存储时指定的存储节点数量即可实现分布式系统内数据存储的全面容灾,从而保证分布式系统内数据存储的正常开销,避免出现原有存储表分片在分布式系统内指定的各个存储节点均出现故障时而导致数据存储失败的问题,提高分布式系统内数据存储容灾的成功率和可靠性;同时,从分布式系统读取某一已存储数据时,可以直接按照待读取数据的数据读取标识中存在的某一存储表分片的分片标识或者待读取数据的数据原标识,来直接从分布式系统内读取该待读取数据,保证分布式系统内数据读取的准确性和便捷性。
实施例三
图3A为本发明实施例三提供的基于分布式系统的数据存储方法的流程图,图3B为本发明实施例三提供的方法中判断存储表分片指定的存储节点是否可用过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,如图3A所示,本实施例中主要对于判断待存储数据指向的原有存储表分片在分布式系统内是否存在可用存储节点的具体判断过程进行详细的解释说明。
可选的,如图3A所示,本实施例中可以包括如下步骤:
S310,周期性检测分布式系统内各存储节点的工作状态,确定各存储表分片在分布式系统内指向的存储节点是否可用。
在本实施例中,为了准确分析各个存储节点上的存储表分片所指定存储该分片数据的存储节点是否可用,需要定时检测分布式系统内各个存储节点的工作状态,本实施例会在分布式系统内专门设置一个主节点,主要用于周期性收集分布式系统内各个存储节点的工作状态,该工作状态分为正常工作和出现故障两种,然后将各个存储节点的工作状态定时下发给分布式系统内的每一存储节点,从而在每一存储节点上准确记录各个存储节点是否存在故障,进而准确判断该存储节点上存储表的各个存储表分片在分布式系统内指向存储该分片数据的各个存储节点是否可用。
示例性的,为了提高判断各存储表分片在分布式系统内指向的存储节点是否可用的便捷性,本实施例可以根据分布式系统内各存储节点的工作状态,定期更新预构建的分片节点关联列表,该分片节点关联列表中记录有各存储表分片与分布式系统内各存储节点之间的映射关系,以及各存储节点的可用信息。
具体的,分布式系统内的每一存储节点针对其上设定的每一存储表,均会为该存储表预先构建一个分片节点关联列表,如图3B所示,该分片节点关联列表中记录有该存储表下的各个存储表分片与每一存储表分片在分布式系统内指定存储该分片数据的各个存储节点之间的映射关系,也就是将每一存储表分片作为键值对中的键,并在每一键名下记录该存储表分片在分布式系统内指定存储该分片数据的各个存储节点,作为该键下的值,同时根据分布式系统内各存储节点的工作状态,定时更新该分片节点关联列表中记录的各个存储节点是否可用的信息;此时,为了保证该分片节点关联列表的简洁性,本实施例可以在该分片节点关联列表中的每一存储表分片下仅记录该存储表分片在分布式系统内可用的存储节点,出现故障的存储节点直接删除即可,在某一存储表分片在分布式系统内指定的存储节点全部出现故障时,直接从该分片节点关联列表中删除该存储表分片的键值对信息即可,使得该分片节点关联列表中记录的存储表分片均为存在可用存储节点的存活存储表分片,以便后续快速从存活存储表分片中选取对应的目标存储表分片,提高分布式系统内数据存储的高效性。
此外,由于分布式系统内的各存储节点上为了按照一定的规律存储数据,因此各个存储节点上会设置有多个存储表,例如每天新设置一个存储表,用于专门存储当天的数据等,此时存储节点上的某些存储表是已经完成存储的,后续不会再存储新的数据,也就不需要关注该存储表上各个存储表分片所指定的存储节点是否可用,例如存储节点仅会向当天的存储表内存储数据,而不会再向历史的存储表存储数据,因此为了保证分布式系统内数据存储的高效性,本实施例在定期更新预构建的分片节点关联列表时,仅需要面向每一未完成存储的存储表来构建对应的分片节点关联列表并进行定期更新即可,此时可以直接标记存储节点内已经完成存储的存储表,然后将未标记的存储表作为存储节点内未完成存储的存储表。
S320,对待存储数据的数据原标识进行哈希运算,确定待存储数据指向的原有存储表分片的分片标识。
可选的,分布式系统内的任一存储节点在接收到某一待存储数据的存储请求时,首先需要判断该待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,因此会对采用哈希算法对该待存储数据的数据原标识进行哈希运算,从而将该待存储数据映射到该存储节点的存储表上的某一存储表分片上,并计算出该存储表分片的分片标识,作为待存储数据指向的原有存储表分片的分片标识,以采用哈希算法将各个待存储数据与存储表上的各个存储表分片进行映射,从而符合数据存储时的负载均衡原则。
S330,如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片。
S340,通过目标存储表分片在分布式系统内存在的可用存储节点存储待存储数据。
本实施例提供的技术方案,周期性检测分布式系统内各存储节点的工作状态,确定各存储表分片在所述分布式系统内指向的存储节点是否可用,在待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点时,从存在可用存储节点的多个存活存储表分片中选取一个目标存储表分片,然后将该待存储数据存储到该目标存储表分片在分布式系统内存在的各个可用存储节点中,无需增加存储表分片在多副本存储时指定的存储节点数量即可实现分布式系统内数据存储的全面容灾,从而保证分布式系统内数据存储的正常开销,避免出现原有存储表分片在分布式系统内指定的各个存储节点均出现故障时而导致数据存储失败的问题,提高分布式系统内数据存储容灾的成功率和可靠性。
实施例四
图4为本发明实施例四提供的基于分布式系统的数据存储装置的结构示意图,具体的,如图4所示,该装置可以包括:
目标分片选取模块410,用于如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片;
数据存储模块420,用于通过所述目标存储表分片在所述分布式系统内存在的可用存储节点存储所述待存储数据。
本实施例提供的技术方案,在待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点时,从存在可用存储节点的多个存活存储表分片中选取一个目标存储表分片,然后将该待存储数据存储到该目标存储表分片在分布式系统内存在的各个可用存储节点中,无需增加存储表分片在多副本存储时指定的存储节点数量即可实现分布式系统内数据存储的全面容灾,从而保证分布式系统内数据存储的正常开销,避免出现原有存储表分片在分布式系统内指定的各个存储节点均出现故障时而导致数据存储失败的问题,提高分布式系统内数据存储容灾的成功率和可靠性。
本实施例提供的基于分布式系统的数据存储装置可适用于上述任意实施例提供的基于分布式系统的数据存储方法,具备相应的功能和有益效果。
实施例五
图5为本发明实施例五提供的一种分布式系统的存储节点的结构示意图,如图5所示,该存储节点包括处理器50、存储装置51和通信装置52;存储节点中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;存储节点中的处理器50、存储装置51和通信装置52可以通过总线或其他方式连接,图5中以通过总线连接为例。
本实施例提供的一种分布式系统的存储节点可用于执行上述任意实施例提供的基于分布式系统的数据存储方法,具备相应的功能和有益效果。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的基于分布式系统的数据存储方法。该方法具体可以包括:
如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片;
通过所述目标存储表分片在所述分布式系统内存在的可用存储节点存储所述待存储数据。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于分布式系统的数据存储方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述基于分布式系统的数据存储装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种基于分布式系统的数据存储方法,其特征在于,包括:
如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片;
通过所述目标存储表分片在所述分布式系统内存在的可用存储节点存储所述待存储数据;
在从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片之后,还包括:
合并所述待存储数据的数据原标识和所述目标存储表分片的分片标识,得到所述待存储数据的数据读取标识,以利用所述数据读取标识从所述分布式系统内读取所述待存储数据。
2.根据权利要求1所述的方法,其特征在于,在通过所述目标存储表分片在所述分布式系统内存在的可用存储节点存储所述待存储数据时,还包括:
向存储用户反馈所述待存储数据的数据读取标识。
3.根据权利要求1所述的方法,其特征在于,还包括:
如果待存储数据指向的原有存储表分片在分布式系统内存在可用存储节点,则通过所述原有存储表分片在分布式系统内存在的可用存储节点存储所述待存储数据。
4.根据权利要求3所述的方法,其特征在于,在通过所述原有存储表分片在分布式系统内存在的可用存储节点存储所述待存储数据时,还包括:
将所述待存储数据的数据原标识作为所述待存储数据的数据读取标识。
5.根据权利要求1或4所述的方法,其特征在于,在存储所述待存储数据之后,还包括:
如果待读取数据的数据读取标识中存在任一存储表分片的分片标识,则从该存储表分片在所述分布式系统内存在的可用存储节点中读取所述待读取数据;
否则,从所述待读取数据指向的原有存储表分片在所述分布式系统内存在的可用存储节点中读取所述待读取数据。
6.根据权利要求1所述的方法,其特征在于,在如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片之前,还包括:
周期性检测所述分布式系统内各存储节点的工作状态,确定各存储表分片在所述分布式系统内指向的存储节点是否可用。
7.根据权利要求6所述的方法,其特征在于,所述周期性检测所述分布式系统内各存储节点的工作状态,确定各存储表分片在所述在分布式系统内指向的存储节点是否可用,包括:
根据所述分布式系统内各存储节点的工作状态,定期更新预构建的分片节点关联列表,所述分片节点关联列表中记录有各存储表分片与分布式系统内各存储节点之间的映射关系,以及各存储节点的可用信息。
8.根据权利要求7所述的方法,其特征在于,所述分片节点关联列表面向每一未完成存储的存储表所构建。
9.根据权利要求1所述的方法,其特征在于,在从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片之前,还包括:
对所述待存储数据的数据原标识进行哈希运算,确定所述待存储数据指向的原有存储表分片的分片标识。
10.一种基于分布式系统的数据存储装置,其特征在于,包括:
目标分片选取模块,用于如果待存储数据指向的原有存储表分片在分布式系统内不存在可用存储节点,则从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片;
数据存储模块,用于通过所述目标存储表分片在所述分布式系统内存在的可用存储节点存储所述待存储数据;
在从存在可用存储节点的存活存储表分片中选取对应的目标存储表分片之后,还包括:
合并所述待存储数据的数据原标识和所述目标存储表分片的分片标识,得到所述待存储数据的数据读取标识,以利用所述数据读取标识从所述分布式系统内读取所述待存储数据。
11.一种分布式系统的存储设备,其特征在于,所述存储设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的基于分布式系统的数据存储方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的基于分布式系统的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011621463.1A CN112711382B (zh) | 2020-12-31 | 2020-12-31 | 基于分布式系统的数据存储方法、装置和存储节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011621463.1A CN112711382B (zh) | 2020-12-31 | 2020-12-31 | 基于分布式系统的数据存储方法、装置和存储节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112711382A CN112711382A (zh) | 2021-04-27 |
CN112711382B true CN112711382B (zh) | 2024-04-26 |
Family
ID=75547598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011621463.1A Active CN112711382B (zh) | 2020-12-31 | 2020-12-31 | 基于分布式系统的数据存储方法、装置和存储节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112711382B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294787A (zh) * | 2013-05-21 | 2013-09-11 | 成都市欧冠信息技术有限责任公司 | 分布式数据库系统的多副本存储方法和系统 |
CN105357294A (zh) * | 2015-10-31 | 2016-02-24 | 成都华为技术有限公司 | 一种存储数据的方法及集群管理节点 |
CN105550229A (zh) * | 2015-12-07 | 2016-05-04 | 北京奇虎科技有限公司 | 分布式存储系统数据修复的方法和装置 |
CN105550230A (zh) * | 2015-12-07 | 2016-05-04 | 北京奇虎科技有限公司 | 分布式存储系统节点故障的侦测方法和装置 |
CN105930498A (zh) * | 2016-05-06 | 2016-09-07 | 中国银联股份有限公司 | 一种分布式数据库的管理方法及系统 |
CN106302702A (zh) * | 2016-08-10 | 2017-01-04 | 华为技术有限公司 | 数据的分片存储方法、装置及系统 |
WO2018098972A1 (zh) * | 2016-11-30 | 2018-06-07 | 华为技术有限公司 | 一种日志恢复方法、存储装置和存储节点 |
CN108205573A (zh) * | 2016-12-20 | 2018-06-26 | 中兴通讯股份有限公司 | 一种数据分布式存储方法及系统 |
CN108780386A (zh) * | 2017-12-20 | 2018-11-09 | 华为技术有限公司 | 一种数据存储的方法、装置和系统 |
CN108920099A (zh) * | 2018-06-22 | 2018-11-30 | 中国人民解放军战略支援部队信息工程大学 | 基于多种分片方式的数据动态存储系统及方法 |
CN109656911A (zh) * | 2018-12-11 | 2019-04-19 | 江苏瑞中数据股份有限公司 | 分布式并行处理数据库系统及其数据处理方法 |
CN109977077A (zh) * | 2019-03-25 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 模型文件存储方法、装置、可读存储介质和计算机设备 |
CN109976662A (zh) * | 2017-12-27 | 2019-07-05 | 浙江宇视科技有限公司 | 数据存储方法、装置及分布式存储系统 |
CN109992196A (zh) * | 2017-12-29 | 2019-07-09 | 杭州海康威视数字技术股份有限公司 | 索引数据的存储方法及装置、存储系统 |
CN110532123A (zh) * | 2019-08-30 | 2019-12-03 | 北京小米移动软件有限公司 | HBase系统的故障转移方法及装置 |
CN110798492A (zh) * | 2018-08-02 | 2020-02-14 | 杭州海康威视数字技术股份有限公司 | 数据存储方法及装置、数据处理系统 |
CN111158962A (zh) * | 2018-11-07 | 2020-05-15 | 中移信息技术有限公司 | 一种异地容灾方法、装置、系统、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9921910B2 (en) * | 2015-02-19 | 2018-03-20 | Netapp, Inc. | Virtual chunk service based data recovery in a distributed data storage system |
CN107436725B (zh) * | 2016-05-25 | 2019-12-20 | 杭州海康威视数字技术股份有限公司 | 一种数据写、读方法、装置及分布式对象存储集群 |
-
2020
- 2020-12-31 CN CN202011621463.1A patent/CN112711382B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294787A (zh) * | 2013-05-21 | 2013-09-11 | 成都市欧冠信息技术有限责任公司 | 分布式数据库系统的多副本存储方法和系统 |
CN105357294A (zh) * | 2015-10-31 | 2016-02-24 | 成都华为技术有限公司 | 一种存储数据的方法及集群管理节点 |
CN105550229A (zh) * | 2015-12-07 | 2016-05-04 | 北京奇虎科技有限公司 | 分布式存储系统数据修复的方法和装置 |
CN105550230A (zh) * | 2015-12-07 | 2016-05-04 | 北京奇虎科技有限公司 | 分布式存储系统节点故障的侦测方法和装置 |
CN105930498A (zh) * | 2016-05-06 | 2016-09-07 | 中国银联股份有限公司 | 一种分布式数据库的管理方法及系统 |
CN106302702A (zh) * | 2016-08-10 | 2017-01-04 | 华为技术有限公司 | 数据的分片存储方法、装置及系统 |
WO2018098972A1 (zh) * | 2016-11-30 | 2018-06-07 | 华为技术有限公司 | 一种日志恢复方法、存储装置和存储节点 |
CN108205573A (zh) * | 2016-12-20 | 2018-06-26 | 中兴通讯股份有限公司 | 一种数据分布式存储方法及系统 |
CN108780386A (zh) * | 2017-12-20 | 2018-11-09 | 华为技术有限公司 | 一种数据存储的方法、装置和系统 |
CN109976662A (zh) * | 2017-12-27 | 2019-07-05 | 浙江宇视科技有限公司 | 数据存储方法、装置及分布式存储系统 |
CN109992196A (zh) * | 2017-12-29 | 2019-07-09 | 杭州海康威视数字技术股份有限公司 | 索引数据的存储方法及装置、存储系统 |
CN108920099A (zh) * | 2018-06-22 | 2018-11-30 | 中国人民解放军战略支援部队信息工程大学 | 基于多种分片方式的数据动态存储系统及方法 |
CN110798492A (zh) * | 2018-08-02 | 2020-02-14 | 杭州海康威视数字技术股份有限公司 | 数据存储方法及装置、数据处理系统 |
CN111158962A (zh) * | 2018-11-07 | 2020-05-15 | 中移信息技术有限公司 | 一种异地容灾方法、装置、系统、电子设备及存储介质 |
CN109656911A (zh) * | 2018-12-11 | 2019-04-19 | 江苏瑞中数据股份有限公司 | 分布式并行处理数据库系统及其数据处理方法 |
CN109977077A (zh) * | 2019-03-25 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 模型文件存储方法、装置、可读存储介质和计算机设备 |
CN110532123A (zh) * | 2019-08-30 | 2019-12-03 | 北京小米移动软件有限公司 | HBase系统的故障转移方法及装置 |
Non-Patent Citations (1)
Title |
---|
"异地多活"分布式存储系统设计和实现;李丹等;《计算机测量与控制》;20200425;第28卷(第04期);第211-216页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112711382A (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021002369A (ja) | 索引更新パイプライン | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN109284073B (zh) | 数据存储方法、装置、系统、服务器、控制节点及介质 | |
US9465698B2 (en) | Systems and/or methods for data recovery in distributed, scalable multi-tenant environments | |
US20150213100A1 (en) | Data synchronization method and system | |
US9367261B2 (en) | Computer system, data management method and data management program | |
US20130036323A1 (en) | Fault-tolerant replication architecture | |
WO2021226905A1 (zh) | 一种数据存储方法、系统及存储介质 | |
US20180004777A1 (en) | Data distribution across nodes of a distributed database base system | |
EP2976714B1 (en) | Method and system for byzantine fault tolerant data replication | |
CN110543386B (zh) | 一种数据存储方法、装置、设备和存储介质 | |
US10949401B2 (en) | Data replication in site recovery environment | |
EP3786802B1 (en) | Method and device for failover in hbase system | |
WO2014205847A1 (zh) | 一种分区平衡子任务下发方法、装置与系统 | |
US11748215B2 (en) | Log management method, server, and database system | |
CN116383227B (zh) | 一种分布式缓存和数据存储一致性处理系统及方法 | |
CN102708166B (zh) | 数据复制方法、数据恢复方法及装置 | |
CN114968966A (zh) | 分布式元数据远程异步复制方法、装置和设备 | |
CN110121712B (zh) | 一种日志管理方法、服务器和数据库系统 | |
CN113779149A (zh) | 消息处理方法、装置、电子设备及可读存储介质 | |
EP3377970B1 (en) | Multi-version removal manager | |
CN112711382B (zh) | 基于分布式系统的数据存储方法、装置和存储节点 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
JP3802977B2 (ja) | 蓄積交換型電子会議システムにおける情報矛盾判定、修正装置及び方法並びに情報矛盾判定、修正プログラムを記録したコンピュータ読取可能な記憶媒体 | |
CN114265900A (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 |