WO2017101016A1 - 用于存储节点同步业务请求的方法和装置 - Google Patents

用于存储节点同步业务请求的方法和装置 Download PDF

Info

Publication number
WO2017101016A1
WO2017101016A1 PCT/CN2015/097431 CN2015097431W WO2017101016A1 WO 2017101016 A1 WO2017101016 A1 WO 2017101016A1 CN 2015097431 W CN2015097431 W CN 2015097431W WO 2017101016 A1 WO2017101016 A1 WO 2017101016A1
Authority
WO
WIPO (PCT)
Prior art keywords
service request
storage node
service
request set
requests
Prior art date
Application number
PCT/CN2015/097431
Other languages
English (en)
French (fr)
Inventor
于传帅
张程伟
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2015/097431 priority Critical patent/WO2017101016A1/zh
Priority to CN201580002564.1A priority patent/CN107710165B/zh
Publication of WO2017101016A1 publication Critical patent/WO2017101016A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the service request synchronization device determines, that the service request that belongs to the second service request set and does not belong to the first service request set is the first a service request lost by a storage node during a failure, the: the service request synchronization device determines a flag bitmap of the first service request set according to a key of each service request in the first service request set; the service request is synchronized The device determines, according to a key of each service request in the second service request set, a flag bitmap of the second service request set; the service request synchronization device compares the flag bit corresponding to the first service request set with the second service The corresponding flag bit of the request set is obtained, and the service request belonging to the second service request set and not belonging to the first service request set is the lost service request, so that the lost service request can be determined more intuitively.
  • the embodiment of the present invention describes a method for storing a node synchronization service request.
  • the method is applied to a storage system, and the storage system may include two key-value storage nodes as described above.
  • the service request can be executed concurrently and out of order.
  • Each key-value storage node stores the key-value data of the storage node and the log corresponding to the storage node, that is, the storage system Save two key-value data and save the logs corresponding to the two storage nodes.
  • the service request of the storage node 1 is in the log (log) 1 corresponding to the storage node because the service request in the storage node is executable in an out-of-order manner.
  • the first storage node may perform the multiple service requests in a first order, and the second storage node performs the second sequence in the second order.
  • the first sequence and the second sequence may be the same or different.
  • the order of executing multiple service requests may be inconsistent with the delivery order, and multiple service requests may be executed concurrently or in an out-of-order manner.
  • the serial number of the service request is assigned and maintained, which limits the service request throughput.
  • the first log records the service request that has been executed by the first storage node and the start execution time of the service request, and records the executed service of the second storage node by using the second log. The request and the start of execution of the business request.
  • the size of the sequence numbers of the above processes does not mean the order of execution, and the order of execution of each process should be determined by its function and internal logic, and should not be directed to the embodiments of the present invention.
  • the implementation process constitutes any limitation.
  • the first sequence may be different from the second sequence or may be the same.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例涉及用于存储节点同步业务请求的方法和装置。该方法包括:当第一存储节点在执行多个业务请求的t1至t2内发生故障时,确定该第一日志中记录的开始执行时刻在t1-2dt至t2+2dt内的业务请求的集合为第一业务请求集合,该第二日志中记录的开始执行时刻在t1-dt至t2+dt内的业务请求的集合为第二业务请求集合,dt为执行业务请求的最大时间跨度;确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该第一存储节点在发生故障期间丢失的业务请求,以便于第一存储节点执行该丢失的业务请求。本发明实施例的用于存储节点同步业务请求的方法和装置,能够准确的得到丢失的业务请求,同步正常存储节点与故障存储节点的业务请求,提高了存储***执行业务请求的吞吐量。

Description

用于存储节点同步业务请求的方法和装置 技术领域
本发明涉及通信领域,尤其涉及用于存储节点同步业务请求的方法和装置。
背景技术
在较大规模的存储***中存储节点故障是常态,在存储节点故障时需要保证数据不丢失,这就是高可靠性,还要保证***继续提供服务,这就是高可用性,存储厂商一般采用多副本或纠删码(Erasure code,EC)技术,例如将数据复制多份(多副本),存储多份来提供高可靠性和高可用性。
假设现在存储***中,在存储节点故障期间,存储***仍在正常下发业务,此时故障存储节点就丢失了一部分业务请求,需要将故障存储节点与正常存储节点的业务请求同步。
在现有的强一致性存储***存储中,一般采用状态同步机(Replication State Machine,简称“RSM”)机制来提供同步技术。RSM机制的基本思想是各个存储节点是完全同步的,例如假设有put(key1)、put(key2)、del(key1)、put(key3)四个业务请求,各个存储节点都必须先执行put(key1)、再执行put(key2)、再执行del(key1)、再执行put(key3),并且同时以同样顺序记录log,如果存储节点故障期间丢失了一些业务请求,这些业务请求在日志(log)中必然是紧挨着的、连续的,例如后两个业务请求del(key1)、put(key3),故障存储节点重启后,通过比对log很容易就找到丢失的业务请求,补齐这两个业务请求就可以完成同步。
但是,这样为了高效的识别故障重启存储节点丢失的业务请求,业务请求必须是顺序执行的,而且需要分配和维护业务请求的序列号,这很大程度上限制了存储***执行业务请求的吞吐量。
发明内容
本发明提供了一种用于存储节点同步业务请求的方法和装置,能够准确的得到丢失的业务请求,同步正常存储节点与故障存储节点的业务请求,提高了存储***执行业务请求的吞吐量。
第一方面,提供了一种用于存储节点同步业务请求的方法,该方法应用于包括第一存储节点和第二存储节点的存储***中,该第一存储节点用于按照第一顺序执行多个业务请求并存储第一日志,该第一日志用于记录该多个业务请求中该第一存储节点已执行的每个业务请求以及该第一存储节点已执行的每个业务请求的开始执行时刻,该第二存储节点用于按照第二顺序执行该多个业务请求并存储第二日志,该第二日志记用于录该多个业务请求中该第二存储节点已执行的每个业务请求以及该第二存储节点已执行的每个业务请求的开始执行时刻,该方法包括:当该第一存储节点在执行该多个业务请求的t1至t2内发生故障时,业务请求同步装置确定第一业务请求集合和第二业务请求集合,该第一业务请求集合为该第一日志中记录的开始执行时刻在t1-2dt至t2+2dt内的业务请求的集合,该第二业务请求集合为该第二日志中记录的开始执行时刻在t1-dt至t2+dt内的业务请求的集合,该dt大于或等于该第一存储节点开始执行目标业务请求的时刻与该第二存储节点开始执行该目标业务请求的时刻之间的差值,该目标业务请求为该第一业务请求集合或该第二业务请求集合中的业务请求;该业务请求同步装置确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该第一存储节点在发生故障期间丢失的业务请求;该业务请求同步装置指示该第二存储节点向该第一存储节点发送该丢失的业务请求。
因此,本发明实施例的用于存储节点同步业务请求的方法,存储***中的两个存储节点可以不按照业务请求下发的顺序执行业务请求,在其中一个发生故障时,可以通过查找不同时间段内不属于发生故障的存储节点记录的业务请求但属于正常存储节点记录的业务请求为丢失的业务请求,从而使不同存储节点可以并发或乱序地执行业务请求,而不需要专门的分配和维护业务请求的序列号,并且还能够准确的从正常的存储节点得到丢失的业务请求,完成业务请求同步,提高了存储***执行业务请求的吞吐量。
结合第一方面,在第一方面的一种实现方式中,该业务请求同步装置确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该第一存储节点在发生故障期间丢失的业务请求,包括:该业务请求同步装置分别将该第一业务请求集合和该第二业务请求集合中的业务请求按照业务请求的键进行排序;该业务请求同步装置根据排序的结果比对该第一业务请求集合和该第二业务请求集合中的业务请求,得到属于该第二业务请求集合 且不属于该第一业务请求集合的业务请求为该丢失的业务请求,这样,可以避免遍历动作,更快地查找丢失的业务请求。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该业务请求同步装置确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该第一存储节点在发生故障期间丢失的业务请求,包括:该业务请求同步装置根据该第一业务请求集合中每个业务请求的键,确定该第一业务请求集合的标志位图;该业务请求同步装置根据该第二业务请求集合中每个业务请求的键,确定该第二业务请求集合的标志位图;该业务请求同步装置比对该第一业务请求集合对应的标志位和该第二业务请求集合对应的标志位,得到属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该丢失的业务请求,这样可以更加直观地确定丢失的业务请求。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该业务请求同步装置确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该第一存储节点在发生故障期间丢失的业务请求,包括:该业务请求同步装置根据布鲁姆过滤器bloom filter算法和该第一业务请求集合中每个业务请求的键,确定该第一业务请求集合的位图;该业务请求同步装置根据该bloom filter算法和该第二业务请求集合中每个业务请求的键,确定该第二业务请求集合的位图;该业务请求同步装置对比该第一业务请求集合的位图和该第二业务请求集合的位图,确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该丢失的业务请求。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该第一顺序与该第二顺序不同。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该业务请求同步装置指示该第二存储节点向该第一存储节点发送该丢失的业务请求,包括:该业务请求同步装置接收该第二存储节点发送的该丢失的业务请求;该业务请求同步装置向该第一存储节点发送该丢失的业务请求。
第二方面,提供了一种用于存储节点同步业务请求的装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
第三方面,提供了一种用于存储节点同步业务请求的装置,包括:存储 单元和处理器,该存储单元用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第四方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。
图1是根据本发明实施例的存储集群的示意图。
图2是根据本发明实施例的用于存储节点同步业务请求的方法的示意性流程图。
图3是根据本发明实施例的确定业务请求集合的方法的示意图。
图4是根据本发明实施例的确定业务请求集合的方法的另一示意图。
图5是根据本发明实施例的确定业务请求集合的方法的再一示意图。
图6是根据本发明实施例的用于存储节点同步业务请求的装置的示意性框图。
图7是根据本发明另一实施例的用于存储节点同步业务请求的装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。
如图1所示,图1为一个存储集群的物理结构,而key-value存储节点可以为一个如图1所示的提供key-value接口的存储集群,该存储集群可以包括多个以太(Ethernet)协议接口硬盘,又称为IP盘,例如图1所示的存储集群包括两个IP盘,或者也可以包括多于两个IP盘。
另外,key-value存储节点也可以是单个的提供key-value接口的IP的盘;该key-value存储节点也可以是部署在集群或单盘中的提供key-value接口的 虚拟设备。
而本发明实施例描述了一种存储节点同步业务请求的方法,该方法应用于存储***中,该存储***可以包括两个如上述所述的key-value存储节点。在该存储***中,业务请求可以并发的、乱序的执行,每个key-value存储节点会分别保存各自存储节点的key-value数据以及各自存储节点对应的日志,也就是该存储***中会保存两份key-value数据,同时保存两个存储节点对应的日志。当存储***中的存储节点1故障重启后,由于该存储节点中业务请求是可以乱序的、并发的执行,因此存储节点1丢失的业务请求在该存储节点对应的日志(log)1中并不是紧挨着的、连续的,需要高效的查找这些丢失的业务请求,因此,本发明实施例描述了一种存储节点同步业务请求的方法,能够准确的得到故障的存储节点丢失的业务请求,完成业务请求同步,提高了存储***执行业务请求的吞吐量。
图2示出了根据本发明实施例的用于存储节点同步业务请求的方法100的示意性流程图,该方法100应用于包括第一存储节点和第二存储节点的存储***中,该第一存储节点用于按照第一顺序执行多个业务请求,该第一存储节点存储第一日志,该第一日志用于记录在该多个业务请求中该第一存储节点已执行的每个业务请求以及该每个业务请求的开始执行时刻,该第二存储节点用于按照第二顺序执行该多个业务请求,该第二存储节点存储第一日志,该第二日志用于记录在该多个业务请求中该第二存储节点已执行的每个业务请求以及该每个业务请求的开始执行时刻,该方法100可以由业务请求同步装置执行,该装置可以为一个虚拟模块,该装置位于该存储***中的任意一个存储节点中,例如第一存储节点或第二存储节点,或其它存储节点,本发明实施例并不限于此。如图2所示,该方法100包括:
S110,当该第一存储节点在执行该多个业务请求的t1至t2内发生故障时,业务请求同步装置确定第一业务请求集合和第二业务请求集合,该第一业务请求集合为该第一日志中记录的开始执行时刻在t1-2dt至t2+2dt内的业务请求的集合,该第二业务请求集合为该第二日志中记录的开始执行时刻在t1-dt至t2+dt内的业务请求的集合,该dt大于或等于该第一存储节点开始执行目标业务请求的时刻与该第二存储节点开始执行该目标业务请求的时刻之间的差值,该目标业务请求为该第一业务请求集合或该第二业务请求集合中的业务请求;
S120,该业务请求同步装置确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该第一存储节点在发生故障期间丢失的业务请求;
S130,该业务请求同步装置指示该第二存储节点向该第一存储节点发送该丢失的业务请求。
具体地,第一存储节点按照第一顺序执行多个业务请求、并由第一日志记录已执行的每个业务请求以及对应的开始执行时刻,第二存储节点按照第二顺序也执行该多个业务请求、并由第二日志记录已执行的每个业务请求以及对应的开始执行时刻,当在t1至t2时刻内,第一存储节点发生故障,则在第一日志中确定第一业务请求集合,该第一业务请求集合包括第一日志中记录的在t1-2dt至t2+2dt时刻内执行的业务请求;还在第二日志中确定第二业务请求集合,该第二业务请求集合包括第二日志中记录的在t1-dt至t2+dt时刻内执行的业务请求,其中,该dt可以称为最大时间跨度,dt大于或等于第一存储节点开始执行目标业务请求的时刻与该第二存储节点开始执行该目标业务请求的时刻之间的差值,该目标业务请求为***下发的多个业务请求中的任意一个业务请求,可选地,对于该目标业务可以选择属于第一业务请求集合或第二业务请求集合的全部业务请求中的一个,对于该第一业务请求集合和第二业务请求集合包括的全部业务请求均可以满足最大时间跨度dt的范围。再将属于第二业务请求集合但是不属于第一业务请求集合的业务请求确定为第一存储节点在故障期间内丢失的业务请求,即该丢失的业务请求为第一存储节点由于故障而未执行的业务请求,以便于第一存储节点执行该丢失的业务请求。
因此,本发明实施例中的用于存储节点同步业务请求的方法,存储***中的两个存储节点可以不按照业务请求下发的顺序执行业务请求,在其中一个发生故障时,可以通过查找不同时间段内不属于发生故障的存储节点记录的业务请求但属于正常存储节点记录的业务请求为丢失的业务请求,从而使不同存储节点可以并发或乱序地执行业务请求,而不需要专门的分配和维护业务请求的序列号,并且还能够准确的从正常的存储节点得到丢失的业务请求,完成业务请求同步,提高了存储***执行业务请求的吞吐量。
在本发明实施例中,对于存储***下发的多个业务请求,第一存储节点可以按照第一顺序执行该多个业务请求,第二存储节点按照第二顺序执行该 多个业务请求,该第一顺序和第二顺序可以相同,也可以不同,执行多个业务请求的顺序可以与下发顺序不一致,可以并发或乱序执行多个业务请求,这样可以避免需要专门分配和维护业务请求的序列号,从而导致的限制了业务请求吞吐量。此外,对于每个存储节点记录执行的业务请求,可以通过第一日志记录第一存储节点已执行的业务请求以及该业务请求的开始执行时刻,通过第二日志记录第二存储节点已执行的业务请求以及该业务请求的开始执行时刻。
在本发明实施例中,无论第一存储节点还是第二存储节点,都对业务请求的执行顺序不进行限制,但可以对业务请求的执行时间进行限制,如果超过预设时间存储节点未执行业务请求,即在一定时间内,存储***没有收到该存储节点在执行完该业务请求后返回的响应消息,则***可以重新下发该业务请求,该存储节点应该重新执行该业务请求。可选地,这里的预设时间可以根据实际应用进行设置,预先设置一个时间后,若***超过该预设时间未收到该存储节点的响应消息,则***可以重新下发该业务请求,该存储节点可以重新执行该业务请求。
在本发明实施例中,可以定义最大时间跨度,即当任意一个业务请求,例如目标业务请求在t时刻被执行,出现在一个日志中,也就是由一个存储节点开始执行,那么在t-dt至t+dt时刻这段时间内,该目标业务请求也一定会出现在另一日志中,由该另一个存储节点也开始执行,这里的dt即为最大时间跨度。例如,在t时刻,目标业务请求出现在第一日志中,也就是由第一存储节点开始执行,那么在t-dt至t+dt时刻这段时间内,该业务请求一定会出现在第二日志中,由第二存储节点开始执行,也就是,该dt满足大于或等于该第一存储节点开始执行该目标业务请求的时刻与该第二存储节点开始执行该目标业务请求的时刻之间的差值。可选地,该最大时间跨度dt可以根据实际情况进行预先设置,各个存储节点执行的各个业务请求都满足该最大时间跨度的要求。可选地,该最大时间跨度dt也可以在发生故障后进行计算,算出一段时间内的业务请求的最大时间跨度,本发明实施例并不限于此。
在S110中,当该第一存储节点在执行该多个业务请求的过程中,在t1至t2时刻内发生故障时,则根据第一日志确定第一业务请求集合,根据第二日志确定第二业务请求集合,该第一业务请求集合为该第一日志在t1-2dt至t2+2dt时刻内记录的已经执行的业务请求的集合,该第二业务请求集合为该 第二日志在t1-dt至t2+dt时刻内记录的已经执行的业务请求的集合,其中,该dt为最大时间跨度,该dt可以根据第一业务请求集合和第二业务请求集合中包括的业务请求进行计算获得;在S120中,确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该第一存储节点在发生故障期间丢失的业务请求,以便于恢复正常的第一存储节点可以重新执行故障期间丢失的业务请求,从而实现业务请求同步,提高了存储***执行业务请求的吞吐量。
在本发明实施例中,第一存储节点和第二存储节点在执行业务请求时满足最大时间跨度的要求,当任意存储节点发生故障时,例如,如图3所示,第一存储节点在t1至t2时刻内故障,即图3中A段时间内第一存储发生故障,那么这段时间内第一存储节点丢失的业务请求一定属于图3中的B段时间内的业务请求,也就是第二存储节点在t1-dt至t2+dt时刻内执行的业务请求,即会出现在第二日志在t1-dt至t2+dt时刻内记录的业务请求中,将这些该段时间记录的业务请求确定为第二业务请求集合;并且,丢失的业务请求不属于C段时间,也就是第一存储节点在t1-2dt至t2+2dt时刻内执行的业务请求,即不会出现在第一日志中的t1-2dt至t2+2dt时刻内记录的业务请求中,将这些该段时间记录的业务请求确定为第一业务请求集合。因此,确定第一存储节点故障期间内丢失的业务请求,也就是确定属于A段时间的业务请求,也就是确定属于第二业务请求集合但是不属于第一业务请求集合的业务请求为第一存储节点丢失的业务请求。
可选地,作为一个实施例,当第一存储节点在t1至t2时刻内发生故障时,确定该第一存储节点故障器件丢失的业务请求,也就是确定属于第二业务请求集合,但不属于第一业务请求集合的业务请求,第一业务请求集合为第一存储节点在t1-2dt至t2+2dt时刻内执行的业务请求,记录在第一日志中的t1-2dt至t2+2dt时刻内;第二业务请求结合为第二存储节点在t1-dt至t2+dt时刻内执行的业务请求,记录在第二日志中的t1-dt至t2+dt时刻内。具体地,可以通过将第一业务请求集合和第二业务请求结合中的业务请求按照键进行排序,从而确定出丢失的业务请求。例如如图4所示,A、B和C中分别包括多个业务请求,这里的业务请求为以输入键(key)为例,例如,put(key1),序号1对应该业务请求的键,另外,A对应的为丢失的业务请求,B对应第二业务请求集合,C对应第一业务请求集合,确定属于第二业务请 求集合但不属于第一业务请求集合的业务请求,即确定属于B但不属于C的业务请求,可以先将B和C中的业务请求按照键进行排序,排序结果如图4所示,按照键的顺序进行对比可知,属于B但不属于C的业务请求分别为key2、key4、key6和key7,与A中的一致,说明通过这种方式可以准确地判断丢失的业务请求。采用这种排序的方式对比,可以避免遍历日志中记录的每个业务请求,例如对于B中的key6,在查找其是否属于C时,可以发现C中只包括key5,之后是key8,则不但可以确定出key6是丢失数据,也可以确定key7也一定是丢失数据,而不必再次判断key7,避免遍历B中每个业务请求的操作。
可选地,作为一个实施例,还可以通过标志位,来确定丢失的业务请求。具体地,例如,如图5所示,将第二业务请求集合中的每个业务请求用标志位表示,即一个业务请求对应一个标志位,确定出第二业务请求集合的标志位图,结果如图5中的B所示,黑色方块表示执行了该标志位对应的业务请求,白色方块表示未执行该标志位对应的业务请求;同样地将第一业务请求集合中的每个业务请求也用标志位表示,结果如图5中的C所示,并且B与C中相同标志位指示的业务请求的键也相同,例如,对于B中的第一标志位,假设该标志位对应的业务请求的键为key1,则在C中的第一标志位对应的业务请求的键也为key1,而B中的第一标志位为白块,表示未执行该key1,C中的第一标志位为黑块,表示已经执行该key1。分别确定第二业务请求集合对应的B与第一业务请求集合对应的C的标志位图后,业务请求同步装置可以根据该标志位图确定属于B但不属于C的丢失的业务请求A,具体地,可以通过公式:A=B-B∩C=B^(B&C)来计算,其中,&表示与,^表示异或,即先将B、C按位与,再将结果与B异或,就可以找到丢失的业务请求A对应的标志位,如图5所示,确定的丢失的业务请求A分别为第四标志位和第六标志位,再反向查找就可以得到具体地的丢失的业务请求,即确定第四标志位和第六标志位对应的业务请求。
可选地,作为一个实施例,还可以通过布鲁姆过滤器(bloom filter)算法,来确定丢失的业务请求。具体地,确定了第一业务请求集合和第二业务请求集合中的业务请求,以业务请求为bloom filter为例,则以key为输入,例如第一业务请求集合包括输入key3,则以key3为输入;通过一个函数计算出输入值对应的输出数值,例如通过任意一个哈希(hash)函数h(x),以 key3为输入,算出输出值h(key3)的值;再取该输出值的任意几位数值,例如取该输出值h(key3)的后两位,根据该两位数在第一业务请求集合的位图中确定出属于该key3的位置,将该位置处的bit设置为1。依此类推,分别将第一业务请求集合和第二业务请求集合中的每个业务请求为输入,算出每个业务请求在各自位图中的位置,并在对应位图中表示出每个业务请求,这样,可以分别确定出第一业务请求集合的位图和第二业务请求集合的位图,将该两个位图进行对比,用A表示需要求得第一存储节点丢失的业务请求,用B表示第二业务请求集合的业务请求,用C表示第一业务请求集合的业务请求,即查找属于B但不属于C的丢失的业务请求A可以通过公式:A=B-B∩C=B^(B&C)来计算,其中,&表示与,^表示异或,即先将B、C按位与,再将结果与B异或,这样就可以找到丢失的业务请求A对应的位图的位置。再通过函数反向计算就可以得到该位置对应的业务请求即为丢失的业务请求;或者在生成位图时,同时记录每个为1的bit对应的业务请求,则可以通过该记录的关系,直接确定出丢失的业务请求A。
在S130中,该业务请求同步装置指示该第二存储节点向该第一存储节点发送该丢失的业务请求。具体地,该业务请求同步装置根据第一业务请求集合和第二业务请求集合,可以确定在第二存储节点的第二日志中,哪些业务请求属于第一存储节点在第一存储节点故障期间未执行的业务请求,这些业务请求即为第一存储节点丢失的业务请求。该业务请求同步装置可以指示第二存储节点将该丢失的业务请求发送至第一存储节点,然后由第一存储节点执行该丢失的业务请求,从而同步业务请求,提高了存储***执行业务请求的吞吐量。
在本发明实施例中,该第二存储节点可以根据业务请求同步装置的指示,包括第二存储节点直接将第二日志中记录的属于第一存储节点的丢失的业务请求发送至第一存储节点;或者第二存储节点将该丢失的业务请求发送至该业务请求同步装置,由该业务请求同步装置将丢失的业务请求发送至第一存储节点。或者,第一存储节点在故障恢复后,可以向业务请求同步装置发送请求信息,该请求信息用于请求丢失的业务请求,该业务请求同步装置根据该请求信息指示第二存储节点向第一存储节点发送丢失的业务请求。或者,该业务请求同步装置指示该第二存储节点向该第一存储节点发送该丢失的业务请求包括该业务请求同步装置指示第一存储节点向第二存储节点发 送请求信息,该请求信息用于请求丢失的业务请求,第二存储节点根据请求信息向第一存储节点发送丢失的业务请求。或者,第一存储节点向第二存储节点发送请求信息,该请求信息用于请求丢失的业务请求,该业务请求同步装置指示该第二存储节点根据请求信息向该第一存储节点发送该丢失的业务请求包括本发明实施例并不限于此。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
因此,本发明实施例中的用于存储节点同步业务请求的方法,存储***中的两个存储节点可以不按照业务请求下发的顺序执行业务请求,在其中一个存储节点发生故障时,可以通过查找不同时间段内不属于发生故障的存储节点记录的业务请求但属于正常存储节点记录的业务请求为丢失的业务请求,从而使不同存储节点可以并发或乱序地执行业务请求,而不需要专门的分配和维护业务请求的序列号,并且还能够准确的从正常的存储节点得到丢失的业务请求,完成业务请求同步,提高了存储***执行业务请求的吞吐量。
上文中结合图1至图5,详细描述了根据本发明实施例的用于存储节点同步业务请求的方法,下面将结合图6至图7,描述根据本发明实施例的用于存储节点同步业务请求的装置。
图6示出了根据本发明实施例的用于存储节点同步业务请求的装置200的示意性框图,该装置200可以位于包括第一存储节点和第二存储节点的存储***中,该第一存储节点用于按照第一顺序执行多个业务请求并存储第一日志,该第一日志用于记录该多个业务请求中已执行的每个业务请求以及该已执行的每个业务请求的开始执行时刻,该第二存储节点用于按照第二顺序执行该多个业务请求并存储第二日志该第二日志用于记录该多个业务请求中已执行的每个业务请求以及该已执行的每个业务请求的开始执行时刻,该装置200包括:
第一确定单元210,用于当该第一存储节点在执行该多个业务请求的t1至t2内发生故障时,确定第一业务请求集合和第二业务请求集合,该第一业务请求集合为该第一日志中记录的开始执行时刻在t1-2dt至t2+2dt内的业务请求的集合,该第二业务请求集合为该第二日志中记录的开始执行时刻在t1-dt至t2+dt内的业务请求的集合,该dt大于或等于该第一存储节点开始 执行目标业务请求的时刻与该第二存储节点开始执行该目标业务请求的时刻之间的差值,该目标业务请求为该第一业务请求集合或该第二业务请求集合中的业务请求;
第二确定单元220,用于确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该第一存储节点在发生故障期间丢失的业务请求;
处理单元230,用于指示该第二存储节点向该第一存储节点发送该丢失的业务请求。
因此,本发明实施例中的用于存储节点同步业务请求的装置,可以在存储***中的两个存储节点可以不按照业务请求下发的顺序执行业务请求的情况下,在其中一个发生故障时,通过查找不同时间段内不属于发生故障的存储节点记录的业务请求但属于正常存储节点记录的业务请求为丢失的业务请求,从而使不同存储节点可以并发或乱序地执行业务请求,而不需要专门的分配和维护业务请求的序列号,并且还能够准确的从正常的存储节点得到丢失的业务请求,完成业务请求同步,提高了存储***执行业务请求的吞吐量。
可选地,该第一确定单元210具体用于:分别将该第一业务请求集合和该第二业务请求集合中的业务请求按照业务请求的键进行排序;根据排序的结果比对该第一业务请求集合和该第二业务请求集合中的业务请求,得到属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该丢失的业务请求。
可选地,该第一确定单元210具体用于:根据该第一业务请求集合中每个业务请求的键,确定该第一业务请求集合的标志位图;该业务请求同步装置根据该第二业务请求集合中每个业务请求的键,确定该第二业务请求集合的标志位图;比对该第一业务请求集合对应的标志位图和该第二业务请求集合对应的标志位图,得到属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该丢失的业务请求。
可选地,该第一确定单元210具体用于:根据布鲁姆过滤器bloom filter算法和该第一业务请求集合中每个业务请求的键,确定该第一业务请求集合的位图;该业务请求同步装置根据该bloom filter算法和该第二业务请求集合中每个业务请求的键,确定该第二业务请求集合的位图;该业务请求同步装 置对比该第一业务请求集合的位图和该第二业务请求集合的位图,确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该丢失的业务请求。
可选地,该第一顺序与该第二顺序可以不同,也可以相同。
应理解,根据本发明实施例的用于存储节点同步业务请求的装置200可对应于执行本发明实施例中的方法100,并且用于存储节点同步业务请求的装置200中的各个模块的上述和其它操作和/或功能分别为了实现图2中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例中的用于存储节点同步业务请求的装置,可以在存储***中的两个存储节点可以不按照业务请求下发的顺序执行业务请求的情况下,在其中一个发生故障时,通过查找不同时间段内不属于发生故障的存储节点记录的业务请求但属于正常存储节点记录的业务请求为丢失的业务请求,从而使不同存储节点可以并发或乱序地执行业务请求,而不需要专门的分配和维护业务请求的序列号,并且还能够准确的从正常的存储节点得到丢失的业务请求,完成业务请求同步,提高了存储***执行业务请求的吞吐量。
如图7所示,本发明实施例还提供了一种用于存储节点同步业务请求的装置300,包括处理器310、存储器320和总线***330,该装置300位于包括第一存储节点和第二存储节点的存储***中,该第一存储节点用于按照第一顺序执行多个业务请求并存储第一日志,该第一日志用于记录该多个业务请求中已执行的每个业务请求以及该已执行的每个业务请求的开始执行时刻,该第二存储节点用于按照第二顺序执行该多个业务请求并存储第二日志,该第二日志用于记录该多个业务请求中已执行的每个业务请求以及该已执行的每个业务请求的开始执行时刻。
其中,处理器310和存储器320通过总线***330相连,该存储器320用于存储指令,以及存储第一日志和第二日志,该处理器310用于执行该存储器320存储的指令。该存储器320存储程序代码,且处理器310可以调用存储器320中存储的程序代码执行以下操作:当该第一存储节点在执行该多个业务请求的t1至t2内发生故障时,确定第一业务请求集合和第二业务请求集合,该第一业务请求集合为该第一日志中记录的开始执行时刻在t1-2dt至t2+2dt内的业务请求的集合,该第二业务请求集合为该第二日志中记录的开 始执行时刻在t1-dt至t2+dt内的业务请求的集合,该dt大于或等于该第一存储节点开始执行目标业务请求的时刻与该第二存储节点开始执行该目标业务请求的时刻之间的差值,该目标业务请求为该第一业务请求集合或该第二业务请求集合中的业务请求;确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该第一存储节点在发生故障期间丢失的业务请求;指示该第二存储节点向该第一存储节点发送该丢失的业务请求。
因此,本发明实施例中的用于存储节点同步业务请求的装置,可以在存储***中的两个存储节点可以不按照业务请求下发的顺序执行业务请求的情况下,在其中一个发生故障时,通过查找不同时间段内不属于发生故障的存储节点记录的业务请求但属于正常存储节点记录的业务请求为丢失的业务请求,从而使不同存储节点可以并发或乱序地执行业务请求,而不需要专门的分配和维护业务请求的序列号,并且还能够准确的从正常的存储节点得到丢失的业务请求,完成业务请求同步,提高了存储***执行业务请求的吞吐量。
应理解,在本发明实施例中,该处理器310可以是中央处理单元(Central Processing Unit,简称为“CPU”),该处理器310还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器320可以包括只读存储器和随机存取存储器,并向处理器310提供指令和数据。存储器320的一部分还可以包括非易失性随机存取存储器。例如,存储器320还可以存储设备类型的信息。
该总线***330除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***330。
在实现过程中,上述方法的各步骤可以通过处理器310中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器320,处理器310读取存储器320中的信息,结合其 硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:分别将该第一业务请求集合和该第二业务请求集合中的业务请求按照业务请求的键进行排序;根据排序的结果比对该第一业务请求集合和该第二业务请求集合中的业务请求,得到属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该丢失的业务请求。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:根据该第一业务请求集合中每个业务请求的键,确定该第一业务请求集合的标志位图;根据该第二业务请求集合中每个业务请求的键,确定该第二业务请求集合的标志位图;比对该第一业务请求集合对应的标志位和该第二业务请求集合对应的标志位,得到属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该丢失的业务请求。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:根据布鲁姆过滤器bloom filter算法和该第一业务请求集合中每个业务请求的键,确定该第一业务请求集合的位图;根据该bloom filter算法和该第二业务请求集合中每个业务请求的键,确定该第二业务请求集合的位图;对比该第一业务请求集合的位图和该第二业务请求集合的位图,确定属于该第二业务请求集合且不属于该第一业务请求集合的业务请求为该丢失的业务请求。
可选地,该第一顺序与该第二顺序可以不同,也可以相同。
应理解,根据本发明实施例的用于存储节点同步业务请求的装置300可对应于本发明实施例中的用于存储节点同步业务请求的装置200,并可以对应于执行根据本发明实施例的方法100中的相应主体,并且用于存储节点同步业务请求的装置300中的各个模块的上述和其它操作和/或功能分别为了实现图2中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例中的用于存储节点同步业务请求的装置,可以在存储***中的两个存储节点可以不按照业务请求下发的顺序执行业务请求的情况下,在其中一个发生故障时,通过查找不同时间段内不属于发生故障的存储节点记录的业务请求但属于正常存储节点记录的业务请求为丢失的业务请求,从而使不同存储节点可以并发或乱序地执行业务请求,而不需要专门的分配和维护业务请求的序列号,并且还能够准确的从正常的存储节点得 到丢失的业务请求,完成业务请求同步,提高了存储***执行业务请求的吞吐量。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、 随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (15)

  1. 一种用于存储节点同步业务请求的方法,其特征在于,所述方法应用于包括第一存储节点和第二存储节点的存储***中,所述第一存储节点用于按照第一顺序执行多个业务请求并存储第一日志,所述第一日志用于记录所述多个业务请求中所述第一存储节点已执行的每个业务请求以及所述第一存储节点已执行的每个业务请求的开始执行时刻,所述第二存储节点用于按照第二顺序执行所述多个业务请求并存储第二日志,所述第二日志用于记录所述多个业务请求中所述第二存储节点已执行的每个业务请求以及所述第二存储节点已执行的每个业务请求的开始执行时刻,所述方法包括:
    当所述第一存储节点在执行所述多个业务请求的t1至t2内发生故障时,业务请求同步装置确定第一业务请求集合和第二业务请求集合,所述第一业务请求集合为所述第一日志中记录的开始执行时刻在t1-2dt至t2+2dt内的业务请求的集合,所述第二业务请求集合为所述第二日志中记录的开始执行时刻在t1-dt至t2+dt内的业务请求的集合,所述dt大于或等于所述第一存储节点开始执行目标业务请求的时刻与所述第二存储节点开始执行所述目标业务请求的时刻之间的差值,所述目标业务请求为所述第一业务请求集合或所述第二业务请求集合中的业务请求;
    所述业务请求同步装置确定属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述第一存储节点在发生故障期间丢失的业务请求;
    所述业务请求同步装置指示所述第二存储节点向所述第一存储节点发送所述丢失的业务请求。
  2. 根据权利要求1所述的方法,其特征在于,所述业务请求同步装置确定属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述第一存储节点在发生故障期间丢失的业务请求,包括:
    所述业务请求同步装置分别将所述第一业务请求集合和所述第二业务请求集合中的业务请求按照业务请求的键进行排序;
    所述业务请求同步装置根据排序的结果比对所述第一业务请求集合和所述第二业务请求集合中的业务请求,得到属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述丢失的业务请求。
  3. 根据权利要求1所述的方法,其特征在于,所述业务请求同步装置 确定属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述第一存储节点在发生故障期间丢失的业务请求,包括:
    所述业务请求同步装置根据所述第一业务请求集合中每个业务请求的键,确定所述第一业务请求集合的标志位图;
    所述业务请求同步装置根据所述第二业务请求集合中每个业务请求的键,确定所述第二业务请求集合的标志位图;
    所述业务请求同步装置比对所述第一业务请求集合的标志位图和所述第二业务请求集合的标志位图,得到属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述丢失的业务请求。
  4. 根据权利要求1所述的方法,其特征在于,所述业务请求同步装置确定属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述第一存储节点在发生故障期间丢失的业务请求,包括:
    所述业务请求同步装置根据布鲁姆过滤器bloom filter算法和所述第一业务请求集合中每个业务请求的键,确定所述第一业务请求集合的位图;
    所述业务请求同步装置根据所述bloom filter算法和所述第二业务请求集合中每个业务请求的键,确定所述第二业务请求集合的位图;
    所述业务请求同步装置对比所述第一业务请求集合的位图和所述第二业务请求集合的位图,确定属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述丢失的业务请求。
  5. 根据权利要求1至4中任一项所述的方法,其特征在于,所述第一顺序与所述第二顺序不同。
  6. 一种用于存储节点同步业务请求的装置,其特征在于,所述装置位于包括第一存储节点和第二存储节点的存储***中,所述第一存储节点用于按照第一顺序执行多个业务请求并存储第一日志,所述第一日用于志记录所述多个业务请求中所述第一存储节点已执行的每个业务请求以及所述第一存储节点已执行的每个业务请求的开始执行时刻,所述第二存储节点用于按照第二顺序执行所述多个业务请求并存储第二体质,所述第二日志用于记录所述多个业务请求中所述第二存储节点已执行的每个业务请求以及所述第二存储节点已执行的每个业务请求的开始执行时刻,所述装置包括:
    第一确定单元,用于当所述第一存储节点在执行所述多个业务请求的t1至t2内发生故障时,确定第一业务请求集合和第二业务请求集合,所述第一 业务请求集合为所述第一日志中记录的开始执行时刻在t1-2dt至t2+2dt内的业务请求的集合,所述第二业务请求集合为所述第二日志中记录的开始执行时刻在t1-dt至t2+dt内的业务请求的集合,所述dt大于或等于所述第一存储节点开始执行目标业务请求的时刻与所述第二存储节点开始执行所述目标业务请求的时刻之间的差值,所述目标业务请求为所述第一业务请求集合或所述第二业务请求集合中的业务请求;
    第二确定单元,用于确定属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述第一存储节点在发生故障期间丢失的业务请求;
    处理单元,用于指示所述第二存储节点向所述第一存储节点发送所述丢失的业务请求。
  7. 根据权利要求6所述装置,其特征在于,所述第一确定单元具体用于:
    分别将所述第一业务请求集合和所述第二业务请求集合中的业务请求按照业务请求的键进行排序;
    根据排序的结果比对所述第一业务请求集合和所述第二业务请求集合中的业务请求,得到属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述丢失的业务请求。
  8. 根据权利要求6所述的装置,其特征在于,所述第一确定单元具体用于:
    根据所述第一业务请求集合中每个业务请求的键,确定所述第一业务请求集合的标志位图;
    根据所述第二业务请求集合中每个业务请求的键,确定所述第二业务请求集合的标志位图;
    比对所述第一业务请求集合对应的标志位和所述第二业务请求集合对应的标志位,得到属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述丢失的业务请求。
  9. 根据权利要求6所述的装置,其特征在于,所述第一确定单元具体用于:
    根据布鲁姆过滤器bloom filter算法和所述第一业务请求集合中每个业务请求的键,确定所述第一业务请求集合的位图;
    根据所述bloom filter算法和所述第二业务请求集合中每个业务请求的键,确定所述第二业务请求集合的位图;
    对比所述第一业务请求集合的位图和所述第二业务请求集合的位图,确定属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述丢失的业务请求。
  10. 根据权利要求6至9中任一项所述的装置,其特征在于,所述第一顺序与所述第二顺序不同。
  11. 一种用于存储节点同步业务请求的装置,其特征在于,所述装置位于包括第一存储节点和第二存储节点的存储***中,所述第一存储节点用于按照第一顺序执行多个业务请求并存储第一日志,所述第一日志用于记录所述多个业务请求中所述第一存储节点已执行的每个业务请求以及所述第一存储节点已执行的每个业务请求的开始执行时刻,所述第二存储节点用于按照第二顺序执行所述多个业务请求并存储第二日志,所述第二日志用于记录所述多个业务请求中所述第二存储节点已执行的每个业务请求以及所述第二存储节点已执行的每个业务请求的开始执行时刻,所述装置包括:存储器和处理器,
    所述存储器用于存储所述第一日志和所述第二日志,
    所述处理器用于:
    当所述第一存储节点在执行所述多个业务请求的t1至t2内发生故障时,确定第一业务请求集合和第二业务请求集合,所述第一业务请求集合为所述第一日志中记录的开始执行时刻在t1-2dt至t2+2dt内的业务请求的集合,所述第二业务请求集合为所述第二日志中记录的开始执行时刻在t1-dt至t2+dt内的业务请求的集合,所述dt大于或等于所述第一存储节点开始执行目标业务请求的时刻与所述第二存储节点开始执行所述目标业务请求的时刻之间的差值,所述目标业务请求为所述第一业务请求集合或所述第二业务请求集合中的业务请求;
    确定属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述第一存储节点在发生故障期间丢失的业务请求;
    指示所述第二存储节点向所述第一存储节点发送所述丢失的业务请求。
  12. 根据权利要求11所述装置,其特征在于,所述处理器具体用于:
    分别将所述第一业务请求集合和所述第二业务请求集合中的业务请求 按照业务请求的键进行排序;
    根据排序的结果比对所述第一业务请求集合和所述第二业务请求集合中的业务请求,得到属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述丢失的业务请求。
  13. 根据权利要求11所述的装置,其特征在于,所述处理器具体用于:
    根据所述第一业务请求集合中每个业务请求的键,确定所述第一业务请求集合的标志位图;
    根据所述第二业务请求集合中每个业务请求的键,确定所述第二业务请求集合的标志位图;
    比对所述第一业务请求集合对应的标志位图和所述第二业务请求集合对应的标志位图,得到属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述丢失的业务请求。
  14. 根据权利要求11所述的装置,其特征在于,所述处理器具体用于:
    根据布鲁姆过滤器bloom filter算法和所述第一业务请求集合中每个业务请求的键,确定所述第一业务请求集合的位图;
    根据所述bloom filter算法和所述第二业务请求集合中每个业务请求的键,确定所述第二业务请求集合的位图;
    对比所述第一业务请求集合的位图和所述第二业务请求集合的位图,确定属于所述第二业务请求集合且不属于所述第一业务请求集合的业务请求为所述丢失的业务请求。
  15. 根据权利要求11至14中任一项所述的装置,其特征在于,所述第一顺序与所述第二顺序不同。
PCT/CN2015/097431 2015-12-15 2015-12-15 用于存储节点同步业务请求的方法和装置 WO2017101016A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2015/097431 WO2017101016A1 (zh) 2015-12-15 2015-12-15 用于存储节点同步业务请求的方法和装置
CN201580002564.1A CN107710165B (zh) 2015-12-15 2015-12-15 用于存储节点同步业务请求的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/097431 WO2017101016A1 (zh) 2015-12-15 2015-12-15 用于存储节点同步业务请求的方法和装置

Publications (1)

Publication Number Publication Date
WO2017101016A1 true WO2017101016A1 (zh) 2017-06-22

Family

ID=59055361

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/097431 WO2017101016A1 (zh) 2015-12-15 2015-12-15 用于存储节点同步业务请求的方法和装置

Country Status (2)

Country Link
CN (1) CN107710165B (zh)
WO (1) WO2017101016A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352763B (zh) * 2020-03-11 2023-10-31 Oppo(重庆)智能科技有限公司 信息处理方法及相关产品
CN112181701A (zh) * 2020-09-23 2021-01-05 中国建设银行股份有限公司 一种定位异常业务请求的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1728099A (zh) * 2004-06-18 2006-02-01 微软公司 分布式容错计算***中复制装置的有效改变
CN102693324A (zh) * 2012-01-09 2012-09-26 西安电子科技大学 一种分布式数据库同步***、同步方法和节点管理方法
CN103064759A (zh) * 2012-12-18 2013-04-24 华为技术有限公司 数据修复的方法及装置
US20140325256A1 (en) * 2013-04-25 2014-10-30 Netapp, Inc. Systems and methods for managing disaster recovery in a storage system
CN105095013A (zh) * 2015-06-04 2015-11-25 华为技术有限公司 数据存储方法、恢复方法、相关装置以及***

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079896B (zh) * 2007-06-22 2010-05-19 西安交通大学 一种构建并行存储***多可用性机制并存架构的方法
CN102882699B (zh) * 2011-07-14 2015-07-29 华为技术有限公司 边缘节点的分配方法和装置及边缘节点控制器
CN103198159B (zh) * 2013-04-27 2016-01-06 国家计算机网络与信息安全管理中心 一种基于事务重做的异构集群多副本一致性维护方法
KR101662212B1 (ko) * 2014-05-30 2016-10-04 주식회사 알티베이스 부분동기화 지원 데이터베이스 관리 시스템 및 데이터베이스 관리 시스템에서 부분동기화 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1728099A (zh) * 2004-06-18 2006-02-01 微软公司 分布式容错计算***中复制装置的有效改变
CN102693324A (zh) * 2012-01-09 2012-09-26 西安电子科技大学 一种分布式数据库同步***、同步方法和节点管理方法
CN103064759A (zh) * 2012-12-18 2013-04-24 华为技术有限公司 数据修复的方法及装置
US20140325256A1 (en) * 2013-04-25 2014-10-30 Netapp, Inc. Systems and methods for managing disaster recovery in a storage system
CN105095013A (zh) * 2015-06-04 2015-11-25 华为技术有限公司 数据存储方法、恢复方法、相关装置以及***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHAI, MENGZHU.: "Design and Implementation of Fault Tolerant Mechanism of Lock Server Based on Distributed System", JOURNAL OF NANCHANG COLLEGE OF EDUCATION, vol. 28, no. 10, 31 October 2013 (2013-10-31) *
FAN, JIE ET AL.: "Research on the Technology of Byzantine System", JOURNAL OF SOFTWARE, vol. 24, no. 6, 30 June 2013 (2013-06-30) *

Also Published As

Publication number Publication date
CN107710165B (zh) 2020-01-03
CN107710165A (zh) 2018-02-16

Similar Documents

Publication Publication Date Title
US10298436B2 (en) Arbitration processing method after cluster brain split, quorum storage apparatus, and system
US10387255B2 (en) Data reconstruction method in distributed storage system, apparatus, and system
US10713134B2 (en) Distributed storage and replication system and method
TWI751402B (zh) 一種資料同步方法、分散式系統、電腦可讀取儲取媒體、電腦設備及分散式設備
WO2016192408A1 (zh) 集群***中节点的故障检测方法和装置
US20200099604A1 (en) Method and device for fingerprint based status detection in a distributed processing system
US10963353B2 (en) Systems and methods for cross-regional back up of distributed databases on a cloud service
US20210320977A1 (en) Method and apparatus for implementing data consistency, server, and terminal
CN110633168A (zh) 一种分布式存储***的数据备份方法和***
WO2019057081A1 (zh) 数据存储方法、数据查询方法、计算机设备及存储介质
US20190386875A1 (en) Methods for managing storage virtual machine configuration changes in a distributed storage system and devices thereof
US20210326211A1 (en) Data backup method, apparatus, and system
CN105760271A (zh) 一种集群模式下计算节点可信状态监控的方法
WO2017101016A1 (zh) 用于存储节点同步业务请求的方法和装置
CN113190620B (zh) Redis集群之间数据的同步方法、装置、设备及存储介质
WO2016101409A1 (zh) 数据倒换的方法、设备及***
WO2017092539A1 (zh) 虚拟机修复方法、虚拟机装置、***及业务功能网元
WO2017080362A1 (zh) 数据管理方法及装置
US10735248B2 (en) Cloudified N-way routing protection at hyper scale
WO2013189409A2 (zh) 一种业务容灾的方法及***
US12007850B2 (en) Method and system for generating backup of a large file and optimizing resource utilization
CN117555493B (zh) 数据处理方法、***、装置、存储介质及电子设备
CN117499390A (zh) 文件传输方法、装置和计算机设备
CN113535463A (zh) 一种数据恢复的方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15910489

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15910489

Country of ref document: EP

Kind code of ref document: A1