CN105491101B - 数据的处理方法和装置 - Google Patents
数据的处理方法和装置 Download PDFInfo
- Publication number
- CN105491101B CN105491101B CN201510791227.7A CN201510791227A CN105491101B CN 105491101 B CN105491101 B CN 105491101B CN 201510791227 A CN201510791227 A CN 201510791227A CN 105491101 B CN105491101 B CN 105491101B
- Authority
- CN
- China
- Prior art keywords
- sequence number
- data
- written
- memory node
- keyword
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据的处理方法和装置,该方法包括主控服务器接收用户终端发送的写请求;其中,所述写请求包括待写入数据和初始关键字;所述主控服务器为所述待写入数据分配序列号,并根据所述序列号与所述初始关键字组成第一关键字;其中,所述序列号为严格递增的数值;所述主控服务器向存储节点发送写数据指令;其中,所述写数据指令包括所述待写入数据和所述第一关键字。本实施例的方法,可以降低存储节点的处理器的负荷。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种数据的处理方法和装置。
背景技术
分布式存储系统是一种采用可扩展的系统构架,将数据分散存储在多台独立的设备上的存储系统,具有可靠性高、可用性强、存取效率高、易于扩展的特点。
图1为现有技术中分布式存储系统的物理架构示意图。如图1所示,该系统包括多个计算机节点1和多个存储节点2,计算机节点1通过网络向存储节点2发送操作请求,存储节点2根据操作请求,执行数据的存储、读取、删除等操作。数据存储时,通常在多个存储节点2中以副本的形式对数据进行备份存储,为了保证数据的多个副本之间的一致性,最常用的方案是基于主节点的复制协议的方法。图2为现有技术中基于主节点的复制协议的方法示意图。如图2所示,从图1所示的多个存储节点中选择一个作为主节点4,其它的存储节点作为备节点,图2中仅示出了备节点5和备节点6。以写数据为例来说明现有技术的方案,在写数据之前,需要先将日志写入到主节点4中,再由主节点4将该日志写入备节点5和备节点6中,其中,日志包括待写入数据对应的序列号和操作码,当主节点和备节点中的数据不一致的时候,通过比较日志中的序列号,可以知道不一致的数据有哪些,然后完成数据同步操作。待日志写入成功之后,计算机节点3将包括待写入数据的写请求发送给主节点4,主节点4将待写入数据存储之后,再由主节点4将待写入数据写入备节点5和备节点6,完成数据的备份存储。
现有技术的存储方案,在每次写入数据时,都需要先将日志写入主节点和备节点中,相当于每写入一次数据,主节点和备节点均需要执行两次写操作,明显增加了主节点和备节点的处理器的负荷。
发明内容
本发明实施例提供一种数据的处理方法和装置,以降低存储节点的处理器的负荷。
第一方面,本发明实施例提供一种数据的处理方法,包括:主控服务器接收用户终端发送的写请求;其中,所述写请求包括待写入数据和初始关键字;所述主控服务器为所述待写入数据分配序列号,并根据所述序列号与所述初始关键字组成第一关键字;其中,所述序列号为严格递增的数值;所述主控服务器向存储节点发送写数据指令;其中,所述写数据指令包括所述待写入数据和所述第一关键字。本实施例方法,主控服务器将待写入数据和第一关键字发送给存储节点进行存储,相当于将日志放到关键字中与待写入数据一起写入存储节点,避免了单独写日志的过程,有效降低了存储节点的处理器的负荷。
第二方面,本发明实施例提供一种数据的处理方法,包括:存储节点接收写数据指令;其中,所述写数据指令包括待写入数据和第一关键字,所述第一关键字为所述主控服务器根据所述待写入数据的序列号和初始关键字组成的关键字,所述序列号为严格递增的数值;所述存储节点根据所述写数据指令,存储所述待写入数据和所述第一关键字。本实施例方法,由于写数据指令包括待写入数据和第一关键字,相当于将日志放到关键字中与待写入数据一次存储到存储节点,避免了单独存储日志的过程,有效降低了存储节点的处理器的负荷。
结合第二方面,在第二方面的第一种可能实现方式中,所述存储节点根据所述写数据指令,存储所述待写入数据和所述第一关键字之后,所述方法还包括:所述存储节点更新缓存器中最大的序列号。本实施例中,在存储数据的同时更新缓存器中的最大的序列号,保证写入数据与序列号的一致。
结合第二方面的第一种可能实现方式,在第二方面的第二种可能实施例中,所述存储节点更新缓存器中最大的序列号之后,所述方法还包括:所述存储节点按照预设时间周期,对所述缓存器中最大的序列号和最小的序列号进行持久化,避免了存储节点掉电或者发生故障时内存中的最大的序列号和最小的序列号丢失的现象。
结合第二方面的第二种可能实现方式,在第二方面的第三种可能实施例中,所述存储节点按照预设时间周期,对所述缓存器中最大的序列号和最小的序列号进行持久化之后,所述方法还包括:所述存储节点接收所述主控服务器发送的检测指令;所述存储节点根据所述检测指令获取第一序列号和第二序列号;其中,所述第一序列号为所述存储节点中持久化的最大的序列号,所述第二序列号为所述存储节点中持久化的最小的序列号;所述存储节点获取主存储节点中获取第三序列号和第四序列号;其中,所述第三序列号为所述主存储节点中持久化的最大的序列号,所述第四序列号为所述主存储节点中持久化的最小的序列号;若所述第一序列号与所述第三序列号不相等,和/或,所述第二序列号与所述第四序列号不相等,则根据序列号从所述主存储节点中获取待同步数据,并保存所述待同步数据。本实施例的方法,通过比较故障节点与主存储节点中持久化的最大、最小序列号可以获得同步数据,从而对故障节点中的数据进行同步,保证了存储系统的可靠性。
第三方面,本发明实施例提供一种数据的处理装置,包括:接收模块,用于接收用户终端发送的写请求;其中,所述写请求包括待写入数据和初始关键字;处理模块,用于为所述待写入数据分配序列号,并根据所述序列号与所述初始关键字组成第一关键字;其中,所述序列号为严格递增的数值;发送模块,用于向存储节点发送写数据指令;其中,所述写数据指令包括所述待写入数据和所述第一关键字。本实施例的装置,用于执行第一方面所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
第四方面,本发明实施例提供一种数据的处理装置,包括:接收模块,用于接收写数据指令;其中,所述写数据指令包括待写入数据和第一关键字,所述第一关键字为所述主控服务器根据所述待写入数据的序列号和初始关键字组成的关键字,所述序列号为严格递增的数值;存储模块,用于根据所述写数据指令,存储所述待写入数据和所述第一关键字。本实施例的装置,用于执行第二方面所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
结合第四方面,在第四方面的第一种可能实现方式中,所述存储模块还用于存储节点更新缓存器中最大的序列号。本实施例的装置,用于执行第二方面的第一种可能实现方式所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
结合第四方面的第一种可能实现方式,在第四方面的第二种可能实现方式中,所述存储模块还用于按照预设时间周期,对所述缓存器中最大的序列号和最小的序列号进行持久化。本实施例的装置,用于执行第二方面的第二种可能实现方式所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
结合第四方面的第二种可能实现方式,在第四方面的第三种可能实现方式中,所述接收模块还用于接收所述主控服务器发送的检测指令;所述装置还包括处理模块,用于根据所述检测指令获取第一序列号和第二序列号;并获取主存储节点中获取第三序列号和第四序列号;其中,所述第一序列号为所述存储节点中持久化的最大的序列号,所述第二序列号为所述存储节点中持久化的最小的序列号,所述第三序列号为所述主存储节点中持久化的最大的序列号,所述第四序列号为所述主存储节点中持久化的最小的序列号;若所述第一序列号与所述第三序列号不相等,和/或,所述第二序列号与所述第四序列号不相等,则所述处理模块根据序列号从所述主存储节点中获取待同步数据,并触发所述存储模块保存所述待同步数据。本实施例的装置,用于执行第二方面的第三种可能实现方式所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中分布式存储系统的物理架构示意图;
图2为现有技术中基于主节点的复制协议的方法示意图;
图3为本发明实施例提供的数据的处理方法的应用场景示意图;
图4为本发明实施例一提供的数据的处理方法的流程图;
图5为本发明实施例二提供的数据的处理方法的流程图;
图6为本发明实施例中的数据同步示意图;
图7为本发明实施例三提供的数据的处理装置的结构示意图;
图8为本发明实施例四提供的数据的处理装置的结构示意图;
图9为本发明实施例五提供的数据的处理装置的结构示意图;
图10为本发明实施例六提供的服务器的结构示意图;
图11为本发明实施例七提供的存储节点的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3为本发明实施例提供的数据的处理方法的应用场景示意图。如图3所示,该场景包括用户终端11、服务器12、主控服务器13、存储节点14、存储节点15和存储节点16。其中,用户终端11可以为手机、电脑、手持终端等设备,服务器12可以为向用户终端11提供服务的任一类型的服务器,主控服务器13为向用户终端11提供服务的多个服务器中的一个,用于管理其他的服务器和存储节点,实现用户终端11与存储节点之间的通信等,存储节点14、存储节点15和存储节点16均可以为一个独立的设备,可以包括处理器、缓存器、硬盘等设备,可以由主控服务器根据用户的需求指定其中的一个存储节点为主存储节点,其他存储节点作为备存储节点,主控服务器与主存储节点进行通信,再由主存储节点与备存储节点进行通信。需要说明的是,该场景仅示意性的示出了部分的用户终端、服务器和存储节点,还可以包括更多的上述设备,也可以包括其他类型的设备,本发明中并不以此为限。
另外,在分布式存储系统中,数据的存储和访问方式多种多样,比如,随机访问,顺序访问,写入不更新,频繁覆盖写等,本发明提供的数据的处理方法主要是针对没有覆盖写,并且顺序访问数据的场景,例如,最常见的是分布式队列服务,存储数据先进入分布式队列中,然后按先进先出的顺序从分布式队列中读取数据。但,本发明提供的数据的处理方法也可以应用于其他的适合的场景中,例如,随机访问、写入不更新等场景中,本发明中并不以此为限。
图4为本发明实施例一提供的数据的处理方法的流程图。本实施例涉及的是主控服务器为待写入数据分配序列号,将序列号、关键字和待写入数据一次写入存储节点的具体实现过程。如图4所示,该方法包括以下步骤:
步骤101、主控服务器接收用户终端发送的写请求;其中,写请求包括待写入数据和初始关键字。
在本实施例中,数据以key-value的结构进行存储,其中,key为初始关键字,value为待写入数据。当用户需要写入数据时,通过用户终端向主控服务器发送写请求,以通知主控服务器将待写入数据写入存储节点中。
可选地,用户终端也可以像主控服务器发送删除请求、读请求等,删除请求和读请求中均包括初始关键字(key),主控服务器可以根据初始关键字在存储节点中删除或读取初始关键字对应的数据。
步骤102、主控服务器为待写入数据分配序列号,并根据序列号与初始关键字组成第一关键字;其中,序列号为严格递增的数值。
在本实施例中,主控服务器写入数据时,都为待写入数据分配一个序列号,将序列号和初始关键字组合成第一关键字。其中,序列号表示写入数据的次数和顺序,序列号可以为1,2,3……的整数,例如,用户输入的初始关键字(key)为字符串“abc”,主控服务器为该待写入数据(value)分配的序列号是1000,则组成的第一关键字可以为字符串“abc#1000”。
步骤103、主控服务器向存储节点发送写数据指令;其中,写数据指令包括待写入数据和第一关键字。
在本实施例中,主控服务器可以将待写入数据和第一关键字发送给多个存储节点进行备份存储,也可以将待写入数据和第一关键字发送给主存储节点进行存储,再由主存储节点将待写入数据和第一关键字备份存储到备存储节点中。
步骤104、存储节点根据写数据指令,存储待写入数据和第一关键字。
在本实施例中,存储节点接收到写数据指令之后,将待写入数据和第一关键字进行存储。可选地,若该存储节点为主存储节点,则接收主控服务器发送的写数据指令,将待写入数据和第一关键字进行存储之后,再将该写数据指令发送给备存储节点(步骤1041),由备存储节点对待写入数据和第一关键字进行存储(步骤1042);若该存储节点为备存储节点,则接收主存储节点发送的写数据指令,对待写入数据和第一关键字进行存储。
现有技术中,在每次写入数据时,都需要先将包括序列号的日志写入存储节点,相当于每写入一次数据,存储节点都需要执行两次写操作,例如,若写入100个数据,则存储节点需要执行200次写操作,明显增加了存储节点的处理器负荷。本实施例中,由主控服务器将序列号和初始关键字组成第一关键字,将第一关键字和待写入数据一起写入存储节点中,相当于将日志放到关键字中与待写入数据一起写入存储节点,避免了单独写日志的过程,例如,若写入100个数据,则存储节点执行100次写操作,明显降低了存储节点的处理器的负荷。
本实施例提供的数据的处理方法,主控服务器接收用户终端发送的写请求,为待写入数据分配序列号,并根据序列号与初始关键字组成第一关键字,将待写入数据和第一关键字发送给存储节点进行存储,相当于将日志放到关键字中与待写入数据一起写入存储节点,避免了单独写日志的过程,有效降低了存储节点的处理器的负荷。
图5为本发明实施例二提供的数据的处理方法的流程图。本实施例主要涉及的是当存储节点发生故障时,如何对故障节点中的数据进行同步恢复的具体过程。如图5所示,在图4所示的步骤104之后,该方法包括以下步骤:
步骤201、存储节点更新缓存器中最大的序列号。
在本实施例中,存储节点具有独立的缓存器,每次写入数据之后,存储节点会自动更新缓存器中的最大的序列号(head),例如,本次写入数据的序列号为56,而缓存器中的最大的序列号为55,则将缓存器中的最大的序列号更新为56。
可选地,若存储节点删除数据之后,更新缓存器中最小的序列号(tail)。
步骤202、存储节点按照预设时间周期,对缓存器中最大的序列号和最小的序列号进行持久化。
在本实施例中,为了防止存储节点掉电或者发生故障时内存中的head和tail丢失,需要每隔一段时间对head和tail进行持久化,例如,将head和tail存储到存储节点的硬盘或者是数据库中。
步骤203、存储节点接收主控服务器发送的检测指令。
在本实施例中,主控服务器在以下三种情况下向存储节点发送检测指令:
第一种情况:主控服务器定期做心跳检测,即向存储节点定期的发送一些指令,若在规定时间内没有收到存储节点的响应,则判断该存储节点发生故障,该故障可以是存储节点的硬件、软件发生故障,或者是网路出现故障,也可能是存储节点突然掉电等,当发现某个存储节点故障时,主控服务器向存储节点发送检测指令。
第二种情况:主控服务器之外的其它服务器定期做心跳检测,当发现某个存储节点故障时,向主控服务器发送检测指令,再由主控服务器向各存储节点发送检测指令。
第三种情况:用户终端向主控服务器发送检测指令,再由主控服务器向各存储节点发送检测指令,例如,用户在访问某个网页时,点击“刷新”按钮,则触发用户终端向主控服务器发送检测指令。
需要说明的是,本实施例中的步骤204至步骤206主要针对的是备存储节点发生故障的情况,由于主存储节点发生故障时,主控服务器会指定其他的存储节点作为主存储节点,因此,发生故障的主存储节点此时作为了备存储节点。
步骤204、存储节点根据检测指令获取第一序列号和/或第二序列号;其中,第一序列号为存储节点中持久化的最大的序列号,第二序列号为存储节点中持久化的最小的序列号。
在本实施例中,当存储节点接收到主控服务器发送的检测指令之后,先获取本地持久化的最大的序列号old head和/或本地持久化的最小的序列号old tail,例如,存储节点的硬盘中存储的old head和/或old tail。由于当获取old head和/或old tail时,有可能出现存储节点在同一时刻将缓存器中的head和/或tail继续进行持久化的现象,则需要在本地持久化的序列号中,从old head和/或old tail开始加1进行遍历,找到本地最新持久化的最大的序列号last head和/或最小的序列号last tail。例如,在存储节点的硬盘中获取的old head为68,当在获取old head时,存储节点将缓存器中的序列号69、70、71写入了硬盘中,则从68开始加1进行遍历,获取到last head为71,从而保证获取到的序列号为存储节点最后一次进行数据更新时对应的序列号。
需要说明的是,本实施例中的第一序列号为last head,第二序列号为last tail。
步骤205、存储节点获取主存储节点中获取第三序列号和/或第四序列号;其中,第三序列号为主存储节点中持久化的最大的序列号,第四序列号为主存储节点中持久化的最小的序列号。
在本实施例中,存储节点获取到本地的last head和/或last tail之后,还需要获取主存储节点中持久化的最大的序列号new head,和/或,主存储节点中持久化的最小的序列号new tail,即第三序列号为new head,第四序列号为new tail。
步骤206、若第一序列号与第三序列号不相等,和/或,第二序列号与第四序列号不相等,则根据序列号从主存储节点中获取待同步数据,并保存待同步数据。
在本实施例中,通过比较备存储节点和主存储节点的head和tail就可以知道哪些数据需要同步。图6为本发明实施例中的数据同步示意图,如图6所示,主存储节点中的序列号为5,……,12,备存储节点中的序列号为5,……,10,则对应的第一序列号last head为10,第二序列号last tail为5,第三序列号new head为12,第四序列号new tail为5,可见,第一序列号last head为和第三序列号new head不相等,则需要将主存储节点中序列号为11和12的数据同步到备存储节点中。
在本实施例中,在进行数据同步的过程中接收到的新操作指令仍然能够执行,但不进行head和tail持久化,在数据同步完成后再进行head和tail持久化。如图6所示,在将主存储节点中序列号为11和12的数据同步到备存储节点的过程中,若接收到写数据指令、读数据指令等都可以同时执行,在数据同步完成后再进行head和tail持久化。
本实施例提供的数据的处理方法,存储节点更新缓存器中最大的序列号,存储节点按照预设时间周期,对缓存器中最大的序列号和最小的序列号进行持久化,接收到主控服务器发送的检测指令之后,获取存储节点中持久化的最大的序列号和存储节点中持久化的最小的序列号,并获取主存储节点中持久化的最大的序列号和持久化的最小的序列号,通过与主存储节点中持久化的最大、最小序列号可以获得同步数据,从而对故障节点中的数据进行同步,保证了存储系统的可靠性。
图7为本发明实施例三提供的数据的处理装置的结构示意图。如图7所示,该装置包括接收模块21、处理模块22和发送模块23。接收模块21用于接收用户终端发送的写请求;其中,写请求包括待写入数据和初始关键字;处理模块22用于为待写入数据分配序列号,并根据序列号与初始关键字组成第一关键字;其中,序列号为严格递增的数值;发送模块23用于向存储节点发送写数据指令;其中,写数据指令包括待写入数据和第一关键字。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本发明实施例四提供的数据的处理装置的结构示意图。如图8所示,该装置包括接收模块31和存储模块32。接收模块31用于接收写数据指令;其中,写数据指令包括待写入数据和第一关键字,第一关键字为主控服务器根据待写入数据的序列号和初始关键字组成的关键字,序列号为严格递增的数值;存储模块32用于根据写数据指令,存储待写入数据和第一关键字。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本发明实施例五提供的数据的处理装置的结构示意图。如图9所示,该装置还包括处理模块33。存储模块32还用于存储节点更新缓存器中最大的序列号。
可选地,存储模块32还用于按照预设时间周期,对缓存器中最大的序列号和最小的序列号进行持久化。
可选地,接收模块31还用于接收主控服务器发送的检测指令。处理模块33用于根据检测指令获取第一序列号和第二序列号;并获取主存储节点中获取第三序列号和第四序列号;其中,第一序列号为存储节点中持久化的最大的序列号,第二序列号为存储节点中持久化的最小的序列号,第三序列号为主存储节点中持久化的最大的序列号,第四序列号为主存储节点中持久化的最小的序列号;若第一序列号与第三序列号不相等,和/或,第二序列号与第四序列号不相等,则处理模块33根据序列号从主存储节点中获取待同步数据,并触发存储模块保存待同步数据。
本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本发明实施例六提供的服务器的结构示意图。如图10所示,该服务器包括接收器41、处理器42和发射器43。接收器41用于接收用户终端发送的写请求;其中,写请求包括待写入数据和初始关键字;处理器42用于为待写入数据分配序列号,并根据序列号与初始关键字组成第一关键字;其中,序列号为严格递增的数值。发射器43用于向存储节点发送写数据指令;其中,写数据指令包括待写入数据和第一关键字。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本发明实施例七提供的存储节点的结构示意图。如图11所示,该存储节点包括接收器51、存储器52,还包括处理器53和发射器54。接收器51用于接收写数据指令;其中,写数据指令包括待写入数据和第一关键字,第一关键字为主控服务器根据待写入数据的序列号和初始关键字组成的关键字,序列号为严格递增的数值。存储器52用于根据写数据指令,存储待写入数据和第一关键字。
可选地,存储器52还用于更新缓存器中最大的序列号。
可选地,存储器52还用于按照预设时间周期,对缓存器中最大的序列号和最小的序列号进行持久化。
可选地,接收器51接收主控服务器发送的检测指令;处理器53根据检测指令获取第一序列号和第二序列号,并获取主存储节点中获取第三序列号和第四序列号;其中,第一序列号为存储节点中持久化的最大的序列号,第二序列号为存储节点中持久化的最小的序列号;第三序列号为主存储节点中持久化的最大的序列号,第四序列号为主存储节点中持久化的最小的序列号;若第一序列号与第三序列号不相等,和/或,第二序列号与第四序列号不相等,则处理器53根据序列号从主存储节点中获取待同步数据,并触发存储器52保存待同步数据。
可选地,发射器54用于向其他的设备发送写数据指令。
本实施例的装置,可以用于执行图4或图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(random access memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种数据的处理方法,其特征在于,包括:
主控服务器接收用户终端发送的写请求;其中,所述写请求包括待写入数据和初始关键字;
所述主控服务器为所述待写入数据分配序列号,并根据所述序列号与所述初始关键字组成第一关键字;其中,所述序列号为严格递增的数值;
所述主控服务器向存储节点发送写数据指令;其中,所述写数据指令包括所述待写入数据和所述第一关键字,所述写数据指令用于所述存储节点基于键值存储结构对所述待写入数据和所述第一关键字进行存储。
2.一种数据的处理方法,其特征在于,包括:
存储节点接收写数据指令;其中,所述写数据指令包括待写入数据和第一关键字,所述第一关键字为主控服务器根据所述待写入数据的序列号和初始关键字组成的关键字,所述序列号为严格递增的数值;
所述存储节点根据所述写数据指令,基于键值存储结构存储所述待写入数据和所述第一关键字。
3.根据权利要求2所述的方法,其特征在于,所述存储节点根据所述写数据指令,存储所述待写入数据和所述第一关键字之后,所述方法还包括:
所述存储节点更新缓存器中最大的序列号。
4.根据权利要求3所述的方法,其特征在于,所述存储节点更新缓存器中最大的序列号之后,所述方法还包括:
所述存储节点按照预设时间周期,对所述缓存器中最大的序列号和最小的序列号进行持久化。
5.根据权利要求4所述的方法,其特征在于,所述存储节点按照预设时间周期,对所述缓存器中最大的序列号和最小的序列号进行持久化之后,所述方法还包括:
所述存储节点接收所述主控服务器发送的检测指令;
所述存储节点根据所述检测指令获取第一序列号和第二序列号;其中,所述第一序列号为所述存储节点中持久化的最大的序列号,所述第二序列号为所述存储节点中持久化的最小的序列号;
所述存储节点获取主存储节点中获取第三序列号和第四序列号;其中,所述第三序列号为所述主存储节点中持久化的最大的序列号,所述第四序列号为所述主存储节点中持久化的最小的序列号;
若所述第一序列号与所述第三序列号不相等,和/或,所述第二序列号与所述第四序列号不相等,则根据序列号从所述主存储节点中获取待同步数据,并保存所述待同步数据。
6.一种数据的处理装置,其特征在于,包括:
接收模块,用于接收用户终端发送的写请求;其中,所述写请求包括待写入数据和初始关键字;
处理模块,用于为所述待写入数据分配序列号,并根据所述序列号与所述初始关键字组成第一关键字;其中,所述序列号为严格递增的数值;
发送模块,用于向存储节点发送写数据指令;其中,所述写数据指令包括所述待写入数据和所述第一关键字,所述写数据指令用于所述存储节点基于键值存储结构对所述待写入数据和所述第一关键字进行存储。
7.一种数据的处理装置,其特征在于,包括:
接收模块,用于接收写数据指令;其中,所述写数据指令包括待写入数据和第一关键字,所述第一关键字为主控服务器根据所述待写入数据的序列号和初始关键字组成的关键字,所述序列号为严格递增的数值;
存储模块,用于根据所述写数据指令,基于键值存储结构存储所述待写入数据和所述第一关键字。
8.根据权利要求7所述的装置,其特征在于,所述存储模块还用于存储节点更新缓存器中最大的序列号。
9.根据权利要求8所述的装置,其特征在于,所述存储模块还用于按照预设时间周期,对所述缓存器中最大的序列号和最小的序列号进行持久化。
10.根据权利要求9所述的装置,其特征在于,所述接收模块还用于接收所述主控服务器发送的检测指令;
所述装置还包括处理模块,用于根据所述检测指令获取第一序列号和第二序列号;并获取主存储节点中获取第三序列号和第四序列号;其中,所述第一序列号为所述存储节点中持久化的最大的序列号,所述第二序列号为所述存储节点中持久化的最小的序列号,所述第三序列号为所述主存储节点中持久化的最大的序列号,所述第四序列号为所述主存储节点中持久化的最小的序列号;
若所述第一序列号与所述第三序列号不相等,和/或,所述第二序列号与所述第四序列号不相等,则所述处理模块根据序列号从所述主存储节点中获取待同步数据,并触发所述存储模块保存所述待同步数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510791227.7A CN105491101B (zh) | 2015-11-17 | 2015-11-17 | 数据的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510791227.7A CN105491101B (zh) | 2015-11-17 | 2015-11-17 | 数据的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105491101A CN105491101A (zh) | 2016-04-13 |
CN105491101B true CN105491101B (zh) | 2018-09-21 |
Family
ID=55677811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510791227.7A Active CN105491101B (zh) | 2015-11-17 | 2015-11-17 | 数据的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105491101B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790345B (zh) * | 2016-11-10 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 数据序列号分配方法及分配装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283906A (zh) * | 2013-07-02 | 2015-01-14 | 华为技术有限公司 | 分布式存储系统、集群节点及其区间管理方法 |
CN104461390A (zh) * | 2014-12-05 | 2015-03-25 | 华为技术有限公司 | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 |
CN104484471A (zh) * | 2014-12-31 | 2015-04-01 | 天津南大通用数据技术股份有限公司 | 一种高性能数据存储引擎的实现方法 |
CN104636266A (zh) * | 2014-05-09 | 2015-05-20 | 华为技术有限公司 | 盖瓦磁记录硬盘、盖瓦磁记录硬盘写数据的方法及装置 |
CN104657500A (zh) * | 2015-03-12 | 2015-05-27 | 浪潮集团有限公司 | 一种基于key-value键值对的分布式存储方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595267B2 (en) * | 2011-06-27 | 2013-11-26 | Amazon Technologies, Inc. | System and method for implementing a scalable data storage service |
-
2015
- 2015-11-17 CN CN201510791227.7A patent/CN105491101B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283906A (zh) * | 2013-07-02 | 2015-01-14 | 华为技术有限公司 | 分布式存储系统、集群节点及其区间管理方法 |
CN104636266A (zh) * | 2014-05-09 | 2015-05-20 | 华为技术有限公司 | 盖瓦磁记录硬盘、盖瓦磁记录硬盘写数据的方法及装置 |
CN104461390A (zh) * | 2014-12-05 | 2015-03-25 | 华为技术有限公司 | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 |
CN104484471A (zh) * | 2014-12-31 | 2015-04-01 | 天津南大通用数据技术股份有限公司 | 一种高性能数据存储引擎的实现方法 |
CN104657500A (zh) * | 2015-03-12 | 2015-05-27 | 浪潮集团有限公司 | 一种基于key-value键值对的分布式存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105491101A (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301154B2 (en) | Distributed storage method and device | |
US9372908B2 (en) | Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation | |
US10108367B2 (en) | Method for a source storage device sending data to a backup storage device for storage, and storage device | |
US11442961B2 (en) | Active transaction list synchronization method and apparatus | |
US7225371B2 (en) | Method and apparatus for storing and retrieving multiple point-in-time consistent data sets | |
JP6028850B2 (ja) | データ多重化システム | |
US20050193248A1 (en) | Computer system for recovering data based on priority of the data | |
CN103186554B (zh) | 分布式数据镜像方法及存储数据节点 | |
US20150213100A1 (en) | Data synchronization method and system | |
JP7215971B2 (ja) | 記憶機器のデータ位置の処理方法及び処理装置、コンピュータ機器並びにコンピュータ読み取り可能な記憶媒体 | |
CN109582686B (zh) | 分布式元数据管理一致性保证方法、装置、系统及应用 | |
CN105630632A (zh) | 一种虚拟机恢复的方法及虚拟机管理设备 | |
US10838825B2 (en) | Implementing snapshot sets for consistency groups of storage volumes | |
CN106357703B (zh) | 集群切换方法与设备 | |
CN100530069C (zh) | 一种非同质存储设备的虚拟化系统及方法 | |
CN108762982B (zh) | 一种数据库恢复方法、装置及系统 | |
CN110121694B (zh) | 一种日志管理方法、服务器和数据库系统 | |
CN106897288B (zh) | 数据库的服务提供方法和系统 | |
CN106873902B (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
US20120084499A1 (en) | Systems and methods for managing a virtual tape library domain | |
CN110941591A (zh) | 一种文件删除方法、装置、设备及可读存储介质 | |
CN105491101B (zh) | 数据的处理方法和装置 | |
CN110121712A (zh) | 一种日志管理方法、服务器和数据库系统 | |
US10620872B2 (en) | Replicating data in a data storage system | |
US10089202B1 (en) | Providing data high availability to a set of host computers via automatic failover |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |