CN109284073A - 数据存储方法、装置、系统、服务器、控制节点及介质 - Google Patents

数据存储方法、装置、系统、服务器、控制节点及介质 Download PDF

Info

Publication number
CN109284073A
CN109284073A CN201811159536.2A CN201811159536A CN109284073A CN 109284073 A CN109284073 A CN 109284073A CN 201811159536 A CN201811159536 A CN 201811159536A CN 109284073 A CN109284073 A CN 109284073A
Authority
CN
China
Prior art keywords
fragment
data
server
storage
sent
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
Application number
CN201811159536.2A
Other languages
English (en)
Other versions
CN109284073B (zh
Inventor
李坚
王文姝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201811159536.2A priority Critical patent/CN109284073B/zh
Publication of CN109284073A publication Critical patent/CN109284073A/zh
Priority to PCT/CN2019/108186 priority patent/WO2020063763A1/zh
Priority to US17/281,466 priority patent/US11385830B2/en
Application granted granted Critical
Publication of CN109284073B publication Critical patent/CN109284073B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了数据存储方法、装置、系统、服务器、控制节点及介质,数据存储方法应用于待分裂分片所属的主服务器,包括:接收控制节点发送的针对待分裂分片的准备拆分指令;将准备拆分指令发送给待分裂分片所属的从服务器;在接收到从服务器发送的数据拆分点的数量大于第一数量阈值时,将数据拆分点发送给控制节点;在接收到控制节点发送的拆分存储指令后,将拆分存储指令发送给每一从服务器,以使每一从服务器将待分裂分片进行拆分存储,得到目标分片;在接收到从服务器发送的第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。应用本发明实施例提供的数据存储方法,提高存储系统的可用性。

Description

数据存储方法、装置、系统、服务器、控制节点及介质
技术领域
本发明涉及数据存储技术领域,特别是涉及一种数据存储方法、装置、系统、服务器、控制节点及介质。
背景技术
随着信息技术的快速发展,数据存储系统中的数据量越来越大。为了满足大数据量的存储需求,在多台服务器上运行的分布式存储系统得到了广泛的应用。为了提高分布式存储系统的整体存储总量,在分布式存储系统中采用分片存储的方式,将数据存储至分片中,使得分布式存储系统可以扩展,从而增加分布式存储系统的整体存储总量。
当数据要进行存储时,由于每一分片的数据存储范围不同,需要先确定该待存储数据应该存储到哪个分片,可以直接判断该待存储数据在哪个分片的数据存储范围之内,还可以通过一致性哈希算法确定该待存储数据存储在哪个数据分片上中。在确定分片之后,将数据存储至所确定的分片。为了保证数据和服务的高可用性,往往需要为分布式存储系统提供必要的容错机制,对各个分片进行冗余备份。在不同的服务器上存储相同的分片,可以避免由于单个服务器不可用时造成的数据丢失、存储服务不可用等情况的发生。需要说明的是,服务器分为主服务器和从服务器,这里所说的主服务器和从服务器是针对一个分片确定的,一个服务器可以是一个分片的主服务器,另一个分片的从服务器。
在实际应用中,分布式存储系统的分片的数据量或者请求压力的变化,会导致原有的分片无法提供足够的服务能力,需要将该分片中的数据存储至针对该分片创建的子分片中。具体的数据存储方法为:分布式存储系统中的控制节点确定需要将数据进行拆分存储的目标分片;将目标分片的状态由可写状态修改为不可写状态;确定存储目标分片拆分后的数据的服务器;向所确定的服务器发送分裂指令,所确定的服务器创建目标分片的子分片,并确定每一子分片的数据存储范围;根据每一子分片的数据存储范围,将目标分片中的数据存储至对应的子分片中。由于多个服务器存储同一个目标分片,针对每一目标分片均会执行一次上述方法。为了保证不同服务器中的目标分片的子分片中存储的数据的一致性,将目标分片的状态设置为不可写状态,但上述数据存储过程中,无法对目标分片进行写操作,在此期间会拒绝针对目标分片的写请求,这样降低了存储系统的可用性。
发明内容
本发明实施例的目的在于提供一种数据存储方法、装置、系统、服务器、控制节点及介质,以提高存储系统的可用性。具体技术方案如下:
第一方面,本发明实施例提供了一种数据存储方法,应用于待分裂分片所属的主服务器,所述方法包括:
接收控制节点发送的针对待分裂分片的准备拆分指令;
将所述准备拆分指令发送给所述待分裂分片所属的从服务器,以使每一所述从服务器在接收到所述准备拆分指令后,获得所述待分裂分片的数据拆分点,并将所述数据拆分点发送给所述主服务器;
在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点,以使所述控制节点向所述主服务器发送拆分存储指令;
在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器,以使每一所述从服务器将所述待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向所述主服务器发送第一消息,其中,所述第一消息为拆分存储完成的消息;
在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
可选的,在所述在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片之后,所述方法还包括:
向所述控制节点发送所述第一消息,以使所述控制节点在接收到所述第一消息后,根据所述数据拆分点和拆分存储之前的所述待分裂分片的数据存储范围,确定所述目标分片的数据存储范围和目标数据存储范围;将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录所述目标分片与针对所述目标分片所确定的数据存储范围之间的关联关系,其中,所述目标数据存储范围为拆分存储之后的所述待分裂分片的数据存储范围。
可选的,在所述目标分片中所存储的数据与所述待分裂分片所存储的数据相同的情况下,所述方法还包括:
获得分片与数据存储范围之间的关联关系;
根据所获得的关联关系,判断自身所存储的每一分片是否存储了不在该分片数据存储范围内的数据;
如果是,删除未在该分片的数据存储范围内的数据。
可选的,所述方法还包括:
获得针对所述待分裂分片的数据存储请求,其中,所述数据存储请求中包含待存储数据;
判断当前是否已经接收到所述拆分存储指令;
如果未接收到所述拆分存储指令,将所述数据存储请求发送给所述从服务器,以使得每一所述从服务器将所述待存储数据存储至所述待分裂分片;并将第二消息发送给所述主服务器;其中,所述第二消息为数据存储完成的消息;
在接收到所述第二消息的数量大于第二数量阈值时,将所述待存储数据存储至所述待分裂分片;
如果接收到所述拆分存储指令,判断当前是否已经向所述控制节点发送所述第一消息;
如果是,将所述数据存储请求发送给所述从服务器,以使得每一所述从服务器从所述目标分片和拆分存储之后的待分裂分片中,确定存储所述待存储数据的分片,并将所述待存储数据存储至所确定的分片,并将所述第二消息发送给所述主服务器;
在接收到所述第二消息的数量大于第二数量阈值时,从所述目标分片和拆分存储之后的待分裂分片中,确定存储所述待存储数据的分片,并将所述待存储数据存储至所确定的分片;
如果否,在向所述控制节点发送所述第一消息后,执行将所述数据存储请求发送给所述从服务器的步骤。
第二方面,本发明实施例还提供了一种数据存储方法,应用于控制节点,所述方法包括:
向待分裂分片所属的主服务器发送针对待分裂分片的准备拆分指令以使所述主服务器在接收到拆分存储指令后,将所述拆分存储指令发送给所述待分裂分片所属的从服务器;在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点;
在接收到所述数据拆分点后,向所述主服务器发送拆分存储指令;以使所述主服务器在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器;在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
可选的,在接收到所述数据拆分点后,向所述主服务器发送拆分存储指令之后,所述方法还包括:
在接收到所述主服务器发送的所述第一消息后,根据所述数据拆分点和拆分存储之前的所述待分裂分片对应的数据存储范围,确定所述目标分片对应的数据存储范围和目标数据存储范围;
将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录所述目标分片与针对所述目标分片所确定的数据存储范围之间的关联关系,其中,所述目标数据存储范围为拆分存储之后的所述待分裂分片的数据存储范围。
可选的,所述方法还包括:
向所有服务器发送针对分片的数据存储范围的收集指令,以使每一服务器在接收到所述收集指令后,获得自身所存储的分片的数据存储范围,向所述控制节点发送所获得的数据存储范围;其中,所述服务器包括所述主服务器和所述从服务器;
接收到所有服务器发送的数据存储范围后,针对每一分片,判断预先针对该分片记录的状态是否为拆分存储中状态;
如果为拆分存储中状态,判断预先记录的该分片的数据存储范围是否与获得的该分片的数据存储范围相同;
如果相同,则向该分片所属的主服务器发送拆分存储指令;
如果不相同,将预先针对该分片记录的状态修改为拆分存储完成状态。
第三方面,本发明实施例提供了一种数据存储装置,应用于待分裂分片所属的主服务器,所述装置包括:
接收模块,用于接收控制节点发送的针对待分裂分片的准备拆分指令;
第一发送模块,用于将所述准备拆分指令发送给所述待分裂分片所属的从服务器,以使每一所述从服务器在接收到所述准备拆分指令后,获得所述待分裂分片的数据拆分点,并将所述数据拆分点发送给所述主服务器;
第二发送模块,用于在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点,以使所述控制节点向所述主服务器发送拆分存储指令;
第三发送模块,用于在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器,以使每一所述从服务器将所述待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向所述主服务器发送第一消息,其中,所述第一消息为拆分存储完成的消息;
拆分模块,用于在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
可选的,所述装置还包括:
第四发送模块,用于向所述控制节点发送所述第一消息,以使所述控制节点在接收到所述第一消息后,根据所述数据拆分点和拆分存储之前的所述待分裂分片的数据存储范围,确定所述目标分片的数据存储范围和目标数据存储范围;将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录所述目标分片与针对所述目标分片所确定的数据存储范围之间的关联关系,其中,所述目标数据存储范围为拆分存储之后的所述待分裂分片的数据存储范围。
可选的,所述装置还包括:
第一获得模块,用于在所述目标分片中所存储的数据与所述待分裂分片所存储的数据相同的情况下,获得分片与数据存储范围之间的关联关系;
第一判断模块,用于根据所获得的关联关系,判断自身所存储的每一分片是否存储了不在该分片数据存储范围内的数据;
删除模块,用于在所述第一判断模块的判断结果为是的情况下,删除未在该分片的数据存储范围内的数据。
可选的,所述装置还包括:
第二获得模块,用于获得针对所述待分裂分片的数据存储请求,其中,所述数据存储请求中包含待存储数据;
第二判断模块,用于判断当前是否已经接收到所述拆分存储指令;
第五发送模块,用于在所述第二判断模块的判断结果为否的情况下,将所述数据存储请求发送给所述从服务器,以使得每一所述从服务器将所述待存储数据存储至所述待分裂分片;并将第二消息发送给所述主服务器;其中,所述第二消息为数据存储完成的消息;
第一存储模块,用于在接收到所述第二消息的数量大于第二数量阈值时,将所述待存储数据存储至所述待分裂分片;
第三判断模块,用于在所述第二判断模块的判断结果为是的情况下,判断当前是否已经向所述控制节点发送所述第一消息;
第六发送模块,用于在所述第三判断模块的判断结果为是的情况下,将所述数据存储请求发送给所述从服务器,以使得每一所述从服务器从所述目标分片和拆分存储之后的待分裂分片中,确定存储所述待存储数据的分片,并将所述待存储数据存储至所确定的分片,并将所述第二消息发送给所述主服务器;
第二存储模块,用于在接收到所述第二消息的数量大于第二数量阈值时时,从所述目标分片和拆分存储之后的待分裂分片中,确定存储所述待存储数据的分片,并将所述待存储数据存储至所确定的分片;
所述第六发送模块,还用于在所述第三判断模块的判断结果为否的情况下,在向所述控制节点发送所述第一消息后,将所述数据存储请求发送给所述从服务器。
第四方面,本发明实施例提供了一种数据存储装置,应用于控制节点,所述方装置包括:
第七发送模块,用于向待分裂分片所属的主服务器发送针对待分裂分片的准备拆分指令以使所述主服务器在接收到拆分存储指令后,将所述拆分存储指令发送给所述待分裂分片所属的从服务器;在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点;
第八发送模块,用于在接收到所述数据拆分点后,向所述主服务器发送拆分存储指令;以使所述主服务器在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器;在将接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
可选的,所述装置还包括:
确定模块,用于在接收到所述主服务器发送的所述第一消息后,根据所述数据拆分点和拆分存储之前的所述待分裂分片对应的数据存储范围,确定所述目标分片对应的数据存储范围和目标数据存储范围;
第一修改模块,用于将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录所述目标分片与针对所述目标分片所确定的数据存储范围之间的关联关系,其中,所述目标数据存储范围为拆分存储之后的所述待分裂分片的数据存储范围。
可选的,所述装置还包括:
第九发送模块,用于向所有服务器发送针对分片的数据存储范围的收集指令,以使每一服务器在接收到所述收集指令后,获得自身所存储的分片的数据存储范围,向所述控制节点发送所获得的数据存储范围;其中,所述服务器包括所述主服务器和所述从服务器;
第四判断模块,用于接收到所有服务器发送的数据存储范围后,针对每一分片,判断预先针对该分片记录的状态是否为拆分存储中状态;
第五判断模块,用于在所述第四判断模块的判断结果为是的情况下,判断预先记录的该分片的数据存储范围是否与获得的该分片的数据存储范围相同;
第十发送模块,用于在所述第五判断模块的判断结果为相同的情况下,则向该分片所属的主服务器发送拆分存储指令;
第二修改模块,用于在所述第五判断模块的判断结果为不相同的情况下,将预先针对该分片记录的状态修改为拆分存储完成状态。
第五方面,本发明实施例提供了一种数据存储系统,所述系统包括控制节点、待分裂分片所属的主服务器和待分裂分片的从服务器,其中,
所述控制节点,用于向所述主服务器发送针对待分裂分片的准备拆分指令;
所述主服务器,用于在接收到准备拆分指令后,将所述准备拆分指令发送给所述待分裂分片所属的从服务器;
所述从服务器,用于在接收到所述准备拆分指令后,获得所述待分裂分片的数据拆分点,并将所述数据拆分点发送给所述主服务器;
所述主服务器,还用于在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点;
所述控制节点,还用于在接收到所述主服务器发送的所述数据拆分点后,向所述主服务器发送拆分存储指令;
所述主服务器,还用于在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器;
所述从服务器,还用于将所述待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向所述主服务器发送第一消息,其中,所述第一消息为拆分存储完成的消息;
所述主服务器,还用于在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
可选的,所述主服务器,还用于向所述控制节点发送所述第一消息;
所述控制节点,还用于在接收到所述第一消息后,根据所述数据拆分点和拆分存储之前的所述待分裂分片的数据存储范围,确定所述目标分片的数据存储范围和目标数据存储范围;将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录所述目标分片与针对所述目标分片所确定的数据存储范围之间的关联关系,其中,所述目标数据存储范围为拆分存储之后的所述待分裂分片的数据存储范围。
可选的,所述主服务器,还用于在所述目标分片中所存储的数据与所述待分裂分片所存储的数据相同的情况下,获得分片与数据存储范围之间的关联关系;根据所获得的关联关系,判断自身所存储的每一分片是否存储了不在该分片数据存储范围内的数据;如果是,删除未在该分片的数据存储范围内的数据。
可选的,所述主服务器,还用于获得针对所述待分裂分片的数据存储请求,其中,所述数据存储请求中包含待存储数据;判断当前是否已经接收到所述拆分存储指令;如果未接收到所述拆分存储指令,将所述数据存储请求发送给所述从服务;
所述从服务器,还用于将所述待存储数据存储至所述待分裂分片;并将第二消息发送给所述主服务器;其中,所述第二消息为数据存储完成的消息;
所述主服务器,还用于在接收到所述第二消息的数量满足第二数量阈值时,将所述待存储数据存储至所述待分裂分片;如果接收到所述拆分存储指令,判断当前是否已经向所述控制节点发送所述第一消息;如果是,将所述数据存储请求发送给所述从服务器;
所述从服务器,还用于从所述目标分片和拆分存储之后的待分裂分片中,确定存储所述待存储数据的分片,并将所述待存储数据存储至所确定的分片,并将所述第二消息发送给所述主服务器;
所述主服务器,还用于在接收到所述第二消息的数量大于第二数量阈值时,从所述目标分片和拆分存储之后的待分裂分片中,确定存储所述待存储数据的分片,并将所述待存储数据存储至所确定的分片;如果否,在向所述控制节点发送所述第一消息后,执行将所述数据存储请求发送给所述从服务器的步骤。
可选的,所述主服务器,还用于在接收到所述主服务器发送的所述第一消息后,根据所述数据拆分点和拆分存储之前的所述待分裂分片对应的数据存储范围,确定所述目标分片对应的数据存储范围和目标数据存储范围;将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录所述目标分片与针对所述目标分片所确定的数据存储范围之间的关联关系,其中,所述目标数据存储范围为拆分存储之后的所述待分裂分片的数据存储范围。
可选的,所述控制节点,还用于向所有服务器发送针对分片的数据存储范围的收集指令;其中,所述服务器包括所述主服务器和所述从服务器;
所述服务器,用于在接收到所述收集指令后,获得自身所存储的分片的数据存储范围,向所述控制节点发送所获得的数据存储范围;
所述控制节点,还用于接收到所有服务器发送的数据存储范围后,针对每一分片,判断预先针对该分片记录的状态是否为拆分存储中状态;如果为拆分存储中状态,判断预先记录的该分片的数据存储范围是否与获得的该分片的数据存储范围相同;如果相同,则向该分片所属的主服务器发送拆分存储指令;如果不相同,将预先针对该分片记录的状态修改为拆分存储完成状态。
第六方面,本发明实施例还提供了一种主服务器,包括处理器和存储器,其中,
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现本发明实施例所提供的应用于主服务器的数据存储方法的步骤。
第七方面,本发明实施例还提供了一种控制节点,包括处理器和存储器,其中,
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现本发明实施例所提供的应用于控制节点的数据存储方法的步骤。
第八方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本发明实施例所提供的应用于主服务器的数据存储方法的步骤。
第九方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本发明实施例所提供的应用于控制节点的数据存储方法的步骤。
第十方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行应用于主服务器的数据存储方法。
第十一方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行应用于控制节点的数据存储方法。
第十二方面,本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行应用于主服务器的数据存储方法。
第十三方面,本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行应用于控制节点的数据存储方法。
本发明实施例提供的数据分裂方法、方法、系统、服务器、控制节点及计算机可读存储介质,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据存储方法的一种流程示意图;
图2为本发明实施例提供的数据存储方法的另一种流程示意图;
图3为本发明实施例提供的数据存储装置的结构示意图;
图4为本发明实施例提供的数据存储装置的另一种结构示意图;
图5为本发明实施例提供的数据存储系统的结构示意图;
图6为本发明实施例提供的主服务器的结构示意图;
图7为本发明实施例提供的控制节点的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据存储方法、装置、系统、服务器、控制节点及计算机可读存储介质,下面首先对本发明实施例提供的应用于待分裂分片所属的主服务器的数据存储方法进行说明。
需要说明的是,本发明实施例提供的数据存储方法优选应用于待分裂分片所属的主服务器,这里所说的待分裂分片为待拆分存储的分片,待分裂分片所属的主服务器是相对待分裂分片来说的,该服务器可能是另一个分片的从服务器。在本发明实施例中,目标分片所属的主服务器可以是KTS(Kingsoft Table Service,金山表格存储系统)中的服务器。KTS是完全托管的NoSQL(Not Only SQL,非关系型数据库)数据库服务,提供海量结构化和半结构化数据的存储和实时访问。待分裂分片所属的主服务器可以是利用Raft算法,从存储有目标分片的服务器中选举产生的。Raft算法是一种更容易理解的一致性算法,具体的,是最终一致性算法。
图1为本发明实施例提供的数据存储方法的第一种流程示意图;方法包括:
S101:接收控制节点发送的针对待分裂分片的准备拆分指令。
可以理解的是,每个分片均对应一个数据存储范围,不同的分片的数据存储范围不同,即不同的分片存储不同的数据。用户可以对各个分片中存储的数据进行访问,在实际应用中,用户对各个分片中存储的数据的访问频度可能相同,也可能不同,也就是说,每个分片对应一个访问频度。可以将访问频度大于预设访问频度的分片确定为待分裂分片。需要说明的是,可以根据实际情况来确定预设访问频度的大小,本发明实施例对预设访问频度的大小不做具体限定。
控制节点可以在接收到待分裂分片所属的主服务器发送的拆分存储请求后,生成准备拆分指令;控制节点还可以在接收到人工发送的拆分存储请求后,生成准备拆分指令,这都是合理的,下面将进行详细阐述。
在一种实施方式中,控制节点可以在接收到待分裂分片所属的主服务器发送的拆分存储请求后,生成准备拆分指令。具体的,一个分片所属的主服务器可以检测该分片所存储的数据量是否大于预设的存储阈值,并且,在该分片所存储的数据量大于预设的存储阈值时,该分片所属的服务器可以向控制节点发送拆分存储请求,控制节点接收到该分片所属的服务器发送的拆分存储请求后,生成准备拆分指令。
在另一种实施方式中,控制节点可以在接收到人工发送的拆分存储请求后,生成准备拆分指令。具体的,存储系统的工作人员在发现访问频度大于预设访问频度的分片存在时,可以向控制节点发送拆分存储请求,控制节点在接收到拆分存储请求后,生成准备拆分指令。
拆分存储请求中可以包含待分裂分片的标识信息,该标识信息可以为待分裂分片的名称,也可以为该待分裂分片的ID(Identification,身份标识号码)。
控制节点在生成准备拆分指令后,可以将准备拆分指令发送给待分裂分片所属的主服务器,进而使得主服务器可以根据该准备拆分指令,执行相应的操作。
在本发明实施例中,主服务器可以通过Raft算法选举出来的。存储有待分裂分片的服务器除已经选举作为主服务器之外的服务器作为从服务器。主服务器在选举时获知其他存储有待分裂分片的服务器的标识信息,该标识信息可以为服务器的名称或IP(Internet Protocol,网络之间的互联协议)地址等等。主服务器在接收到准备拆分指令后,根据之前获得的其他存储有待分裂分片的服务器的标识信息,确定从服务器,并向从服务器发送该准备拆分指令。
S102:将准备拆分指令发送给待分裂分片所属的从服务器,以使每一从服务器在接收到准备拆分指令后,获得待分裂分片的数据拆分点,并将数据拆分点发送给主服务器。
主服务器在接收到准备拆分指令后,可以将该准备拆分指令发送给待分裂分片的从服务器。从服务器在将接收到准备拆分指令后,可以获得待分裂分片的数据拆分点。
具体的,在一种实现方式中,准备拆分指令中可以携带有数据拆分点,从服务器在接收到准备拆分指令后,可以从准备拆分指令获取数据拆分点。
在另一种实施方式中,从服务器可以根据预先设置的数据拆分规则,确定数据拆分点。具体的,从服务器可以获得待分裂分片的数据存储范围以及数据存储范围内每一主键对应的数据存储量,然后根据待分裂分片的数据存储范围和每一主键对应的数据存储量,按照预先设置的数据拆分规则,确定数据拆分点。
可以理解的是,从服务器获得待分裂分片的数据存储范围的方式可以有多种,具体的,在准备拆分指令中包含有数据存储范围的情况下,可以直接从准备拆分指令中获取数据存储范围;在准备拆分指令中不包含数据存储范围的情况下,可以扫描待分裂分片,获得数据存储范围,当然,还可以通过其他方式获得待分裂分片的数据存储范围,本发明实施例对从服务器获得待分裂分片的数据存储范围的方式不做具体限定。并且,待分裂分片中的每一数据对应一个主键,每一数据都有固定大小的数据量,因此每一主键对应的数据存储量可以通过扫描待分裂分片存储的数据确定。
拆分规则可以是尽可能使得拆分得到的分片的数据存储范围对应的数据量与拆分之后的待分裂分片的数据存储范围对应的数据量相同。示例性的,拆分得到的分片只有2个,待分裂分片是分片1,分片1中存储的数据量为10G,分片1的主键区间为A-F,分片1的主键区间就是分片1的数据存储范围,如果主键区间A-C对应的数据量为4.95G,主键区间D-F对应的数据量为5.05G,如果预先设置数据拆分点作为其中一个分片的主键区间的右端点,则数据拆分点是主键C,如果预先设置数据拆分点作为其中一个分片的主键区间的左端点,则数据拆分点是主键D。不管采用上述哪个数据拆分点,拆分所得到的分片的数据存储范围为D-F,拆分之后的待分裂分片的数据存储范围是A-C。如果拆分得到的分片有3个,待分裂分片是分片2,分片2中存储的数据量为15G,分片2的主键区间为H-N,如果主键区间H-J对应的数据量为4.95G,主键区间K-L对应的数据量为5.05G,主键区间M-N对应的数据量为5G,则可以认为数据拆分点可以是主键J和主键L。
在大多数分布式存储系统中,通常采用KeyValue类型的存储方式,在数据存储时,是按照Key的字典顺序自然排序的。Key就是上面所说的主键,主键是被挑选出来,作表的行的惟一标识的候选关键字。主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。一个分片存储有对应的主键区间的所有数据。
准备拆分指令中所包含的数据拆分点可以是控制节点接收工作人员发送的指令中数据拆分点,工作人员可以根据分片中每一主键对应的数据的访问压力确定数据拆分点。
从服务器获得数据拆分点之后,需要将所获得的数据拆分点发送给主服务器,以使得主服务器在接收到数据拆分点后进行接下来的操作。在本发明实施例中,针对同一个待分裂分片,所有从服务器所获得的数据拆分点是相同的。
S103:在接收到数据拆分点的数量大于第一数量阈值时,将数据拆分点发送给控制节点,以使控制节点向主服务器发送拆分存储指令。
为了保证分片的主服务器和从服务器拆分存储后得到的分片数据的一致性,因此,主服务器在接收到数据拆分点的数量大于第一数量阈值时,才会执行后续的步骤,这样可以尽可能保证每一分片在不同的服务器中拆分存储之后数据的一致性。
需要说明的是,本发明实施例对第一数量阈值的大小不做具体限定,例如,第一数量阈值可以是该主服务器的从服务器的数量的一半。示例性的,从服务器的数量为5个,第一数量阈值可以为3个,当主服务器接收到4个从服务器发送的数据拆分点,则执行后续的操作,当主服务器接收到1个从服务器发送的数据拆分点后,会继续等待,直至超时。
主服务器在接收到数据拆分点的数量大于第一数量阈值时,将数据拆分点发送给控制节点。主服务器向控制节点发送数据拆分点的一个目的是通知控制节点拆分准备工作已经完成,触发控制节点向主服务器发送拆分存储指令。控制节点在接收到数据拆分点,就意味着主服务器已经响应准备拆分指令,此时,控制节点需要将拆分存储指令发送给主服务器,以触发主服务器执行后续的步骤。
S104:在接收到拆分存储指令后,将拆分存储指令发送给每一服务器,以使每一从服务器将待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向主服务器发送第一消息,其中,第一消息为拆分存储完成的消息。
主服务器在接收到拆分存储指令后,将拆分存储指令发送给每一从服务器,从服务器在接收到拆分存储指令后,将待分裂分片进行拆分存储,得到目标分片。这里所说的目标分片是对待分裂分片进行拆分存储之后的得到的分片。具体的,可以使用硬链拷贝的方式进行分片的拆分存储,可以减少在拆分存储过程所需要消耗的时间。
硬链,也可以称之为硬链接,就是一个文件的一个或多个文件名。这样可以通过硬链接实现多个文件名与一个文件链接,这些文件名可以在同一个目录下,也可以在不同的目录下。硬链接能够实现多个不在或者同在一个目录下的文件名,在修改一个文件后,所有与该修改的文件之间存在硬链接的文件也被修改。通过硬链拷贝的方式进行分片的分裂,所得到的分片中存储的数据与拆分存储之前的待分裂分片中存储的数据相同。通过数据迁移的方式进行分片的拆分存储,所得到的分片中存储的数据可以与待分裂分片拆分存储之前存储的数据相同,也可以是待分裂分片拆分存储之前存储的部分数据,具体的,由拆分存储的方式决定的。
从服务器中记录了自身所存储的分片的数据存储范围与数据存储位置之间的关系,即记录了主键区间与该主键区间对应的数据的存储位置之间的关系。当有数据读取请求或者数据存储请求时,根据所记录的数据存储范围与数据存储位置之间的关系,确定从哪个位置读取,或者从哪个位置存储。当完成待分裂分片的拆分存储后,一个数据存储范围也拆分成了多个,一个数据存储位置只能对应一个数据存储范围,因此,需要修改之前针对待分裂分片记录的数据存储范围和数据存储位置之间的关系,可以将针对待分裂分片记录的关系中的数据存储范围修改为一个拆分后的数据存储范围,并针对剩下的拆分后的数据存储范围,确定数据存储位置,并记录所确定的数据存储位置与数据存储范围之间的关系。
示例性的,预先记录的主键区间A-C存储在C1位置之间的关系,拆分存储之后的主键区间为主键A,主键区间B-C,对主键区间A-C与C1位置之间的关系进行修改后,得到主键A与C1位置之间的关系,确定主键区间B-C的数据存储位置为C2,则记录主键区间B-C与C2位置之间的关系。这样可以使得后续能够从正确的位置读取数据,能够将数据存储至正确的位置。从服务器在分得到目标分片、完成数据存储范围与数据存储位置的修改以及记录拆分后得到的数据存储范围与数据存储位置之间的关系后,向主服务器发送第一消息,通知主服务器自身的分片拆分存储已经完成。
S105:在接收到第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。
每一从服务器在完成拆分存储后,会将拆分存储的完成的消息发送给主服务器,主服务器在接收到第一消息的数量大于第二数量阈值时,将进行主服务器所存储的目标分片的拆分存储操作,具体的拆分存储方式与从服务器对待分裂分片的拆分存储方式相同。
需要说明的是,第二数量阈值与第一数量阈值可以相同,也可以不同,本发明实施例对第二数量阈值的大小不做具体限定。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生的宕机,提高分布式存储系统的可靠性。
在本发明的一个实施方式中,在接收到第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片之后,方法还可以包括:
向控制节点发送第一消息,以使控制节点在接收到第一消息后,根据数据拆分点和拆分存储之前的待分裂分片的数据存储范围,确定目标分片的数据存储范围和目标数据存储范围;将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录目标分片与针对目标分片所确定的数据存储范围之间的关联关系,其中,目标数据存储范围为拆分存储之后的待分裂分片的数据存储范围。
主服务器在完成待分裂分片的拆分存储之后,将第一消息发送给控制节点,控制节点在接收到该第一消息后,则可以确定主服务器和从服务器已经完成待分裂分片的拆分存储。此时,控制节点根据拆分存储之前的待分裂分片的数据存储范围和数据拆分点,确定目标分片的数据存储范围。具体的,控制节点先将拆分之前的待分裂分片的数据存储范围根据数据拆分点进行拆分,得到拆分后的数据存储范围;然后,可以从拆分后的数据存储范围中选择一个作为拆分存储后的待分裂分片的数据存储范围,所选择的数据存储范围就是拆分存储之后的待分裂分片的数据存储范围,即目标数据存储范围,更新之前针对待分裂分片记录的关联关系中的数据存储范围,即将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围;最后,从剩下的拆分后的数据存储范围中,选择目标分片的数据存储范围,并记录所选择的数据存储范围与目标分片之间的关联关系。
从拆分后的数据存储范围中选择一个数据存储范围的方式可以是随机选择,也可以是按照预设的选择规则进行选择。示例性的,待分裂分片为分片3,分片3的数据存储范围为主键P-T,所获得的数据拆分点为主键R,则一个数据存储范围是主键P-R,另一个数据存储范围是主键S-T,这两个数据存储范围中有一个数据存储范围是拆分存储之后的待分裂分片的数据存储范围。具体哪一个数据存储范围是拆分存储之后的待分裂分片的数据存储范围,需要根据预先设置的规则确定,如果预先设置的是右端值较小的数据存储范围为拆分存储后的待分裂分片的数据存储范围,则主键P-R所组成的数据存储范围是拆分存储后的分片3的数据存储范围;如果预先设置的是右端值较大的数据存储范围为拆分存储后的待分裂分片的数据存储范围,则主键S-T所组成的数据存储范围是拆分存储后的分片3的数据存储范围。
在本发明实施例中,拆分存储之后的待分裂分片的数据存储范围包含在拆分存储之前的待分裂分片的数据存储范围内,并且拆分存储之后的待分裂分片的数据存储范围小于拆分存储之前的待分裂分片的数据存储范围内。
更新拆分存储后的待分裂分片的数据存储范围、建立目标分片与针对目标分片所确定的数据存储范围之间的关联关系,可以保证后续的数据能够正确地存储至对应的分片,还可以保证后续能根据数据读取请求读取到正确的数据。
在本发明的一个实施方式中,目标分片中所存储的数据与待分裂分片所存储的数据相同的情况下,方法还包括:
获得分片与数据存储范围之间的关联关系;
根据所获得的关联关系,判断自身所存储的每一分片是否存储了不在该分片数据存储范围内的数据;
如果是,删除未在该分片的数据存储范围内的数据。
如果目标分片所存储的数据与待分裂分片所存储的数据相同,目标分片中存在冗余的数据,还说明待分裂分片在拆分存储之前和拆分存储之后所存储的数据相同,进而说明拆分之后的待分裂分片中存储了冗余的数据。
为了节省存储资源,还为了减少因冗余数据量过大导致再次对分片进行拆分存储的可能性,需要删除分片中的冗余数据,删除的方式可以为:先从控制节点获得分片与数据存储范围之间的关联关系,其中,控制节点中存储有分片与数据存储范围之间的关联关系;然后,根据所获得的关联关系,判断自身所存储的每一分片是否存储了未在该分片数据存储范围内的数据,即判断自身是否存储了冗余数据,具体的,可以逐一判断该分片中存储的分片的主键是否在该分片的数据存储范围内,如果有,则说明该分片中存在冗余数据,并且未在该分片的数据存储范围的主键对应的数据为冗余数据,如果没有,则说明该分片中没有冗余数据;如果分片中存在冗余数据,则删除冗余数据,即删除未在该分片的数据存储范围内的数据。
在本发明实施例中,获得分片与数据存储范围之间的关联关系可以是定时的,也可以是在拆分存储完成之后获得的。删除分片中的冗余数据,可以节省存储资源,减少因冗余数据量过大导致再次对分片进行拆分存储的可能性,也可以减少该分片所属的服务器进行拆分存储操作的次数。
在本发明的一个实施方式中,该方法还可以包括:
获得针对待分裂分片的数据存储请求,其中,数据存储请求中包含待存储数据;
判断当前是否已经接收到拆分存储指令;
如果未接收到拆分存储指令,将数据存储请求发送给从服务器,以使得每一从服务器将待存储数据存储至待分裂分片;并将第二消息发送给主服务器;其中,第二消息为数据存储完成的消息;
在接收到第二消息的数量满足第二数量阈值时,将待存储数据存储至待分裂分片;
如果接收到拆分存储指令,判断当前是否已经向控制节点发送第一消息;
如果是,将数据存储请求发送给从服务器,以使得每一从服务器从目标分片和拆分存储之后的待分裂分片中,确定存储待存储数据的分片,并将待存储数据存储至所确定的分片,并将第二消息发送给主服务器;
在接收到第二消息的数量大于第二数量阈值时,从目标分片和拆分存储之后的待分裂分片中,确定存储待存储数据的分片,并将待存储数据存储至所确定的分片;
如果否,在向控制节点发送第一消息后,执行将数据存储请求发送给从服务器的步骤。
在本发明实施例中,数据的存储与分片的拆分存储是并行的,分片的拆分存储并不影响数据存储请求的接收。如果主服务器在接收到数据存储请求时,当前没有接收到拆分存储指令,即当前还未进行分片的拆分存储,此时可以向从服务器发送数据存储请求。从服务器接收到数据存储请求后,将待存储数据存储至待分裂分片中,在存储完成之后,将第二消息,即数据存储完成的消息发送给主服务器。主服务器在接收到的第二消息的数量大于第二数量阈值时,将待存储数据存储至自身的待分裂分片中。在上述存储过程中,如果主服务器接收到拆分存储指令,因为此时正在进行数据的存储,即正在执行写操作,主服务器记录拆分存储指令,例如,可以将拆分存储指令写入元数据库。在写操作执行完毕后,再向每一从服务器发送拆分存储指令。
在接收到数据拆分存储指令之前,如果主服务器接收到数据拆分存储指令,此时待分裂分片要么处于拆分存储中状态,要么处于拆分存储完成状态,当处于拆分存储中状态时,不能进行针对待分裂分片的数据存储。如果处于拆分存储完成状态,此时可以进行针对待分裂分片的数据存储。因此,需要判断主服务器是否向控制节点发送第一消息,如果发送了第一消息,则说明主服务器和从服务器已经完成了待分裂分片的拆分存储。此时,可以将数据存储请求发送给从服务器,从服务器从目标分片和拆分存储之后的分片中,确定存储待存储数据的分片。具体的确定方式可以为:获得待存储数据的主键,将所获得的主键与拆分存储后的待分裂分片的数据存储范围进行匹配;如果匹配成功,则可以将待存储数据存储至拆分存储后的待分裂分片;如果匹配失败,在目标分片只有一个的情况下,可以将待存储数据存储至目标分片,如果目标分片不止一个,则可以将待存储数据存储至数据存储范围与所获得的主键相匹配的目标分片中;在确定分片后,将待存储数据存储至所确定的分片。
从服务器在将待存储数据存储至所确定的分片后,将数据存储完成的消息,即第二消息发送给主服务器。主服务器在接收的第二消息的数量大于第二数量阈值时,执行数据存储操作。主服务器所执行的数据存储操作与从服务器所执行的数据存储操作原理相同。在主服务器接收到准备拆分指令至主服务器接收到拆分存储指令期间,不会影响数据存储请求的执行。
应用本发明实施例,在目标分片和拆分存储后的待分裂分片均存在的情况下,需要将待存储数据存储至目标分片或拆分存储后的待分裂分片中,小幅度牺牲性能以换取在进行分片过程中不用将分裂分片的状态设置为不可写状态,在数据拆分存储的过程,仍支持读写操作,可以提高分布式存储系统的可用性。
图2为本发明实施例提供的数据存储方法的另一种流程示意图,该数据存储方法应用于控制节点,包括:
S201:向待分裂分片所属的主服务器发送针对待分裂分片的准备拆分指令以使主服务器在接收到拆分存储指令后,将拆分存储指令发送给待分裂分片所属的从服务器;在接收到数据拆分点的数量大于第一数量阈值时,将数据拆分点发送给控制节点。
控制节点可以是在接收到任一个分片所属的主服务器发送的拆分存储请求后,生成准备拆分指令,该分片就是待分裂分片;控制节点还可以在接收到工作人员发送针对一个分片的拆分存储的指令后,生成准备拆分指令。
控制节点将准备拆分指令发送给待分裂分片所属的主服务器,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器在接收到准备拆分指令,获得数据拆分点,将所获得的数据拆分点发送给主服务器。主服务器在接收到的数据拆分点的数量大于第一数量阈值时,向控制节点发送数据拆分点。上述过程已经在S101-S103详细说明,在此不进行赘述。
S202:在接收到数据拆分点后,向主服务器发送拆分存储指令;以使主服务器在接收到拆分存储指令后,将拆分存储指令发送给每一从服务器;在接收到第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。
控制节点在接收到数据拆分点后,可以确定主服务器和从服务器已经可以开始进行分片的拆分存储,然后向主服务器发送拆分存储指令。主服务器在接收到拆分存储指令后,向从服务器发送拆分存储指令。从服务器在接收到拆分存储指令后,将待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向主服务器发送第一消息。主服务器在接收到第一消息的数量大于第二数量阈值时,执行分片的拆分存储操作,将待分裂分片进行拆分存储,得到目标分片。上述过程已经在S103-S104详细说明,在此不进行赘述。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片,可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
在本发明的一个实施方式中,在接收到数据拆分点后,向主服务器发送拆分存储指令之后,该方法还可以包括:
在接收到主服务器发送的第一消息后,根据数据拆分点和拆分存储之前的待分裂分片对应的数据存储范围,确定目标分片对应的数据存储范围和目标数据存储范围;
将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录目标分片与针对目标分片所确定的数据存储范围之间的关联关系,其中,目标数据存储范围为拆分存储之后的待分裂分片的数据存储范围。
控制节点在接收到该第一消息后,则可以确定主服务器和从服务器已经完成待分裂分片的拆分存储。此时,控制节点根据拆分存储之前的待分裂分片的数据存储范围和数据拆分点,确定目标分片的数据存储范围;然后,可以从拆分后的数据存储范围中选择一个作为拆分存储后的待分裂分片的数据存储范围,所选择的数据存储范围就是拆分存储之后的待分裂分片的数据存储范围,即目标数据存储范围,更新之前针对待分裂分片记录的关联关系中的数据存储范围,即将预先记录的待分裂分片对应的数据存储范围更新为目标数据存储范围;最后,从剩下的拆分后的数据存储范围中,选择目标分片的数据存储范围,并记录所选择的数据存储范围与目标分片之间的关联关系。
在本发明实施例中,更新拆分存储后的待分裂分片的数据存储范围、建立目标分片与针对目标分片所确定的数据存储范围之间的关联关系,可以保证后续的数据能够正确地存储至对应的分片,还可以保证后续能根据数据读取请求读取到正确的数据。
在本发明的一个实施方式中,该方法还可以包括:
向所有服务器发送针对分片的数据存储范围的收集指令,以使每一服务器在接收到收集指令后,获得自身所存储的分片的数据存储范围,向控制节点发送所获得的数据存储范围;
接收到所有服务器发送的数据存储范围后,针对每一分片,判断预先针对该分片记录的状态是否为拆分存储中状态;
如果为拆分存储中状态,判断预先记录的该分片的数据存储范围是否与获得的该分片的数据存储范围相同;
如果相同,则向该分片所属的主服务器发送拆分存储指令;
如果不相同,将预先针对该分片记录的状态修改为拆分存储完成状态。
在本发明实施例中,控制节点在向主服务器发送拆分指令时,将待分裂分片的状态从分裂完成状态修改为拆分存储中状态。控制节点在接收到主服务器发送的第一信息后,将拆分存储后的待分裂分片的状态从拆分存储中状态修改为分裂完成状态,并且将拆分得到的目标分片的状态记为分裂完成状态
控制节点在出现故障并修复之后,向所有的服务器发送针对分片的数据存储范围的收集指令。收集指令是用于收集每一服务器中的分片的数据存储范围控制节点在接收到每一服务器反馈的每一分片的数据存储范围后,针对每一分片,判断预先针对该分片记录的状态是否为拆分存储中状态;如果为拆分存储中状态,则需要进行进一步判断才能进行下一步操作,即判断预先记录的该分片的数据存储范围是否与获得的该分片的数据存储范围相同。但如果所记录的状态为分裂完成状态,则说明此时该分片处分裂完成状态,进而说明该分片目前不需要拆分存储,或者该分片的拆分存储已经完成。不管上述两个状态中的哪一个状态,均不需要修改控制节点所记录的该分片的数据存储范围。如果数据存储范围相同,且针对该分片记录的状态为拆分存储中状态,则说明主服务器和从服务器已经完成该分片的拆分存储,为了保证控制节点所记录的状态与分片的实际状态相同,需要向该分片所属的主服务器发送拆分存储指令,以进行该分片的拆分存储。
如果控制节点所记录的该分片的状态为拆分存储中状态,但该分片的数据存储范围与该分片实际的数据存储范围不相同,则说明主服务器和/或从服务器已经完成该分片的拆分存储,为了使得所记录的分片的状态与分片的实际状态相同,需要将控制节点所记录的状态修改为分裂完成状态。
应用本发明实施例,控制节点可以记录分片的状态,在出现故障修复完成时收集服务器中存储的分片的数据存储范围,根据记录的状态、分片的数据存储范围和收集的分片的数据存储范围,确定需要发送的指令,向分片所属的主服务器发送指令,继续完成数据存储操作,这样使得分布式存储系统在异常退出时无损恢复。
本发明实施例还提供了一种数据存储装置,该数据存储装置应用于待分裂分片所属的主服务器,参见图3所示,装置包括:
接收模块301,用于接收控制节点发送的针对待分裂分片的准备拆分指令;
第一发送模块302,用于将准备拆分指令发送给待分裂分片所属的从服务器,以使每一从服务器在接收到准备拆分指令后,获得待分裂分片的数据拆分点,并将数据拆分点发送给主服务器;
第二发送模块303,用于用于在接收到数据拆分点的数量大于第一数量阈值时,将数据拆分点发送给控制节点,以使控制节点向主服务器发送拆分存储指令;
第三发送模块304,用于在接收到拆分存储指令后,将拆分存储指令发送给每一从服务器,以使每一从服务器将待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向主服务器发送第一消息,其中,第一消息为拆分存储完成的消息;
拆分模块305,用于在接收到第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生的宕机,提高分布式存储系统的可靠性。
在本发明的一个实施方式中,该装置还可以包括:
第四发送模块,用于向控制节点发送第一消息,以使控制节点在接收到第一消息后,根据数据拆分点和拆分存储之前的待分裂分片的数据存储范围,确定目标分片的数据存储范围和目标数据存储范围;将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录目标分片与针对目标分片所确定的数据存储范围之间的关联关系,其中,目标数据存储范围为拆分存储之后的待分裂分片的数据存储范围。
在本发明的一个实施方式中,该装置还可以包括:
第一获得模块,用于在目标分片中所存储的数据与待分裂分片所存储的数据相同的情况下,获得分片与数据存储范围之间的关联关系;
第一判断模块,用于根据所获得的关联关系,判断自身所存储的每一分片是否存储了不在该分片数据存储范围内的数据;
删除模块,用于在第一判断模块的判断结果为是的情况下,删除未在该分片的数据存储范围内的数据。
在本发明的一个实施方式中,该装置还可以包括:
第二获得模块,用于获得针对待分裂分片的数据存储请求,其中,数据存储请求中包含待存储数据;
第二判断模块,用于判断当前是否已经接收到拆分存储指令;
第五发送模块,用于在第二判断模块的判断结果为否的情况下,将数据存储请求发送给从服务器,以使得每一从服务器将待存储数据存储至待分裂分片;并将第二消息发送给主服务器;其中,第二消息为数据存储完成的消息;
第一存储模块,用于在接收到所述第二消息的数量大于第二数量阈值时,将待存储数据存储至待分裂分片;
第三判断模块,用于在第二判断模块的判断结果为是的情况下,判断当前是否已经向控制节点发送第一消息;
第六发送模块,用于在第三判断模块的判断结果为是的情况下,将数据存储请求发送给从服务器,以使得每一从服务器从目标分片和拆分存储之后的待分裂分片中,确定存储待存储数据的分片,并将待存储数据存储至所确定的分片,并将第二消息发送给主服务器;
第二存储模块,用于在接收到所述第二消息的数量大于第二数量阈值时,从目标分片和拆分存储之后的待分裂分片中,确定存储待存储数据的分片,并将待存储数据存储至所确定的分片;
第六发送模块,还用于在第三判断模块的判断结果为否的情况下,在向控制节点发送第一消息后,将数据存储请求发送给从服务器。
本发明实施例还提供了一种数据存储装置,该数据存储装置应用于控制节点,参见图4所示,装置包括:
第七发送模块401,用于向待分裂分片所属的主服务器发送针对待分裂分片的准备拆分指令以使主服务器在接收到拆分存储指令后,将拆分存储指令发送给待分裂分片所属的从服务器;在接收到数据拆分点的数量大于第一数量阈值时,将数据拆分点发送给控制节点;
第八发送模块402,用于在接收到数据拆分点后,向主服务器发送拆分存储指令;以使主服务器在接收到拆分存储指令后,将拆分存储指令发送给每一从服务器;在将接收到所述第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
在本发明的一个实施方式中,该装置还可以包括:
确定模块,用于在接收到主服务器发送的第一消息后,根据数据拆分点和拆分存储之前的待分裂分片对应的数据存储范围,确定目标分片对应的数据存储范围和目标数据存储范围;
第一修改模块,用于将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录目标分片与针对目标分片所确定的数据存储范围之间的关联关系,其中,目标数据存储范围为拆分存储之后的待分裂分片的数据存储范围。
在本发明的一个实施方式中,该装置还可以包括:
第九发送模块,用于向所有服务器发送针对分片的数据存储范围的收集指令,以使每一服务器在接收到收集指令后,获得自身所存储的分片的数据存储范围,向控制节点发送所获得的数据存储范围;其中,服务器包括主服务器和从服务器;
第四判断模块,用于接收到所有服务器发送的数据存储范围后,针对每一分片,判断预先针对该分片记录的状态是否为拆分存储中状态;
第五判断模块,用于在第四判断模块的判断结果为是的情况下,判断预先记录的该分片的数据存储范围是否与获得的该分片的数据存储范围相同;
第十发送模块,用于在第五判断模块的判断结果为相同的情况下,则向该分片所属的主服务器发送拆分存储指令;
第二修改模块,用于在第五判断模块的判断结果为不相同的情况下,将预先针对该分片记录的状态修改为拆分存储完成状态。
本发明实施例还提供了一种数据存储系统,参见图5所示,系统包括控制节点501、待分裂分片所属的主服务器502和待分裂分片的从服务器503,其中,
控制节点501,用于向主服务器502发送针对待分裂分片的准备拆分指令;
主服务器502,用于在接收到准备拆分指令后,将所述尊卑拆分指令发送给所述待分裂分片所属的从服务器503;
从服务器503在接收到准备拆分指令后,获得待分裂分片的数据拆分点,并将数据拆分点发送给主服务器502;
主服务器502,还用于在接收到数据拆分点的数量大于第一数量阈值时,将数据拆分点发送给控制节点501;
控制节点501,用于在接收到主服务器502发送的数据拆分点后,向主服务器502发送拆分存储指令;
主服务器502,用于在接收到拆分存储指令后,将拆分存储指令发送给每一从服务器501;
从服务器503,用于将待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向主服务器502发送第一消息,其中,第一消息为拆分存储完成的消息
主服务器502,还用于在接收到所述第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
在本发明的一个实施方式中,主服务器,还用于向控制节点发送第一消息;
控制节点,还用于在接收到第一消息后,根据数据拆分点和拆分存储之前的待分裂分片的数据存储范围,确定目标分片的数据存储范围和目标数据存储范围;将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录目标分片与针对目标分片所确定的数据存储范围之间的关联关系,其中,目标数据存储范围为拆分存储之后的待分裂分片的数据存储范围。
在本发明的一个实施方式中,主服务器,还用于在目标分片中所存储的数据与待分裂分片所存储的数据相同的情况下,获得分片与数据存储范围之间的关联关系;根据所获得的关联关系,判断自身所存储的每一分片是否存储了不在该分片数据存储范围内的数据;如果是,删除未在该分片的数据存储范围内的数据。
在本发明的一个实施方式中,主服务器,还用于获得针对待分裂分片的数据存储请求,其中,数据存储请求中包含待存储数据;判断当前是否已经接收到拆分存储指令;如果未接收到拆分存储指令,将数据存储请求发送给从服务;
从服务器,还用于将待存储数据存储至待分裂分片;并将第二消息发送给主服务器;其中,第二消息为数据存储完成的消息;
主服务器,还用于在接收到所述第二消息的数量满足第二数量阈值时,将待存储数据存储至待分裂分片;如果接收到拆分存储指令,判断当前是否已经向控制节点发送第一消息;如果是,将数据存储请求发送给从服务器;
从服务器,还用于从目标分片和拆分存储之后的待分裂分片中,确定存储待存储数据的分片,并将待存储数据存储至所确定的分片,并将第二消息发送给主服务器;
主服务器,还用于在接收到所述第二消息的数量大于第二数量阈值时,从目标分片和拆分存储之后的待分裂分片中,确定存储待存储数据的分片,并将待存储数据存储至所确定的分片;如果否,在向控制节点发送第一消息后,执行将数据存储请求发送给从服务器的步骤。
在本发明的一个实施方式中,主服务器,还用于在接收到主服务器发送的第一消息后,根据数据拆分点和拆分存储之前的待分裂分片对应的数据存储范围,确定目标分片对应的数据存储范围和目标数据存储范围;将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录目标分片与针对目标分片所确定的数据存储范围之间的关联关系,其中,目标数据存储范围为拆分存储之后的待分裂分片的数据存储范围。
在本发明的一个实施方式中,控制节点,还用于向所有服务器发送针对分片的数据存储范围的收集指令;其中,服务器包括主服务器和从服务器;
服务器,用于在接收到收集指令后,获得自身所存储的分片的数据存储范围,向控制节点发送所获得的数据存储范围;
控制节点,还用于接收到所有服务器发送的数据存储范围后,针对每一分片,判断预先针对该分片记录的状态是否为拆分存储中状态;如果为拆分存储中状态,判断预先记录的该分片的数据存储范围是否与获得的该分片的数据存储范围相同;如果相同,则向该分片所属的主服务器发送拆分存储指令;如果不相同,将预先针对该分片记录的状态修改为拆分存储完成状态。
本发明实施例还提供了一种主服务器,如图6所示,包括处理器601和存储器602,其中,
存储器602,用于存放计算机程序;
处理器601,用于执行存储器602上所存放的程序时,实现如下步骤:
接收控制节点发送的针对待分裂分片的准备拆分指令;
将所述准备拆分指令发送给所述待分裂分片所属的从服务器,以使每一所述从服务器在接收到所述准备拆分指令后,获得所述待分裂分片的数据拆分点,并将所述数据拆分点发送给所述主服务器;
在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点,以使所述控制节点向所述主服务器发送拆分存储指令;
在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器,以使每一所述从服务器将所述待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向所述主服务器发送第一消息,其中,所述第一消息为拆分存储完成的消息;
在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
本发明实施例还提供了一种控制节点,如图7所示,包括处理器701和存储器702,其中,
存储器702,用于存放计算机程序;
处理器701,用于执行存储器702上所存放的程序时,实现如下步骤:
向待分裂分片所属的主服务器发送针对待分裂分片的准备拆分指令以使所述主服务器在接收到拆分存储指令后,将所述拆分存储指令发送给所述待分裂分片所属的从服务器;在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点;
在接收到所述数据拆分点后,向所述主服务器发送拆分存储指令;以使所述主服务器在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器;在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片,可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
在本发明的又一实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述实施例中应用于主服务器的任一的数据存储方法。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
在本发明的又一实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述实施例中应用于控制节点的任一的数据存储方法。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
在本发明的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中应用于主服务器的任一数据存储方法。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
在本发明的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中应用于控制节点的任一数据存储方法。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
在本发明的又一实施例中,还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中应用于主服务器的任一数据存储方法。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
在本发明的又一实施例中,还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中应用于控制节点的任一数据存储方法。
在本发明实施例中,控制节点向待分裂分片所属的主服务器发送准备拆分指令,主服务器将准备拆分指令发送给待分裂分片所属的从服务器,从服务器获得待分裂分片的数据拆分点,并将该数据拆分点发送给主服务器;主服务器在接收到的数据拆分点的数量大于第一数量阈值时,将该数据拆分点发送给控制节点,控制节点在接收到数据拆分点之后,发送拆分存储指令,主服务器和从服务器对待分裂分片进行拆分存储,并且,每一从服务器将待分裂分片进行拆分存储,得到目标分片后,向主服务器发送第一消息,在第一消息的数量大于第二数量阈值时,将待分裂分片进行拆分存储,得到目标分片。可见,本发明实施例提供的技术方案中,拆分存储并不影响对待分裂分片的读写,而不像现有技术那样将待分裂分片的状态设置为不可写状态,从而提高了存储系统的可用性。另外,主服务器和从服务器在获得拆分存储指令之后自行进行分片的拆分存储,不需要控制节点的同步介入,减少了对控制节点的依赖,尽可能避免因对控制节点依赖过大而造成控制节点出现性能瓶颈而产生宕机,提高分布式存储系统的可靠性。
对于装置/系统/主服务器/控制节点/计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (14)

1.一种数据存储方法,其特征在于,应用于待分裂分片所属的主服务器,所述方法包括:
接收控制节点发送的针对待分裂分片的准备拆分指令;
将所述准备拆分指令发送给所述待分裂分片所属的从服务器,以使每一所述从服务器在接收到所述准备拆分指令后,获得所述待分裂分片的数据拆分点,并将所述数据拆分点发送给所述主服务器;
在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点,以使所述控制节点向所述主服务器发送拆分存储指令;
在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器,以使每一所述从服务器将所述待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向所述主服务器发送第一消息,其中,所述第一消息为拆分存储完成的消息;
在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
2.根据权利要求1所述的方法,其特征在于,在所述在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片之后,所述方法还包括:
向所述控制节点发送所述第一消息,以使所述控制节点在接收到所述第一消息后,根据所述数据拆分点和拆分存储之前的所述待分裂分片的数据存储范围,确定所述目标分片的数据存储范围和目标数据存储范围;将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录所述目标分片与针对所述目标分片所确定的数据存储范围之间的关联关系,其中,所述目标数据存储范围为拆分存储之后的所述待分裂分片的数据存储范围。
3.根据权利要求2所述的方法,其特征在于,在所述目标分片中所存储的数据与所述待分裂分片所存储的数据相同的情况下,所述方法还包括:
获得分片与数据存储范围之间的关联关系;
根据所获得的关联关系,判断自身所存储的每一分片是否存储了不在该分片数据存储范围内的数据;
如果是,删除未在该分片的数据存储范围内的数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获得针对所述待分裂分片的数据存储请求,其中,所述数据存储请求中包含待存储数据;
判断当前是否已经接收到所述拆分存储指令;
如果未接收到所述拆分存储指令,将所述数据存储请求发送给所述从服务器,以使得每一所述从服务器将所述待存储数据存储至所述待分裂分片;并将第二消息发送给所述主服务器;其中,所述第二消息为数据存储完成的消息;
在接收到所述第二消息的数量大于第二数量阈值时,将所述待存储数据存储至所述待分裂分片;
如果接收到所述拆分存储指令,判断当前是否已经向所述控制节点发送所述第一消息;
如果是,将所述数据存储请求发送给所述从服务器,以使得每一所述从服务器从所述目标分片和拆分存储之后的待分裂分片中,确定存储所述待存储数据的分片,并将所述待存储数据存储至所确定的分片,并将所述第二消息发送给所述主服务器;
在接收到所述第二消息的数量大于第二数量阈值时,从所述目标分片和拆分存储之后的待分裂分片中,确定存储所述待存储数据的分片,并将所述待存储数据存储至所确定的分片;
如果否,在向所述控制节点发送所述第一消息后,执行将所述数据存储请求发送给所述从服务器的步骤。
5.一种数据存储方法,其特征在于,应用于控制节点,所述方法包括:
向待分裂分片所属的主服务器发送针对待分裂分片的准备拆分指令以使所述主服务器在接收到拆分存储指令后,将所述拆分存储指令发送给所述待分裂分片所属的从服务器;在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点;
在接收到所述数据拆分点后,向所述主服务器发送拆分存储指令;以使所述主服务器在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器;在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
6.根据权利要求5所述的方法,其特征在于,在接收到所述数据拆分点后,向所述主服务器发送拆分存储指令之后,所述方法还包括:
在接收到所述主服务器发送的所述第一消息后,根据所述数据拆分点和拆分存储之前的所述待分裂分片对应的数据存储范围,确定所述目标分片对应的数据存储范围和目标数据存储范围;
将预先记录的待分裂分片对应的数据存储范围更新为所述目标数据存储范围,并记录所述目标分片与针对所述目标分片所确定的数据存储范围之间的关联关系,其中,所述目标数据存储范围为拆分存储之后的所述待分裂分片的数据存储范围。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
向所有服务器发送针对分片的数据存储范围的收集指令,以使每一服务器在接收到所述收集指令后,获得自身所存储的分片的数据存储范围,向所述控制节点发送所获得的数据存储范围;其中,所述服务器包括所述主服务器和所述从服务器;
接收到所有服务器发送的数据存储范围后,针对每一分片,判断预先针对该分片记录的状态是否为拆分存储中状态;
如果为拆分存储中状态,判断预先记录的该分片的数据存储范围是否与获得的该分片的数据存储范围相同;
如果相同,则向该分片所属的主服务器发送拆分存储指令;
如果不相同,将预先针对该分片记录的状态修改为拆分存储完成状态。
8.一种数据存储装置,其特征在于,应用于待分裂分片所属的主服务器,所述装置包括:
接收模块,用于接收控制节点发送的针对待分裂分片的准备拆分指令;
第一发送模块,用于将所述准备拆分指令发送给所述待分裂分片所属的从服务器,以使每一所述从服务器在接收到所述准备拆分指令后,获得所述待分裂分片的数据拆分点,并将所述数据拆分点发送给所述主服务器;
第二发送模块,用于在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点,以使所述控制节点向所述主服务器发送拆分存储指令;
第三发送模块,用于在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器,以使每一所述从服务器将所述待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向所述主服务器发送第一消息,其中,所述第一消息为拆分存储完成的消息;
拆分模块,用于在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
9.一种数据存储装置,其特征在于,应用于控制节点,所述方装置包括:
第七发送模块,用于向待分裂分片所属的主服务器发送针对待分裂分片的准备拆分指令以使所述主服务器在接收到拆分存储指令后,将所述拆分存储指令发送给所述待分裂分片所属的从服务器;在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点;
第八发送模块,用于在接收到所述数据拆分点后,向所述主服务器发送拆分存储指令;以使所述主服务器在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器;在将接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
10.一种数据存储系统,其特征在于,所述系统包括控制节点、待分裂分片所属的主服务器和待分裂分片的从服务器,其中,
所述控制节点,用于向所述主服务器发送针对待分裂分片的准备拆分指令;
所述主服务器,用于在接收到准备拆分指令后,将所述准备拆分指令发送给所述待分裂分片所属的从服务器;
所述从服务器,用于在接收到所述准备拆分指令后,获得所述待分裂分片的数据拆分点,并将所述数据拆分点发送给所述主服务器;
所述主服务器,还用于在接收到数据拆分点的数量大于第一数量阈值时,将所述数据拆分点发送给所述控制节点;
所述控制节点,还用于在接收到所述主服务器发送的所述数据拆分点后,向所述主服务器发送拆分存储指令;
所述主服务器,还用于在接收到所述拆分存储指令后,将所述拆分存储指令发送给每一所述从服务器;
所述从服务器,还用于将所述待分裂分片进行拆分存储,得到目标分片,在得到目标分片后,向所述主服务器发送第一消息,其中,所述第一消息为拆分存储完成的消息;
所述主服务器,还用于在接收到所述第一消息的数量大于第二数量阈值时,将所述待分裂分片进行拆分存储,得到所述目标分片。
11.一种主服务器,其特征在于,包括处理器和存储器,其中,
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
12.一种控制节点,其特征在于,包括处理器和存储器,其中,
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现权利要求5-7任一所述的方法步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求5-7任一所述的方法步骤。
CN201811159536.2A 2018-09-30 2018-09-30 数据存储方法、装置、系统、服务器、控制节点及介质 Active CN109284073B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201811159536.2A CN109284073B (zh) 2018-09-30 2018-09-30 数据存储方法、装置、系统、服务器、控制节点及介质
PCT/CN2019/108186 WO2020063763A1 (zh) 2018-09-30 2019-09-26 数据存储方法、装置、系统、服务器、控制节点及介质
US17/281,466 US11385830B2 (en) 2018-09-30 2019-09-26 Data storage method, apparatus and system, and server, control node and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811159536.2A CN109284073B (zh) 2018-09-30 2018-09-30 数据存储方法、装置、系统、服务器、控制节点及介质

Publications (2)

Publication Number Publication Date
CN109284073A true CN109284073A (zh) 2019-01-29
CN109284073B CN109284073B (zh) 2020-03-06

Family

ID=65182247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811159536.2A Active CN109284073B (zh) 2018-09-30 2018-09-30 数据存储方法、装置、系统、服务器、控制节点及介质

Country Status (3)

Country Link
US (1) US11385830B2 (zh)
CN (1) CN109284073B (zh)
WO (1) WO2020063763A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960469A (zh) * 2019-03-25 2019-07-02 新华三技术有限公司 数据处理方法和装置
CN109992209A (zh) * 2019-03-29 2019-07-09 新华三技术有限公司成都分公司 数据处理方法、装置及分布式存储系统
CN110737663A (zh) * 2019-10-15 2020-01-31 腾讯科技(深圳)有限公司 一种数据存储方法、装置、设备及存储介质
CN110750484A (zh) * 2019-10-22 2020-02-04 西安因联信息科技有限公司 一种转速和多路振动通道数据同步采集系统及采集方法
WO2020063763A1 (zh) * 2018-09-30 2020-04-02 北京金山云网络技术有限公司 数据存储方法、装置、系统、服务器、控制节点及介质
CN111124291A (zh) * 2019-12-09 2020-05-08 北京金山云网络技术有限公司 分布式存储系统的数据存储处理方法、装置、电子设备
CN112486876A (zh) * 2020-11-16 2021-03-12 中国人寿保险股份有限公司 一种分布式总线架构方法、装置和电子设备
CN112835885A (zh) * 2019-11-22 2021-05-25 北京金山云网络技术有限公司 一种分布式表格存储的处理方法、装置及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897626A (zh) * 2020-07-07 2020-11-06 烽火通信科技股份有限公司 一种面向云计算场景的虚拟机高可靠系统和实现方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841931A (zh) * 2012-08-03 2012-12-26 中兴通讯股份有限公司 分布式文件系统的存储方法及装置
CN103078927A (zh) * 2012-12-28 2013-05-01 合一网络技术(北京)有限公司 一种key-value数据分布式缓存系统及其方法
US20140330785A1 (en) * 2012-03-29 2014-11-06 Hitachi Data Systems Corporation Highly available search index with storage node addition and removal
CN105379293A (zh) * 2013-04-19 2016-03-02 华为技术有限公司 基于超文本协议的动态自适应流媒体中的媒体质量信息指示
CN106453665A (zh) * 2016-12-16 2017-02-22 东软集团股份有限公司 基于分布式缓存系统的数据缓存方法、服务器和系统
CN106843745A (zh) * 2015-12-03 2017-06-13 南京中兴新软件有限责任公司 容量扩展方法及装置
CN108052622A (zh) * 2017-12-15 2018-05-18 郑州云海信息技术有限公司 一种基于非关系型数据库的存储方法、装置以及设备
CN108572793A (zh) * 2017-10-18 2018-09-25 北京金山云网络技术有限公司 数据写入和数据恢复方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467570B (zh) * 2010-11-17 2014-03-12 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
US9442671B1 (en) * 2010-12-23 2016-09-13 Emc Corporation Distributed consumer cloud storage system
CN105930498A (zh) 2016-05-06 2016-09-07 中国银联股份有限公司 一种分布式数据库的管理方法及系统
CN107169009B (zh) 2017-03-31 2020-03-27 北京奇艺世纪科技有限公司 一种分布式存储系统的数据分裂方法及装置
CN109284073B (zh) 2018-09-30 2020-03-06 北京金山云网络技术有限公司 数据存储方法、装置、系统、服务器、控制节点及介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140330785A1 (en) * 2012-03-29 2014-11-06 Hitachi Data Systems Corporation Highly available search index with storage node addition and removal
CN102841931A (zh) * 2012-08-03 2012-12-26 中兴通讯股份有限公司 分布式文件系统的存储方法及装置
CN103078927A (zh) * 2012-12-28 2013-05-01 合一网络技术(北京)有限公司 一种key-value数据分布式缓存系统及其方法
CN105379293A (zh) * 2013-04-19 2016-03-02 华为技术有限公司 基于超文本协议的动态自适应流媒体中的媒体质量信息指示
CN106843745A (zh) * 2015-12-03 2017-06-13 南京中兴新软件有限责任公司 容量扩展方法及装置
CN106453665A (zh) * 2016-12-16 2017-02-22 东软集团股份有限公司 基于分布式缓存系统的数据缓存方法、服务器和系统
CN108572793A (zh) * 2017-10-18 2018-09-25 北京金山云网络技术有限公司 数据写入和数据恢复方法、装置、电子设备及存储介质
CN108052622A (zh) * 2017-12-15 2018-05-18 郑州云海信息技术有限公司 一种基于非关系型数据库的存储方法、装置以及设备

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020063763A1 (zh) * 2018-09-30 2020-04-02 北京金山云网络技术有限公司 数据存储方法、装置、系统、服务器、控制节点及介质
US11385830B2 (en) 2018-09-30 2022-07-12 Beijing Kingsoft Cloud Network Technology Co., Ltd. Data storage method, apparatus and system, and server, control node and medium
CN109960469B (zh) * 2019-03-25 2022-05-31 新华三技术有限公司 数据处理方法和装置
CN109960469A (zh) * 2019-03-25 2019-07-02 新华三技术有限公司 数据处理方法和装置
CN109992209A (zh) * 2019-03-29 2019-07-09 新华三技术有限公司成都分公司 数据处理方法、装置及分布式存储系统
CN110737663A (zh) * 2019-10-15 2020-01-31 腾讯科技(深圳)有限公司 一种数据存储方法、装置、设备及存储介质
CN110737663B (zh) * 2019-10-15 2024-06-11 腾讯科技(深圳)有限公司 一种数据存储方法、装置、设备及存储介质
CN110750484A (zh) * 2019-10-22 2020-02-04 西安因联信息科技有限公司 一种转速和多路振动通道数据同步采集系统及采集方法
CN110750484B (zh) * 2019-10-22 2022-11-25 西安因联信息科技有限公司 一种转速和多路振动通道数据同步采集系统及采集方法
WO2021098555A1 (zh) * 2019-11-22 2021-05-27 北京金山云网络技术有限公司 一种分布式表格存储的处理方法、装置及系统
CN112835885A (zh) * 2019-11-22 2021-05-25 北京金山云网络技术有限公司 一种分布式表格存储的处理方法、装置及系统
CN112835885B (zh) * 2019-11-22 2023-09-01 北京金山云网络技术有限公司 一种分布式表格存储的处理方法、装置及系统
US12001450B2 (en) 2019-11-22 2024-06-04 Beijing Kingsoft Cloud Network Technology Co., Ltd. Distributed table storage processing method, device and system
CN111124291B (zh) * 2019-12-09 2023-05-30 北京金山云网络技术有限公司 分布式存储系统的数据存储处理方法、装置、电子设备
CN111124291A (zh) * 2019-12-09 2020-05-08 北京金山云网络技术有限公司 分布式存储系统的数据存储处理方法、装置、电子设备
CN112486876A (zh) * 2020-11-16 2021-03-12 中国人寿保险股份有限公司 一种分布式总线架构方法、装置和电子设备

Also Published As

Publication number Publication date
US11385830B2 (en) 2022-07-12
CN109284073B (zh) 2020-03-06
WO2020063763A1 (zh) 2020-04-02
US20220004334A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
CN109284073A (zh) 数据存储方法、装置、系统、服务器、控制节点及介质
CN110096891B (zh) 对象库中的对象签名
CN103649946B (zh) 一种使文件系统变化同步的方法及其系统
US7152080B2 (en) Method, apparatus, and computer readable medium for managing replication of back-up object
CN107644030B (zh) 分布式数据库数据同步方法、相关装置及系统
CN105550229A (zh) 分布式存储系统数据修复的方法和装置
CN106354865B (zh) 一种同步主从数据库的方法、装置和系统
CN110347651A (zh) 基于云存储的数据同步方法、装置、设备及存储介质
CN113268472B (zh) 一种分布式数据存储系统及方法
CN105376277A (zh) 一种数据同步方法及装置
CN103440204B (zh) 一种更新文件系统的方法和存储设备
CN108255994A (zh) 一种基于数据库快照的数据库版本管理方法
CN109492049A (zh) 用于区块链网络的数据处理、区块生成及同步方法
CN114968966A (zh) 分布式元数据远程异步复制方法、装置和设备
CN111026711A (zh) 基于区块链数据存储方法、装置、计算机设备及存储介质
CN105550230B (zh) 分布式存储系统节点故障的侦测方法和装置
CN108205588B (zh) 基于主从结构的数据同步方法及装置
CN104536852B (zh) 数据恢复方法及装置
CN107870940A (zh) 一种文件存储方法及装置
JP7416768B2 (ja) 分散コンピューティング環境で分散調整エンジンを非破壊的にアップグレードする方法、装置およびシステム
CN103067418A (zh) 一种元数据重建方法、设备及系统
CN108459927A (zh) 一种数据备份方法、装置和服务器
CN109947592A (zh) 一种数据同步方法、装置以及相关设备
CN108363727A (zh) 一种基于zfs文件系统的数据存储方法及装置
CN111045853A (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