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

文档序号:9581837阅读:来源:国知局
用户可以使用设备101、102、103通过网络104与服务器105、106、107、108交互,以接收或发送消息等。在本申请的应用中,用户可以使用设备101、102、103向服务器发出数据服务请求,例如读写数据的请求,并从服务器105、106、107、108接收所请求的数据。设备101、102、103可以是终端设备,例如个人电脑、手机、智能手表等,也可以是服务器,例如可以是内容管理服务器、应用程序服务器等等。设备101、102、103可以作为客户端为用户提供读写数据的接口。用户可以利用设备101、102、103上的接口、通过网络104向服务器105、106、107、108发出数据读写请求。
[0036]服务器105、106、107、108可以是用于存储数据的服务器。其中服务器105可以是本申请所涉及的存储系统中的主存储节点(也可以称作主控服务器),服务器106、107和108可以是本申请所涉及的存储系统中的从存储节点(也可以称作数据服务器)。服务器105作为主存储节点,保存存储系统中所有数据的索引;服务器106、107、108分别存储服务器105的数据索引中对应的一部分数据,在用户通过设备101、102、103发出读写数据请求时,为用户提供数据读写服务。服务器105和服务器106、107、108之间可以通过有线或无线的网络连接进行数据通信。
[0037]需要说明的是,本申请实施例所提供的用于存储系统的数据存储方法可以由服务器105执行、也可以由服务器106、107、108执行,相应地,用于存储系统的数据存储装置可以设置于服务器105、106、107、108中。
[0038]应该理解,图1中的设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的设备、网络和服务器。
[0039]继续参考图2,示出了根据本申请的用于存储系统的数据存储方法的一个实施例的流程200。本实施例的存储系统可以为分布式缓存系统,例如分布式高速缓冲存储器,包括一个主存储节点和至少一个从存储节点。所述的用于存储系统的数据存储方法,包括以下步骤:
[0040]步骤201,将主存储节点的第一数据同步至至少一个备选从存储节点。
[0041]本实施例的存储系统可以为分布式的高速缓冲存储系统。为了提高系统的读写能力,一般采用一个主存储节点和多个从存储节点的存储架构。其中主存储节点可以存储所有已写入的数据以及数据的索引,从存储节点可以按主存储节点中的数据索引存储对应的数据。为了实现在故障时切换主存储节点,这种存储架构中可以包含一个故障处理模块。所述的故障处理模块可以设置于该用于存储系统的数据存储方法运行于其上的电子设备(如图1所示的终端和服务器)中,具体地,可以设置于主存储节点或从存储节点中,也可以设置于其他用于管理存储系统的设备中。
[0042]在本实施例中,将主存储节点所存储的数据作为第一数据。所述的第一数据可以包括存储系统中的数据索引以及其他的辅助数据(例如用于管理从存储节点状态的管理数据、用于记录存储操作的操作数据)等。主存储节点还可以存储上述存储系统中的所有已写入的数据,即第一数据还包括存储系统中的所有已写入的数据。故障处理模块可以将主存储节点的第一数据同步至至少一个备选从存储节点。该备选从存储节点是作为备选主存储节点的从存储节点,用于在主存储节点宕机时作为新的主存储节点接管数据存储服务。同步的一种方式可以为:在接收到数据存储请求时,主存储节点可以为请求存储的数据分配从存储节点,并更新自身存储的数据、数据索弓I和辅助数据,故障处理模块将更新后的数据、数据索引和辅助数据进行备份,并发送至备选从存储节点。
[0043]在本实施例的一些可选的实现方式中,可以通过如下方式将主存储节点的第一数据同步至至少一个备选从存储节点:判断备选从存储节点是否已存储第一数据,如果判断结果为否,则将第一数据写入备选从存储节点。即可以比对主存储节点和备选从存储节点中的数据,根据比对结果将备选从存储节点中未存储的数据写入备选从存储节点。
[0044]可选地,主存储节点和各从存储节点可以记录当前的操作日志,则可以通过比对主存储节点和备选从存储节点的操作日志来进行主存储节点和从存储节点的数据比对。进一步地,主存储节点和从存储节点可以记录当前操作日志中消息的位置标识信息,例如全局偏移(全局offset),根据全局偏移的不一致来确定当前备选从存储节点需要同步的数据量,从而根据操作日志中数据记录的保存时间来确定需要从主存储节点同步的数据。
[0045]在将主存储节点的第一数据同步至备选从存储节点之后,备选从存储节点的数据与主存储节点的数据完全一致。为了避免多个从存储节点同时同步主存储节点的数据造成存储性能的下降,在本实施例的一些可选的实现方式中,可以将主存储节点的第一数据仅同步至一个备选从存储节点,以减小存储空间的占用。提升存储系统的效率。
[0046]步骤202,响应于主存储节点故障,将一个备选从存储节点切换为新的主存储节点。
[0047]在本实施例中,用于存储系统的数据存储方法运行于其上的电子设备可以实时地监测主存储节点的状态。当主存储节点故障时,上述故障处理模块可以将一个备选从存储节点切换为新的主存储节点。在切换主存储节点时,还可以向其他从存储节点发出通知消息,建立新的主存储节点与其他所有从存储节点的通信连接。在原主存储节点恢复服务之前,新的主存储节点可以管理存储系统中的所有数据及其他从存储节点。
[0048]在本实施例的一些可选的实现方式中,如果备选从存储节点有多个,故障处理模块可以自动地从多个备选从存储节点中选择一个作为新的主存储节点。选择的策略可以是依据存储效率的排序来确定,也可以是随机选择。如果步骤201中将主存储节点的第一数据仅同步至一个备选从存储节点,则在主存储节点故障时,优先将该备选从存储节点切换为新的主存储节点。
[0049]步骤203,响应于客户端发出的服务请求,将当前从存储节点接收到的第二数据上报新的主存储节点。
[0050]在存储系统中,客户端可以向主存储节点发出服务请求。所述的服务请求可以为写入数据的请求。主存储节点可以根据从存储节点的存储状态(例如空间占用率,缓存命中率等)来为该服务请求分配从存储节点。确定为客户端的服务请求分配的从存储节点之后,该从存储节点即可以接收客户端请求写入的数据,为写入的新数据分配地址。写入的新数据以及新数据的地址可以作为从存储节点响应于客户端的服务请求所接收到的第二数据。之后,从存储节点可以向新的主存储节点上报该第二数据。
[0051]在本实施例的一些可选的实现方式中,第二数据包括当前从存储节点响应于客户端的服务请求生成的增量数据,以及当前从存储节点在生成所述增量数据之前已保存的数据。即除了客户端向当前从存储节点写入的新的数据之外,从存储节点向新的主存储节点上报的第二数据还可以包括在主存储节点切换之前已保存的数据。
[0052]具体地,从存储节点可以响应于客户端发出的服务请求,在操作日志中增加与该客户端的服务请求处理相关的内容,例如数据的存储地址、存储时间、访问次数等,从而生成新的操作日志。此时从存储节点可以将新的操作日志上报新的主存储节点。
[0053]在本实施例的一些可选的实现方式中,上述服务请求可以是数据读取请求。由于新的主存储节点已经同步了原主存储节点的全部数据,所以客户端的数据读取请求可以由新的主存储节点进行处理。新的主存储节点通过数据索引查询到客户端所请求读取的数据所在的从存储节点之后,可以向该从存储节点发出数据提取请求。客户端所请求读取的数据所在的从存储节点可以响应于数据提取请求,将数据提供给客户端,同时记录被提取的数据的地址和提取时间,并作为第二数据的一部分上报新的主存储节点。可选地,还可以在从存储节点的操作日志中记录被提取的数据的地址和提取时间,将操作日志作为第二数据的一部分上报新的主存储节点。
[0054]在本实施例中,新的主存储节点可以接收多个从存储节点响应于客户端的多个服务请求而生成的第二数据。在切换主存储节点之后,多个客户端同时请求服务的情况下,也可以保证不丢失数据。
[0055]步骤204,比对新的主存储节点的第一数据和第二数据,以确定待同步数据。
[0056]在本实施例中,可以对新的主存储节点上已有的第一数据和当前从存储节点上报的第二数据进行比对,判断二者是否一致。若一致,可以认为新的主存储节点已存储了当前存储系统的所有数据,则不需要对主存储节点的数据进行更新。若不一致,则可以根据第二数据和第一数据不一致的部分确定出待同步数据。进一步地,可以遍历第二数据,将第二数
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1