CN111208949B - 一种确定分布式存储系统中的数据回滚时段的方法 - Google Patents
一种确定分布式存储系统中的数据回滚时段的方法 Download PDFInfo
- Publication number
- CN111208949B CN111208949B CN202010031344.4A CN202010031344A CN111208949B CN 111208949 B CN111208949 B CN 111208949B CN 202010031344 A CN202010031344 A CN 202010031344A CN 111208949 B CN111208949 B CN 111208949B
- Authority
- CN
- China
- Prior art keywords
- monitoring
- time
- node
- data
- records
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
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)
- Computer Security & Cryptography (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及数据处理领域,涉及一种确定分布式存储系统中的数据回滚时段的方法、装置、机器可读介质和系统,方法包括:周期性地监控系统的持久化操作并生成监控记录,系统包括多个节点,监控记录包括系统中执行持久化操作的主节点的节点名、持久化操作的完成时间和主节点的当选时间,当选时间用于记录节点当选主节点的时间;比较监控时间上相邻的两条监控记录中的节点名;获取相邻的两条监控记录中监控时间较晚的监控记录中的监控时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段或者当选时间和持久化操作的完成时间之间的时间段,作为数据回滚时段。本方法能够准确地得出数据丢失的时间段。
Description
技术领域
本申请涉及数据处理领域,特别涉及一种确定分布式存储系统中的数据回滚时段的方法、装置、机器可读介质和系统。
背景技术
随着云计算、大数据的快速发展,数据呈现爆炸式增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,已经无法满足信息爆炸时代指数倍增长的数据的存储需求,分布式存储系统由此产生。
分布式存储系统为基于客户端/服务器模式的存储系统管理的物理存储资源,通过计算机网络与节点相连,可以有效解决数据的存储和管理难题。将固定于某个地点的某个存储系统,扩展到任意多各地点/多个存储系统,众多的节点组成一个存储系统网络。每个节点可以分布在不同地点,通过网络进行节点间的通信和数据传输。用户在使用分布式存储系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点获取的,只需要像使用本地文件系统一样管理和存储系统中的数据。
但是,分布式存储系统在发生数据回滚时,一般只是将丢失的数据做一份备份,以及触发告警,等待人工处理。但是人工处理很难及时响应,并且不容易确定数据丢失的准确时间段。
发明内容
本申请实施例提供了一种确定分布式存储系统中的数据回滚时段的方法,包括:
周期性地监控系统的持久化操作并生成监控记录,系统包括多个节点,监控记录包括系统中执行持久化操作的主节点的节点名、持久化操作的完成时间和主节点的当选时间,当选时间用于记录节点当选主节点的时间;
比较监控时间上相邻的两条监控记录中的节点名;
在相邻的两条监控记录中的节点名不同的情况下,获取相邻的两条监控记录中监控时间较晚的监控记录中的监控时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段;
在相邻的两条监控记录中的节点名相同且监控记录的当选时间不相同的情况下,获取相邻的两条监控记录中监控时间较晚的监控记录中的当选时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段。
可选地,
持久化操作的完成时间为系统中的各个节点的持久化操作的完成时间中的最小值。
可选地,
持久化操作的完成时间为系统中的各个节点的持久化操作的完成时间中的中位数。
可选地,
多个节点包括一个主节点和至少一个从节点,并且在主节点故障的情况下,从节点中的一个转换为新的主节点。
可选地,还包括:
在主节点故障的情况下,从从节点中选择持久化操作的完成时间最大的从节点作为新的主节点。
可选地,还包括:
基于可调节的时间阈值周期性地监控系统的持久化操作,时间阈值的间隔被配置为以分或者以秒为单位中的一种。
本申请实施例还提供了一种确定分布式存储系统中的数据回滚时段的装置,包括:
监控模块,监控模块用于周期性地监控系统的持久化操作并生成监控记录,系统包括多个节点,监控记录包括系统中执行持久化操作的主节点的节点名、持久化操作的完成时间和监控时间和所述主节点的当选时间,所述当选时间用于记录所述节点当选所述主节点的时间;
比较模块,比较模块用于比较监控时间上相邻的两条监控记录中的节点名;
获取模块,获取模块用于,在相邻的两条监控记录中的节点名不同的情况下,获取相邻的两条监控记录中监控时间较晚的监控记录中的监控时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段;
获取模块还用于,在相邻的两条监控记录中的节点名相同且监控记录的当选时间不相同的情况下,获取相邻的两条监控记录中监控时间较晚的监控记录中的当选时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段。
可选地,还包括:
配置模块,配置模块用于配置持久化操作的完成时间为系统中的各个节点的持久化操作的完成时间中的最小值。
可选地,
配置模块还用于配置持久化操作的完成时间为系统中的各个节点的持久化操作的完成时间中的中位数。
可选地,
配置模块还用于配置多个节点为一个主节点和至少一个从节点,并且在主节点故障的情况下,从节点中的一个转换为新的主节点。
可选地,
配置模块还用于在主节点故障的情况下,从从节点中选择持久化操作的完成时间最大的从节点作为新的主节点。
可选地,
配置模块还用于配置基于可调节的时间阈值周期性地监控系统的持久化操作,时间阈值的间隔被配置为以分或者以秒为单位中的一种。
本申请还提供了一种机器可读介质,机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述确定分布式存储系统中的数据回滚时段的方法。
本申请实施例还提供了一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行上述的确定分布式存储系统中的数据回滚时段的方法。
本发明还提供一种确定分布式存储系统中的数据回滚时段的方法,装置,机器可读介质和系统,无需人工介入,可以自动发现数据回滚情况,并且准确地得出数据丢失的时间段。这对于进一步的数据丢失处理非常有用。
附图说明
图1根据本申请的一些实施例,示出了一种确定分布式存储系统中的数据回滚时段的方法的流程示意图。
图2根据本申请的一些实施例,示出了一种确定分布式存储系统中的数据回滚时段的方法的结构示意图。
图3根据本申请的一些实施例,示出了一种确定分布式存储系统中的数据回滚时段的方法的结构示意图。
图4根据本申请的一些实施例,示出了一种确定分布式存储系统中的数据回滚时段的装置的结构示意图。
图5根据本申请的一些实施例,示出了一种系统的框图。
图6根据本申请一些实施例,示出了一种片上系统(SoC)的框图。
具体实施方式
可以理解,如本文所使用的,术语“模块”可以指代或者包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。
可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。
下面将结合附图对本申请的实施例作进一步地详细描述。
本发明的实施例中使用了持久化机制,该机制是将数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是将瞬时数据,如缓存数据,持久化为持久数据。基于持久化机制所得到的持久数据可被永久保存的存储设备中,即使存储设备宕机,只要该持久数据未被损坏,该持久数据都不会丢失。
根据本申请的一些实施例公开了一种确定分布式存储系统中的数据回滚时段的方法、装置、机器可读介质和系统。
本发明的实施例所指出的节点是用于将输出数据进行持久化。例如,假设a节点是执行数据持久化的节点,那么在a节点执行完毕后,可以将该a点的数据进行持久化。通常,持久化数据可以保存在内存中,然后持久化至存储介质,也可以直接保存在文件系统中。
节点基于持久化机制将缓存数据持久化为持久数据的具体方式是多种多样的,可以是将节点中针对缓存数据的写操作记录到持久化文件中。上述写操作包括数据的增加操作、删除操作以及修改操作。
首先参考图1,图1示出了方法的流程图。在下文中,将详细描述根据本发明的实施例的该方法包括:
101:周期性地监控系统的持久化操作并生成监控记录,系统包括多个节点,监控记录包括系统中执行持久化操作的主节点的节点名、持久化操作的完成时间和监控时间;
这里的系统可以但不限于预先设置一定时器或者定时阈值(时间阈值),该定时器能够定时启动一监控程序/监控任务获取并保存至少一个节点的信息。该监控程序/监控任务能够通过访问上述节点的访问接口与该节点通信,获取保存于该节点的信息。该监控程序/监控任务能够是一个循环执行的程序,基于上述定时阈值的间隔,定时获取并保存至少一个节点的信息,这里的定时器或者定时阈值的间隔可以配置为分或者秒为单位的,也就是说可以以分或者秒的间隔定时启动一监控程序/监控任务。
具体地,通过监控终端执行的监控程序/监控任务监听节点的通信端口,获得该节点的监控信息(节点的信息)。监控终端与节点间通信的实现方式采用但不限于一般的消息中间件即可,通过监听通信端口即可获得节点的监控信息(节点的信息)。监控终端执行的监控程序/监控任务的方式,包括但不限于预先设置一定时器或者定时阈值,该定时器能够定时启动一监控程序/监控任务获取至少一个节点的信息。该监控程序/监控任务能够通过访问上述节点的访问接口与该节点通信,获取保存于该节点的信息。该监控程序能够是一个循环执行的程序,基于上述定时阈值的间隔,定时获取并保存至少一个节点的信息。
其中,该节点的信息可以包括但不限于,节点的名称,ip地址,主节点信息,从节点信息,持久化操作的完成时间。
这里的系统中的节点可以被配置为包括至少一个主节点以及与主节点相对应的至少一个从节点,主节点可以但不限于,将一个大的数据持久化任务分为多个小的数据持久化任务并分发给至少一个从节点,各个节点记录对应的执行数据的持久化操作的完成时间。
同时,监控程序/监控任务记录监控程序/监控任务的执行时间,即监控时间;保存该执行时间与上述节点的信息之间的对应关系为该监控记录。其中,保存的数据包括但不限于具有数据键值对的形式,即保存数据具有key-value的形式,其中,key为数据键,value为数据值,并且数据值可为多种形式的数据,通过数据键值对的形式可方便地对保存的数据进行管理。
102:比较监控时间上相邻的两条监控记录中的节点名;
103:在相邻的两条监控记录中的节点名不同的情况下,获取相邻的两条监控记录中监控时间较晚的监控记录中的监控时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段。
接着,比较相邻的两条监控记录,例如,这两条监控记录可以是第一监控记录和第二监控记录,第二监控记录的监控时间晚于第一监控记录的监控时间,当该第一监控记录和该第二监控记录包含的该节点名不相同时,获取该第二监控记录包含的该监控时间与该第一监控记录包含的该节点的持久化操作的完成时间的差值,即,邻的两条监控记录中监控时间较晚的监控记录中的监控时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段。
具体地,如图2所述,上述监控记录中记录有节点集群中当前主节点的信息,通过比较相邻的两条监控记录,在某一时刻,主节点中出现故障,则从节点基于节点集群恢复机制,接替该主节点的任务继续执行持久化数据的操作。此时,相邻的两条监控记录中的节点信息将不相同,相邻的两条监控记录中后一条监控记录(第二监控记录)中保存的监控时间,监控时间晚于第一监控记录的监控时间,可以作为数据处理系统发现主节点中出现故障的时间点,同时相邻的两条监控记录中前一条监控记录(第一监控记录) 中保存的节点信息的持久化操作的完成时间,可以作为主节点出现故障的起始时间点,将主节点出现故障的起始时间点与发现主节点中出现故障的时间点做差值计算,这两个时间点之间的时间段,确认为该节点集群数据中数据回滚的数据回滚时段。于该差值 (数据回滚时段)的范围内,回滚该第一监控记录包含的该节点信息对应的该节点的数据。当主节点出现故障,到从节点接任主节点,系统发现主节点变化的时间段内,该节点集群中已持久化的数据需要进行回滚操作,通过将主节点出现故障的起始时间点与发现主节点中出现故障的时间点做差值计算,来确定进行回滚操作的数据回滚时段。
在相邻的两条监控记录中的节点名相同且监控记录的当选时间不相同的情况下,获取相邻的两条监控记录中当选时间之间的时间段,作为数据回滚时段。
具体地,如图3所述,上述监控记录中记录有节点集群中当前主节点的信息,在某一时刻,主节点中出现故障,则一个从节点接替该主节点的任务继续执行持久化数据的操作,之后前任的主节点修复完毕而从节点发生故障,前任的主节点再次接替主节点的身份继续执行持久化数据的操作。此时,监控程序监控并生成了这两个节点的相邻的两条监控记录,对于这相邻的两条监控记录来说,会出现如下的场景:相邻的两条监控记录包含的节点名相同,但是,相邻的两条监控记录中的后一条监控记录(第二监控记录),监控时间晚于前一条监控记录(第一监控记录)的监控时间,第二监控记录中保存的当选时间,可以作为数据处理系统发现主节点中出现故障的结束时间点,第一监控记录的中保存的持久化操作的完成时间,可以作为主节点出现故障的起始时间点,将这两条记录中的当选时间做差值计算,这两个时间点之间的时间段,确认为该节点集群数据中数据回滚的数据回滚时段。于该差值(数据回滚时段)的范围内,回滚该第一监控记录包含的该节点信息对应的该节点的数据。
本发明的实施例中,定时获取主节点的信息以及主节点和与主节点相对应的从节点记录的该节点的持久化操作的完成时间;获取主节点相对应的该从节点的持久化操作的完成时间中的最小值;存储该主节点的信息以及该最小值之间的对应关系。其中,保存的数据包括但不限于具有数据键值对的形式,即保存数据具有key-value的形式,其中, key为数据键,value为数据值,并且数据值可为多种形式的数据,通过数据键值对的形式可方便地对保存的数据进行管理。
接着,多个节点包括一个主节点和至少一个从节点,在主节点故障的情况下,从与该主节点相对应的该从节点中选择持久化操作的完成时间为最大的该从节点作为继任主节点/新的主节点;根据本申请的一些实施例,持久化操作的完成时间为系统中的各个节点的持久化操作的完成时间中的中位数。
具体地,获取与该主节点相对应的从节点的持久化操作的完成时间的中位数,包括:主节点和从节点中均执行持久化数据的操作,在某一时刻,主节点出现故障,则选择与该主节点对应的持久化操作的完成时间的值最大的从节点,接替该主节点的任务继续执行持久化数据的操作。该新的主节点的节点信息中包含持久化操作的完成时间设置为与出现故障的主节点对应的全部从节点的持久化操作的完成时间的中位数。
接着,同时,存储该继任主节点的信息以及该中位数之间的对应关系包括,上述维护程序能够定时获取并保存至少一个新的主节点的节点信息与完成数据持久化时间的中位数之间的对应关系。
通常,主节点和从节点中均执行持久化数据的操作,在某一时刻,主节点中出现故障,则从节点基于节点集群恢复机制,接替该主节点的任务继续执行持久化数据的操作。再如,从节点出现故障后,新建一个节点来代替该出现故障的从节点,然后新建的节点将代替该出现故障的从节点,完成执行持久化数据的操作。
通常,上述提到的节点集群恢复机制,是节点集群系统中的主节点与其对应的从节点之间建立的一种机制,该机制使得主节点与其对应的从节点之间建立起恢复接管关系,可以保证并发持久化节点集群处理的数据,从节点包括但不限于根据主节点的更新操作同步本地数据或者更新与主节点不相同的数据,能够保证主节点和从节点之间更新相同的数据或者并发更新不同的数据;另外,当新建或者重启主节点时,从节点可以接替主节点处理下一步的持久化数据的操作。
通常,监控系统可以作为控制主节点和从节点的设备,其可以对主节点和从节点是否出现故障的状态进行实时监测,监控系统对于节点出现故障的实时监测所采用技术可以参照现有技术,本发明实施例在此不再详细介绍。
通常,在节点集群中,所有的节点之间可以存在信息交互,所有的节点可以知晓节点集群中除自身外所存在的节点。所有节点集群中的每个节点中包括但不限于携带有节点配置文件,该节点配置文件中包含有节点库集群中每个节点的IP地址(Internet ProtocolAddress,互联网协议地址),以及用以标识每个节点的标识信息,即上述通用唯一识别码UUID。
本发明的实施例中,当该主节点出现故障时,从与该主节点相对应的该从节点中选择一个未故障的该从节点作为继任主节点;获取与该主节点相对应的该从节点记录的该节点的持久化操作的完成时间;获取该从节点的持久化操作的完成时间中的最小值。
接着,获取与该主节点相对应的该从节点记录的该节点的持久化操作的完成时间;获取该从节点的持久化操作的完成时间中的最小值,包括:主节点和从节点中均执行持久化数据的操作,在某一时刻,主节点出现故障,则选择与该主节点对应的持久化操作的完成时间的值最小的从节点,接替该主节点的任务继续执行持久化数据的操作。该新的主节点的节点信息中包含持久化操作的完成时间设置为该持久化操作的完成时间的最小值。
接着,同时,存储该继任主节点的信息以及该最小值之间的对应关系,上述维护程序能够定时获取并保存至少一个新的主节点的节点信息与完成数据持久化时间的最小值之间的对应关系。
本发明的方法还适用于主节点和与该主节点对应的从节点均出现故障的情况,可以是主节点和从节点同时出现故障;也可以是主节点在先出现故障后,新的用以替代原主节点的从节点完成数据同步之前,该从节点再次出现故障,可以理解,此情况下,主节点和与该主节点对应的从节点均出现故障,还可以是从节点在先出现故障,新的从节点完成数据同步之前,主节点出现故障,同样的,此情况下,主节点和与该主节点对应的从节点均出现故障。
基于上面的描述,下面具体介绍确定分布式存储系统中的数据回滚时段的装置中各模块的主要工作流程。
根据本申请的一些实施例,结合上述方法中对确定分布式存储系统中的数据回滚时段的方法的描述,本装置中描述的技术细节在此依然适用,为了避免重复,有些在此次不再赘述。如图4所示,具体地,包括:
监控模块201,监控模块201用于周期性地监控系统的持久化操作并生成监控记录,系统包括多个节点,监控记录包括系统中执行持久化操作的主节点的节点名、持久化操作的完成时间和监控时间。
具体地,监控模块201用于启动预设的定时监控任务,监控任务依据预设的时间间隔监控系统的持久化操作并生成监控记录,即监控模块201通过监控终端执行的监控程序/监控任务监听节点的通信端口,获得该节点的监控信息(节点的信息)。监控终端与节点间通信的实现方式采用但不限于一般的消息中间件即可,通过监听通信端口即可获得节点的监控信息(节点的信息)。监控终端执行的监控程序/监控任务的方式,包括但不限于预先设置一定时器或者时间间隔的阈值,该定时器能够定时启动一监控程序/监控任务基于时间间隔的阈值获取至少一个节点的信息。该监控程序/监控任务能够通过访问上述节点的访问接口与该节点通信,获取保存于该节点的信息。该监控程序能够是一个循环执行的程序,基于上述定时阈值的间隔,定时获取并保存至少一个节点的信息,同时,监控程序/监控任务记录监控程序/监控任务的执行时间,即监控时间;保存该执行时间与上述节点的信息之间的对应关系为该监控记录。
其中,该节点的信息可以包括但不限于,节点的名称,ip地址,主节点信息,从节点信息,持久化操作的完成时间。
比较模块202,比较模块202用于比较监控时间上相邻的两条监控记录中的节点名。
获取模块203,获取模块203用于,在相邻的两条监控记录中的节点名不同的情况下,获取相邻的两条监控记录中监控时间较晚的监控记录中的监控时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段。
接着,比较模块202比较相邻的两条监控记录,例如,这两条监控记录可以是第一监控记录和第二监控记录,第二监控记录的监控时间晚于第一监控记录的监控时间,当该第一监控记录和该第二监控记录包含的该节点名不相同时,获取模块203获取该第二监控记录包含的该监控时间与该第一监控记录包含的该节点的持久化操作的完成时间的差值,即,邻的两条监控记录中监控时间较晚的监控记录中的监控时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段。
具体地,上述监控记录中记录有节点集群中当前主节点的信息,比较模块202通过比较相邻的两条监控记录,在某一时刻,主节点中出现故障,则从节点基于节点集群恢复机制,接替该主节点的任务继续执行持久化数据的操作。此时,相邻的两条监控记录包含的的节点信息相同名相同,但是,相邻的两条监控记录中的后一条监控记录(第二监控记录),监控时间晚于前一条监控记录(第一监控记录)的监控时间,第二监控记录中保存的当选时间,可以作为数据处理系统发现主节点中出现故障的结束时间点,第一监控记录的同时相邻的两条监控记录中前一条监控记录(第一监控记录)中保存的持久化操作的完成时间当选时间,可以作为主节点出现故障的起始时间点,获取模块203,将主节点出现故障的起始时间点与发现主节点中出现故障的时间点做差值计算,这两个时间点之间的时间段,确认为该节点集群数据中数据回滚的数据回滚时段。于该差值(数据回滚时段)的范围内,回滚该第一监控记录包含的该节点信息对应的该节点的数据。当主节点出现故障,到从节点接任主节点,系统发现主节点变化的时间段内,该节点集群中已持久化的数据需要进行回滚操作,通过将主节点出现故障的起始时间点与发现主节点中出现故障的时间点做差值计算,来确定进行回滚操作的数据回滚时段。
获取模块还用于,在相邻的两条监控记录中的节点名相同且监控记录的当选时间不相同的情况下,获取相邻的两条监控记录中当选时间之间的时间段,作为数据回滚时段。
具体地,上述监控记录中记录有节点集群中当前主节点的信息,在某一时刻,主节点中出现故障,则从节点接替该主节点的任务继续执行持久化数据的操作,之后前任的主节点修复完毕而从节点发生故障,前任的主节点再次接替主节点的身份继续执行持久化数据的操作。此时,相邻的两条监控记录中的节点信息相同,相邻的两条监控记录中后一条监控记录(第二监控记录,监控时间晚于第一监控记录的监控时间)中保存的当选时间,可以作为数据处理系统发现主节点中出现故障的时间点,同时相邻的两条监控记录中前一条监控记录(第一监控记录)中保存的当选时间,可以作为主节点出现故障的起始时间点,获取模块将这两条记录中的当选时间做差值计算,这两个时间点之间的时间段,确认为该节点集群数据中数据回滚的数据回滚时段。于该差值(数据回滚时段) 的范围内,回滚该第一监控记录包含的该节点信息对应的该节点的数据。
配置模块204还可以将系统中的节点配置多个节点包括一个主节点和至少一个从节点,并且在主节点故障的情况下,从节点中的一个转换为新的主节点。主节点可以但不限于,将一个大的数据持久化任务分为多个小的数据持久化任务并分发给至少一个从节点,各个节点记录对应的执行数据的持久化操作的完成时间。
配置模块204用于在主节点故障的情况下,从从节点中选择持久化操作的完成时间最大的从节点作为新的主节点。
配置模块204还用于配置持久化操作的完成时间为系统中的各个节点的持久化操作的完成时间中的最小值。
具体地,配置模块204定时获取主节点的信息以及主节点和与主节点相对应的从节点记录的该节点的持久化操作的完成时间;获取主节点相对应的该从节点的持久化操作的完成时间中的最小值;存储该主节点的信息以及该最小值之间的对应关系。
配置模块204用于配置持久化操作的完成时间为系统中的各个节点的持久化操作的完成时间中的中位数。
具体地,配置模块204获取与该主节点相对应的从节点的持久化操作的完成时间的中位数,包括:主节点和从节点中均执行持久化数据的操作,在某一时刻,主节点出现故障,则选择与该主节点对应的持久化操作的完成时间的值最大的从节点,接替该主节点的任务继续执行持久化数据的操作。该新的主节点的节点信息中包含持久化操作的完成时间设置为与出现故障的主节点对应的全部从节点的持久化操作的完成时间的中位数。
配置模块还基于可调节的时间阈值周期性地监控系统的持久化操作,时间阈值的间隔被配置为以分或者以秒为单位中的一种。这里的配置模块可以但不限于预先设置一定时器或者定时阈值(时间阈值),该定时器能够定时启动一监控程序/监控任务获取并保存至少一个节点的信息。
本申请还提供了一种机器可读介质,机器可读介质上存储有指令,该指令在机器上执行时使机器执行一种确定分布式存储系统中的数据回滚时段的方法,包括,周期性地监控系统的持久化操作并生成监控记录,系统包括多个节点,监控记录包括系统中执行持久化操作的主节点的节点名、持久化操作的完成时间和监控时间;比较监控时间上相邻的两条监控记录中的节点名;在相邻的两条监控记录中的节点名不同的情况下,获取相邻的两条监控记录中监控时间较晚的监控记录中的监控时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段。
本申请实施例还提供了一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行一种确定分布式存储系统中的数据回滚时段的方法,包括,周期性地监控系统的持久化操作并生成监控记录,系统包括多个节点,监控记录包括系统中执行持久化操作的主节点的节点名、持久化操作的完成时间和监控时间;比较监控时间上相邻的两条监控记录中的节点名;在相邻的两条监控记录中的节点名不同的情况下,获取相邻的两条监控记录中监控时间较晚的监控记录中的监控时间和监控时间较早的监控记录中的持久化操作的完成时间之间的时间段,作为数据回滚时段。
本申请还提供了一种机器可读介质,机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述确定分布式存储系统中的数据回滚时段的方法。
本申请实施例还提供了一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行上述的确定分布式存储系统中的数据回滚时段的方法。
现在参考图5,所示为根据本申请的一个实施例的系统500的框图。图5示意性地示出了根据多个实施例的示例系统500。在一个实施例中,系统500可以包括一个或多个处理器504,与处理器504中的至少一个连接的系统控制逻辑508,与系统控制逻辑508连接的系统内存512,与系统控制逻辑508连接的非易失性存储器(NVM)516,以及与系统控制逻辑508连接的网络接口520。
在一些实施例中,处理器504可以包括一个或多个单核或多核处理器。在一些实施例中,处理器504可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在系统500采用eNB(Evolved Node B,增强型基站)101或 RAN(Radio Access Network,无线接入网)控制器102的实施例中,处理器504可以被配置为执行各种符合的实施例,例如,如图1所示的实施例中的一个或多个。
在一些实施例中,系统控制逻辑508可以包括任意合适的接口控制器,以向处理器504中的至少一个和/或与系统控制逻辑508通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,系统控制逻辑508可以包括一个或多个存储器控制器,以提供连接到系统内存512的接口。系统内存512可以用于加载以及存储数据和/或指令。在一些实施例中系统500的内存512可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。
NVM/存储器516可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器516可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘) 驱动器中的至少一个。
NVM/存储器516可以包括安装系统500的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口520通过网络访问NVM/ 存储516。
特别地,系统内存512和NVM/存储器516可以分别包括:指令524的暂时副本和永久副本。指令524可以包括:由处理器504中的至少一个执行时导致系统500实施如图1 所示方法的指令。在一些实施例中,指令524、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑508,网络接口520和/或处理器504中。
网络接口520可以包括收发器,用于为系统500提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口520可以集成于系统500的其他组件。例如,网络接口520可以集成于处理器504 的,系统内存512,NVM/存储器516,和具有指令的固件设备(未示出)中的至少一种,当处理器504中的至少一个执行所述指令时,系统500实现如图1所示的方法。
网络接口520可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口520可以是网络适配器,无线网络适配器,电话调制解调器和/ 或无线调制解调器。
在一个实施例中,处理器504中的至少一个可以与用于系统控制逻辑508的一个或多个控制器的逻辑封装在一起,以形成系统封装(SiP)。在一个实施例中,处理器504中的至少一个可以与用于系统控制逻辑508的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(SoC)。
系统500可以进一步包括:输入/输出(I/O)设备532。I/O设备532可以包括用户界面,使得用户能够与系统500进行交互;外围组件接口的设计使得外围组件也能够与系统500交互。在一些实施例中,系统500还包括传感器,用于确定与系统500相关的环境条件和位置信息的至少一种。
在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。
在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
在一些实施例中,传感器可包括但不限于陀螺仪传感器,加速度计,近程传感器,环境光线传感器和定位单元。定位单元还可以是网络接口520的一部分或与网络接口520交互,以与定位网络的组件(例如,全球定位系统(GPS)卫星)进行通信。
根据本申请的实施例,图6示出了一种SoC(System on Chip,片上系统)600的框图。在图6中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图6中,SoC 600包括:互连单元650,其被耦合至应用处理器615;系统代理单元670;总线控制器单元680;集成存储器控制器单元640;一组或一个或多个协处理器620,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元630;直接存储器存取(DMA)单元660。在一个实施例中,协处理器620包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC 处理器、或嵌入式处理器等等。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器 (EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (9)
1.一种确定分布式存储系统中的数据回滚时段的方法,其特征在于,包括:
周期性地通过监控程序监控所述系统的持久化操作并生成监控记录,所述系统包括多个节点,所述监控程序通过访问所述节点的访问接口与所述节点通信,所述监控记录包括所述系统中执行持久化操作的主节点的节点名、所述持久化操作的完成时间、监控时间和所述主节点的当选时间,所述当选时间用于记录所述节点当选所述主节点的时间;
比较所述监控时间上相邻的两条所述监控记录中的节点名;
在相邻的两条所述监控记录中的节点名不同的情况下,获取相邻的两条所述监控记录中所述监控时间较晚的监控记录中的所述监控时间和所述监控时间较早的监控记录中的所述持久化操作的完成时间之间的时间段,作为所述数据回滚时段;
在相邻的两条所述监控记录中的节点名相同且所述监控记录的当选时间不相同的情况下,获取相邻的两条所述监控记录中所述监控时间较晚的监控记录中的当选时间和所述监控时间较早的监控记录中的所述持久化操作的完成时间之间的时间段,作为所述数据回滚时段。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述持久化操作的完成时间为所述系统中的各个所述节点的持久化操作的完成时间中的最小值。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述持久化操作的完成时间为所述系统中的各个所述节点的持久化操作的完成时间中的中位数。
4.根据权利要求1所述的方法,其特征在于,还包括:
所述多个节点包括一个主节点和至少一个从节点,并且在所述主节点故障的情况下,所述从节点中的一个转换为新的主节点。
5.根据权利要求4所述的方法,其特征在于,还包括:
在所述主节点故障的情况下,从所述从节点中选择持久化操作的完成时间最大的所述从节点作为新的主节点。
6.根据权利要求4所述的方法,其特征在于,还包括:
基于可调节的时间阈值周期性地监控所述系统的持久化操作,所述时间阈值的间隔被配置为以分或者以秒为单位中的一种。
7.一种确定分布式存储系统中的数据回滚时段的装置,其特征在于,包括:
监控模块,所述监控模块用于周期性地监控所述系统的持久化操作并生成监控记录,所述系统包括多个节点,所述监控记录包括所述系统中执行持久化操作的主节点的节点名、所述持久化操作的完成时间、监控时间和所述主节点的当选时间,所述当选时间用于记录所述节点当选所述主节点的时间;
比较模块,所述比较模块用于比较所述监控时间上相邻的两条所述监控记录中的节点名;
获取模块,所述获取模块用于,在相邻的两条所述监控记录中的节点名不同的情况下,获取相邻的两条所述监控记录中所述监控时间较晚的监控记录中的所述监控时间和所述监控时间较早的监控记录中的所述持久化操作的完成时间之间的时间段,作为所述数据回滚时段;
所述获取模块还用于,在相邻的两条所述监控记录中的节点名相同且所述监控记录的当选时间不相同的情况下,获取相邻的两条所述监控记录中所述监控时间较晚的监控记录中的当选时间和所述监控时间较早的监控记录中的所述持久化操作的完成时间之间的时间段,作为所述数据回滚时段。
8.一种机器可读介质,其特征在于,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行权利要求1至6中任一项所述的确定分布式存储系统中的数据回滚时段的方法。
9.一种系统,其特征在于,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及处理器,是系统的处理器之一,用于执行权利要求1至6中任一项所述的确定分布式存储系统中的数据回滚时段的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010031344.4A CN111208949B (zh) | 2020-01-13 | 2020-01-13 | 一种确定分布式存储系统中的数据回滚时段的方法 |
PCT/CN2020/095846 WO2021143039A1 (zh) | 2020-01-13 | 2020-06-12 | 一种确定分布式存储系统中的数据回滚时段的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010031344.4A CN111208949B (zh) | 2020-01-13 | 2020-01-13 | 一种确定分布式存储系统中的数据回滚时段的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111208949A CN111208949A (zh) | 2020-05-29 |
CN111208949B true CN111208949B (zh) | 2020-12-25 |
Family
ID=70790094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010031344.4A Active CN111208949B (zh) | 2020-01-13 | 2020-01-13 | 一种确定分布式存储系统中的数据回滚时段的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111208949B (zh) |
WO (1) | WO2021143039A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111208949B (zh) * | 2020-01-13 | 2020-12-25 | 上海依图网络科技有限公司 | 一种确定分布式存储系统中的数据回滚时段的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577717A (zh) * | 2017-08-09 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 一种保障数据一致性的处理方法、装置及服务器 |
CN108984779A (zh) * | 2018-07-25 | 2018-12-11 | 郑州云海信息技术有限公司 | 分布式文件系统快照回滚元数据处理方法、装置及设备 |
WO2019089599A1 (en) * | 2017-10-31 | 2019-05-09 | Ab Initio Technology Llc | Managing a computing cluster using durability level indicators |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462432B (zh) * | 2014-12-15 | 2018-08-10 | 黄静 | 自适应的分布式计算方法 |
CN105468297A (zh) * | 2015-11-18 | 2016-04-06 | 临沂大学 | 一种云存储系统内主从设备数据快速同步的方法 |
US10324637B1 (en) * | 2016-12-13 | 2019-06-18 | EMC IP Holding Company LLC | Dual-splitter for high performance replication |
CN106814972B (zh) * | 2016-12-22 | 2018-04-17 | 北京华云网际科技有限公司 | 分布式块存储的快照节点的回滚方法和装置 |
CN107168642B (zh) * | 2017-03-30 | 2020-05-01 | 北京奇艺世纪科技有限公司 | 一种数据存储方法及系统 |
US10235066B1 (en) * | 2017-04-27 | 2019-03-19 | EMC IP Holding Company LLC | Journal destage relay for online system checkpoint creation |
CN108874552B (zh) * | 2018-06-28 | 2021-09-21 | 杭州云毅网络科技有限公司 | 分布式锁执行方法、装置及系统、应用服务器和存储介质 |
CN111208949B (zh) * | 2020-01-13 | 2020-12-25 | 上海依图网络科技有限公司 | 一种确定分布式存储系统中的数据回滚时段的方法 |
-
2020
- 2020-01-13 CN CN202010031344.4A patent/CN111208949B/zh active Active
- 2020-06-12 WO PCT/CN2020/095846 patent/WO2021143039A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577717A (zh) * | 2017-08-09 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 一种保障数据一致性的处理方法、装置及服务器 |
WO2019089599A1 (en) * | 2017-10-31 | 2019-05-09 | Ab Initio Technology Llc | Managing a computing cluster using durability level indicators |
CN108984779A (zh) * | 2018-07-25 | 2018-12-11 | 郑州云海信息技术有限公司 | 分布式文件系统快照回滚元数据处理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021143039A1 (zh) | 2021-07-22 |
CN111208949A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888889B (zh) | 一种数据信息更新方法、装置及设备 | |
CN107357688B (zh) | 分布式系统及其故障恢复方法和装置 | |
CN108933798B (zh) | 数据存储方法、存储服务器及系统 | |
CN112153133B (zh) | 一种数据共享方法、设备以及介质 | |
CN109561151B (zh) | 数据存储方法、装置、服务器和存储介质 | |
CN115562911B (zh) | 虚拟机数据备份方法及装置、系统、电子设备、存储介质 | |
US11397632B2 (en) | Safely recovering workloads within a finite timeframe from unhealthy cluster nodes | |
CN111880956A (zh) | 一种数据同步方法和装置 | |
CN115150419B (zh) | 一种混合云对象存储的配置和访问方法及系统 | |
CN111342986B (zh) | 分布式节点管理方法及装置、分布式系统、存储介质 | |
CN112052230A (zh) | 多机房数据同步方法、计算设备及存储介质 | |
CN111208949B (zh) | 一种确定分布式存储系统中的数据回滚时段的方法 | |
CN112600690B (zh) | 一种配置数据同步方法、装置、设备及存储介质 | |
US9871863B2 (en) | Managing network attached storage | |
CN113468143A (zh) | 数据迁移方法、系统、计算设备及存储介质 | |
US11930292B2 (en) | Device state monitoring method and apparatus | |
CN111031126B (zh) | 集群缓存共享方法、系统、设备及存储介质 | |
CN110018986B (zh) | 异常快照识别方法及装置 | |
CN114880717A (zh) | 数据归档方法及装置 | |
JP2009271858A (ja) | 計算機システム及びプログラム | |
CN111176886B (zh) | 一种数据库模式的切换方法、装置及电子设备 | |
CN109947727B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111580942A (zh) | 分布式系统定时任务的处理方法、装置及存储介质 | |
CN111880895A (zh) | 基于Kubernetes平台的数据读写方法及装置 | |
CN112818059B (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 |