用于存储系统的数据存储方法和装置的制造方法_4

文档序号:9581837阅读:来源:国知局
点可以接收客户端请求写入的数据,为写入的新数据分配地址。写入的新数据以及新数据的地址可以作为从存储节点响应于客户端的服务请求所接收到的第二数据。之后,从存储节点可以向新的主存储节点上报该第二数据。
[0079]在本实施例的一些可选的实现方式中,第二数据包括当前从存储节点响应于客户端的服务请求生成的增量数据,以及当前从存储节点在生成所述增量数据之前已保存的数据。
[0080]在本实施例的一些可选的实现方式中,上述服务请求可以是数据读取请求。由于新的主存储节点已经同步了原主存储节点的全部数据,所以客户端的数据读取请求可以由新的主存储节点进行处理。新的主存储节点通过数据索引查询到客户端所请求读取的数据所在的从存储节点之后,可以向该从存储节点发出数据提取请求。客户端所请求读取的数据所在的从存储节点可以响应于数据提取请求,将数据提供给客户端,同时记录被提取的数据的地址和提取时间,并作为第二数据的一部分上报新的主存储节点。
[0081]步骤405,比对新的主存储节点的第一数据和第二数据,以确定待同步数据。
[0082]在本实施例中,可以对新的主存储节点上已有的第一数据和当前从存储节点上报的第二数据进行比对,判断二者是否一致。若一致,可以认为新的主存储节点已存储了当前存储系统的所有数据,则不需要对主存储节点的数据进行更新。若不一致,则可以将第二数据和第一数据不一致的部分确定为待同步数据。
[0083]步骤406,将待同步数据写入新的主存储节点。
[0084]在本实施例中,用于存储系统的数据存储方法运行于其上的电子设备可以将待同步数据写入新的主存储节点,从而使新的主存储节点存储所有客户端所请求的数据。
[0085]在本实施例的一些可选的实现方式中,用于存储系统的数据存储方法还可以包括:向客户端发出应答消息。在确定新的主存储节点写入了待同步数据之后,主存储节点可以向客户端发出读写请求的应答包,其中可以包括数据写入成功的消息,或者客户端所请求读取的数据。
[0086]在本实施例中,上述实现流程中的步骤401、步骤404、步骤405、和步骤406分别与前述实施例中的步骤201、步骤203、步骤204、和步骤205相同,在此不再赘述。
[0087]从图4中可以看出,与图2对应的实施例相比,本实施例中用于存储系统的数据存储方法的流程400增加了为备选从存储节点设定优先级的步骤。由此,本实施例描述的方案可以在主存储节点故障时快速根据优先级选定新的主存储节点,从而进一步加快主存储节点的切换速度,提升数据存储服务的稳定性。
[0088]继续参考图5,图5示出了图4所示的用于存储系统的数据存储方法的数据交互示意图。如图5所示,主存储节点为数据分配从存储节点后,将数据写入对应的从存储节点,同时将主存储节点的所有数据同步至备选从存储节点1、备选从存储节点2和备选从存储节点3。其中备选从存储节点I的优先级为高优先级,备选从存储节点2的优先级为中优先级,备选从存储节点3的优先级为低优先级。在主存储节点故障时,由于优先级最高的备选从存储节点I不可用,则可以将可用且优先级高于备选从存储节点3的备选从存储节点2作为新的主存储节点,接管存储系统的存储服务。这时,如果客户端向从存储节点发出写请求,从存储节点可以将客户端要求写入的数据上报新的主存储节点;如果客户端向从存储节点发出读请求,从存储节点可以将客户端的读请求相关的数据(例如读取的数据地址、读取时间等),主存储节点可以将对应的操作日志存储在数据缓冲区中。
[0089]进一步参考图6,作为对上述各图所示方法的实现,本申请提供了用于存储系统的数据存储装置的一个实施例,其中,存储系统包括一个主存储节点和至少一个从存储节点。该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0090]如图6所示,本实施例所述的用于存储系统的数据存储装置600包括:同步单元601、切换单元602、上报单元603、比对单元604以及写入单元605。其中,同步单元601配置用于将主存储节点的第一数据同步至至少一个备选从存储节点;切换单元602配置用于响应于主存储节点故障,将一个备选从存储节点切换为新的主存储节点;上报单元603配置用于响应于客户端发出的服务请求,将当前从存储节点接收到的第二数据上报新的主存储节点;比对单元604配置用于比对新的主存储节点的第一数据和所述第二数据,以确定待同步数据;写入单元605配置用于将待同步数据写入新的主存储节点。
[0091]在本实施例中,用于存储系统的数据存储装置600的同步单元601可以通过比对主存储节点和备选从存储节点的数据来确定备选从存储节点需要同步的数据,具体地,可以通过比对二者的操作日志来确定出备选从存储节点需要同步的数据,并将需要同步的数据写入备选从存储节点。这样,主存储节点和备选从存储节点会保存当前所有客户端已写入的数据。
[0092]切换单元602可以在主存储节点故障时自动将一个备选从存储节点切换为新的主存储节点。在切换主存储节点时,切换单元602还可以向其他从存储节点发出通知消息,建立新的主存储节点与其他所有从存储节点的通信连接。
[0093]在切换单元602将备选从存储节点切换为新的主存储节点之后,当客户端发出服务请求时,当前从存储节点可以响应于该服务请求,接收到新的数据,上报单元603可以向主存储节点发送消息,上报当前从存储节点接收到的新的数据。
[0094]比对单元604可以对上报单元603上报的第二数据和新的主存储节点从原主存储节点同步的第一数据进行比对,将第二数据中与第一数据不一致的部分确定为待同步数据。同步单元605可以将比对单元604确定出的待同步数据通过数据写入的方式同步至新的主存储节点。
[0095]在本实施例的一些可选的实现方式中,上述用于存储系统的数据存储装置600还可以包括设定单元、获取单元和应答单元。其中,设定单元可以配置用于为备选从存储节点设定切换优先级,则切换单元603可以进一步配置用于按照切换优先级选择一个备选从存储节点切换为新的主存储节点。获取单元可以配置用于获取新的主存储节点和所述当前从存储节点的操作日志,则比对单元604可以进一步包括操作日志比对模块和待同步数据确定模块。操作日志比对模块配置用于比对新的主存储节点的操作日志和当前从存储节点的操作日志,以确定增量操作日志;待同步数据确定模块,配置用于根据增量操作日志确定待同步数据。应答单元可以配置用于向发出数据服务请求的客户端发出应答消息。应答消息可以包括数据写入成功的消息,或者客户端所请求读取的数据。
[0096]本领域技术人员可以理解,上述装置600还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图6中未示出。
[0097]下面参考图7,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统700的结构示意图。
[0098]如图7所示,计算机系统700包括中央处理单元(CPU) 701,其可以根据存储在只读存储器(ROM) 702中的程序或者从存储部分708加载到随机访问存储器(RAM) 703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 70KROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
[0099]以下部件连接至I/O接口 705:包括键盘、鼠标等的输入部分706 ;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707 ;包括硬盘等的存储部分708 ;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口 705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
[0100]特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
[0101]附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1