CN102890679A - 一种数据版本的处理方法及*** - Google Patents

一种数据版本的处理方法及*** Download PDF

Info

Publication number
CN102890679A
CN102890679A CN 201110203404 CN201110203404A CN102890679A CN 102890679 A CN102890679 A CN 102890679A CN 201110203404 CN201110203404 CN 201110203404 CN 201110203404 A CN201110203404 A CN 201110203404A CN 102890679 A CN102890679 A CN 102890679A
Authority
CN
China
Prior art keywords
time
data
balance
module
unfavourable balance
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.)
Granted
Application number
CN 201110203404
Other languages
English (en)
Other versions
CN102890679B (zh
Inventor
余正林
沈蓓洁
常二鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201110203404.7A priority Critical patent/CN102890679B/zh
Publication of CN102890679A publication Critical patent/CN102890679A/zh
Application granted granted Critical
Publication of CN102890679B publication Critical patent/CN102890679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据版本的处理方法,该方法包括:开始恢复数据,读取redolog文件,获取redolog文件中的数据时间及数据文件时间戳;若数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间未超过容忍参数,或者,数据文件时间戳与redolog文件中的数据时间为时间顺差,恢复redolog文件中的数据;若数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间超过容忍参数,拒绝恢复数据。本发明还公开了一种数据版本的处理***,采用本发明所述的方法及***,提高了***更新数据、查询数据、加载数据文件的数据版本的准确性。

Description

一种数据版本的处理方法及***
技术领域
本发明涉及数据存储领域,特别是指一种数据版本的处理方法及***。
背景技术
随着3G网络逐渐成熟,云计算以及物联网的发展,电信***也面临着转型以及更大的挑战。目前电信***更关注高可用性、易扩展性以及海量存储等方面的性能。对高可用性的要求是在基础设施中,存储与服务器并存,一旦服务器发生故障,用户可正常访问存储数据,即要求服务器在发生故障的情况下保证存储***中的数据可用;另外,要求***运行具有很强的容错能力,以保持高可靠性。易扩展性的要求是能够自动或者简单的手动配置增删存储节点,减小***压力,提高***的处理性能,降低风险。海量存储是要求能够快速地结构化数据存储,能够完整地维护海量数据,而且能够快速地查询数据。正是由于电信***对以上三个方面的要求,使得电信***中,数据库的特点也越来越明确,例如,分布式、负载均衡、故障接管以及小表管理等等。
分布式数据库必须具备存储和数据查询等功能,对数据文件中记录的版本处理方法也是多种多样,有版本标签、时间戳等方式。所述记录也可以称之为数据。每一次对数据的处理,对应着数据的一个新的版本,所述处理包括数据更新、删除、增加等。在分布式存储***中,多个存储节点分布在不同的机器上,各个存储节点在处理数据文件中数据的版本时,多是采用时间作为版本号,但由于各个存储节点的时间并不能保证绝对的同步,所以版本号并不十分准确。若普通的数据文件版本号不准确,会导致查询到的数据有误,但是,若元数据的版本号不准确,会严重影响到***功能,可能会导致***无法正常工作。
在分布式存储***中,需要维护海量的数据,以及高强度的数据操作语言(DML)操作,还需要实现负载均衡、故障接管等功能,这都涉及到数据,因此,处理好以时间戳为数据文件记录的版本问题,有非常重要的意义。
发明内容
有鉴于此,本发明的主要目的在于提供一种数据版本的处理方法及***,提高了***更新数据、查询数据、加载数据文件的数据版本的准确性。
为达到上述目的,本发明的技术方案是这样实现的:
一种数据版本的处理方法,包括:开始恢复数据,读取重操作日志redolog文件,获取redolog文件中的数据时间及数据文件时间戳;若数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间未超过容忍参数,或者,数据文件时间戳与redolog文件中的数据时间为时间顺差,恢复redolog文件中的数据;若数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间超过容忍参数,拒绝恢复数据。
所述开始恢复数据之前,该方法进一步包括:被接管节点停止工作,控制节点指派接管节点进行故障接管,接管节点根据被接管节点的节点名称,获取元数据表中与所述被接管节点的节点名称对应的小表的最后更新时间,同自身的当前时间相比,若当前时间与小表的最后更新时间为时间顺差,则正常接管;否则,拒绝接管。
一种数据版本的处理方法,包括:存储节点读取自身的数据文件,获取数据文件时间戳,同当前时间比较,若当前时间与数据文件时间戳为时间顺差,则加载数据文件;若当前时间与数据文件时间戳为时间逆差,且逆差时间超过容忍参数,则拒绝加载数据文件;若当前时间与数据文件时间戳为时间逆差,且逆差时间未超过容忍参数,等待的方式消除逆差,加载数据文件。
一种数据版本的处理方法,包括:控制节点确定要更新的数据对应的存储节点,存储节点获取要更新的数据所属小表的最后更新时间,同当前时间比较,若当前时间与小表的最后更新时间为时间顺差,或者,当前时间与小表的最后更新时间为时间逆差,且逆差时间未超过容忍参数,正常更新数据;若当前时间与小表的最后更新时间为时间逆差,且逆差时间超过容忍参数,则拒绝更新数据。
一种数据版本的处理方法,包括:控制节点创建大表并通知存储节点创建小表;存储节点将自身的当前时间与控制节点中大表的创建时间比较,若时间顺差,则创建小表,若时间逆差,且逆差时间未超过容忍参数,等待的方式消除逆差,创建小表;若时间逆差,且逆差时间超过容忍参数,拒绝创建小表。
一种数据版本的处理***,包括:数据恢复模块以及对比模块;
数据恢复模块,用于读取redolog文件,获取redolog文件中的数据时间及数据文件时间戳,发送给对比模块;若数据文件时间戳与redolog文件中的数据时间为时间顺差,或者,数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间未超过容忍参数,恢复数据;若数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间超过容忍参数,拒绝恢复数据;
对比模块,用于比较数据文件时间戳与redolog文件中的数据时间,确定时间顺差,通知数据恢复模块;确定时间逆差,进一步将逆差时间与容忍参数相比,若超过容忍参数,通知数据恢复模块;未超过容忍参数,通知数据恢复模块。
所述***进一步包括:更新通知模块以及元数据更新模块;
更新通知模块,被接管节点停止工作,用于指派接管节点进行结果,并通知元数据更新模块;
元数据更新模块,用于读取元数据表中,与所述被接管节点名称对应的小表的最后更新时间,发送给对比模块;若当前时间与小表的最后更新时间为时间逆差,拒绝更新元数据表;若当前时间与小表的最后更新时间为时间顺差,更新元数据表;
相应的,对比模块,用于比较小表的最后更新时间与自身所在接管节点的当前时间,若当前时间晚于小表的最后更新时间,则为时间顺差,通知元数据更新模块;否则,为时间逆差,通知元数据更新模块。
一种数据版本的处理***,包括:数据文件加载模块以及对比模块;
数据文件加载模块,用于读取自身所在存储节点对应的数据文件,获取数据文件时间戳,发送给对比模块;若数据文件时间戳与当前时间为时间顺差,加载数据文件;若数据文件时间戳与当前时间为时间逆差,且逆差时间未超过容忍参数,等待的方式消除逆差,加载数据文件;若数据文件时间戳与当前时间为时间逆差,且逆差时间超过容忍参数,拒绝加载数据文件;
对比模块,用于将当前时间与数据文件时间戳比较,若确定当前时间与数据文件时间戳为时间顺差,通知数据文件加载模块;否则,为时间逆差,若进一步确定逆差时间超过容忍参数,通知数据文件加载模块;若确定逆差时间未超过容忍参数,通知数据文件加载模块。
一种数据版本的处理***,包括:数据更新通知模块、数据更新模块以及对比模块;
数据更新通知模块,用于确定要更新的数据所对应的存储节点,通知所述存储节点的数据更新模块;
数据更新模块,用于获取要更新的数据所属小表的最后更新时间,发送给对比模块;若当前时间与小表的最后更新时间为时间顺差,或者时间逆差且逆差时间未超过容忍参数,正常更新数据;若时间逆差且逆差时间超过容忍参数,拒绝更新数据;
对比模块,用于将自身所在存储节点的当前时间与小表的最后更新时间比较,若为时间顺差,通知数据更新模块;若为时间逆差,且逆差时间超过容忍参数,通知数据更新模块;若为时间逆差,且逆差时间未超过容忍参数,通知数据更新模块。
一种数据版本的处理***,包括:大表创建模块、小表创建模块以及对比模块;
大表创建模块,用于创建大表,大表创建后通知小表创建模块;
小表创建模块,用于读取大表创建模块中的大表创建时间,发送给对比模块;若当前时间与大表创建时间为时间顺差,正常创建小表;若时间逆差,且逆差时间超过容忍参数,拒绝创建小表;若时间逆差,且逆差时间未超过容忍参数,等待的方式消除逆差,创建小表;
对比模块,用于将自身所在存储节点的当前时间与大表创建时间比较,若时间顺差,通知小表创建模块;若时间逆差,且逆差时间超过容忍参数,通知小表创建模块;若时间逆差,且逆差时间未超过容忍参数,通知小表创建模块。
由此可见,采用本发明所述的方法及***,恢复redolog文件中的数据时,在数据文件时间戳、与redolog文件中数据时间为时间顺差,或者时间逆差且逆差时间没有超过容忍参数时,才对redolog文件中的数据进行恢复,在保证数据完整性的同时,对时间逆差,且逆差时间超过容忍参数时的redolog文件中的数据不进行恢复,避免***恢复大量重复数据;同时,在数据接管时,对要接管节点的数据的最后更新时间,也就是小表的最后更新时间同当前时间相比,时间顺差的进行接管,提高了接管后,查询元数据版本的正确性,从而保证***功能正常;加载数据文件时,将当前时间与数据文件时间戳比较,对时间顺差或时间逆差且逆差时间未超过容忍参数的数据文件进行加载,提高加载数据文件的准确性;数据更新时,将当前时间与小表的最后更新时间比较,在时间顺差或时间逆差且逆差时间未超过容忍参数时,才更新数据,提高了更新后数据版本的正确性;建表时,在当前时间与大表的创建时间为时间顺差,或者,时间逆差且逆差时间未超过容忍参数时,才建立小表,确保小表建立时间的正确,便于后续用户通过大表进行数据查询的正确性。
附图说明
图1为本发明实施例实现数据恢复的方法流程示意图;
图2为本发明实施例实现数据文件加载的方法流程示意图;
图3为本发明实施例实现数据更新的方法流程示意图;
图4为本发明实施例实现建表的方法流程示意图;
图5为本发明实施例实现数据恢复的***组成示意图;
图6为本发明实施例实现数据文件加载的***组成示意图;
图7为本发明实施例实现数据更新的***组成示意图;
图8为本发明实施例实现建表的***组成示意图。
具体实施方式
本发明的基本思想是:开始恢复数据,读取重操作日志(redolog)文件,获取redolog文件中的数据时间及数据文件时间戳;比较数据文件时间戳及redolog文件中的数据时间,若两者为时间逆差,且逆差时间未超过容忍参数,或者,两者为时间顺差,恢复数据。
下面通过具体实施例与附图来对本发明进行详细说明。
一种数据版本的处理方法,如图1所示,具体步骤如下:
步骤101、开始数据恢复,读取redolog文件,获取redolog文件中的数据时间及数据文件时间戳;所述redolog文件由存储节点保存到存储空间,包括:分布式存储***的数据、数据版本,也就是对数据操作时的时间即数据时间;分布式存储***先将数据保存到redolog文件,并记录版本,然后将数据保存到数据文件中,并记录版本;
分布式存储***异常,存储节点重启或进行故障接管过程中,***需要恢复数据,这时,数据文件中的记录可能是不完整的,存储节点要加载redolog文件中的数据,用来恢复数据。存储节点读取redolog文件,获取redolog文件中的数据版本,选取与当前时间最近的数据版本,也就是数据时间。
存储节点根据元数据表中自身对应的数据文件的路径,读取数据文件中数据文件的创建时间,也就是数据文件时间戳。所述元数据表包括:存储节点名称、与所述存储节点名称对应的小表数据范围,也就是小表所属的存储节点保存的数据文件中的数据的范围、数据文件路径、小表的最后更新时间、小表对应的大表身份识别号码(ID)、大表的创建时间。其中,所述小表的最后更新时间是由小表所属的存储节点保存的数据进行最后更新,或者,小表自身信息进行最后更新的时间;所述小表自身信息包括小表所述的存储节点、小表的数据范围等;所有的存储节点及控制节点对应一个元数据表;存储节点将数据保存到存储空间的数据文件中,并通过元数据表记录数据文件路径;所述数据文件由存储节点创建,其中包含创建时间,也就是数据文件时间戳、数据以及数据版本,数据文件中的数据按照大小顺序保存,设定数据文件的存储空间,若数据文件中的数据超过设定的存储空间,则新建数据文件保存数据。所述小表在内存中,包括存储节点名称、与所述存储节点名称对应的小表数据范围、数据文件路径、小表对应的大表ID、大表的创建时间以及小表的最后更新时间。所述大表位于某节点,用于向用户开放,便于用户查询,包含创建时间、自身ID;所述ID由创建大表的存储节点生成。其中,大表由用户选择创建时,存储节点所创建;创建大表后,存储节点会创建小表,并设定小表的数据范围,并在小表中输入大表ID,确定小表与大表的对应关系,这时的小表为空白小表;同时将小表的数据范围以及小表对应的大表ID更新到元数据表中。
步骤102、比较数据文件时间戳与redolog文件中的数据时间,若两者之间的为时间逆差,且逆差时间超过容忍参数,则redolog文件中的数据版本可能出现错误,执行步骤103;若两者之间的逆差时间未超过容忍参数,则redolog文件中有部分数据是有用的,应该对数据进行恢复,执行步骤104;若两者之间为时间顺差,数据文件与redolog文件中数据的保存顺序是正常的,redolog文件中与所述数据文件对应的数据是需要恢复的,执行步骤104;
将数据文件时间戳与redolog文件的数据时间中距离当前时间最近的数据时间相比,若数据文件时间戳早于redolog文件的数据时间,则两者之间为时间逆差;否则,两者之间为时间逆差,时间间隔为逆差时间。所述容忍参数的大小可根据需要设置。
步骤103、拒绝恢复redolog文件中的数据;
步骤104、恢复数据;
所述恢复数据即为读取redolog文件中的数据,加载到内存中。
以上恢复redolog文件中数据的流程可以由多种情况触发,故障接管为其中之一,具体内容包括:存储节点停止工作,这里的存储节点可以称之为被接管节点,控制节点指定另一存储节点,即接管节点接管被接管节点,也就是将被接管节点的节点名称发送给接管节点。接管节点根据被接管节点的节点名称读取元数据表中与所述被接管节点名称对应的小表的最后更新时间,同自身的当前时间相比,若接管节点的当前时间早于小表的最后更新时间,则接管节点的当前时间与小表的最后更新时间为时间逆差,与逻辑不符,如果此时进行接管,元数据表中仍以被接管节点的最后更新时间为最新时间,也就是作为小表的最后更新时间,此时,若要查询小表对应的存储节点,因为时间比小表的最后更新时间早,因此,只能查询元数据表中,小表的最后更新时间之前的记录,小表所属的存储节点仍为被接管节点,查询错误,影响***功能;接管节点拒绝接管;若接管节点的当前时间晚于被接管节点中小表的最后更新时间,则两者为时间顺差,正常接管,更新元数据表。所述正常接管,更新元数据表包括:将元数据表中被接管节点的节点名称修改为接管节点的节点名称。接管之后,进行redolog文件数据恢复。
另外,在数据文件加载的过程中也涉及到数据版本,分布式存储***中多种情况都会触发数据文件加载,包括存储节点重启,故障接管以及负载均衡等,其中,存储节点重启时,先进行数据文件加载,再进行数据恢复,也就是图1所述流程;对于数据加载时,对数据版本的处理过程如图2所示,具体步骤如下:
步骤201、存储节点读取自身对应的数据文件,获取数据文件时间戳,将当前时间与数据文件时间戳比较,若时间顺差,执行步骤202;若时间逆差,且逆差时间超过容忍参数,执行步骤203;若逆差时间未超过容忍参数,执行步骤204;
存储节点根据自身节点名称读取元数据表中所述存储节点名称对应的数据文件路径,根据数据文件路径读取数据文件,获取数据文件中的数据文件时间戳,将获取的数据文件时间戳同存储节点当前的时间比较,若当前时间晚于数据文件时间戳,则时间顺差;否则,时间逆差,两者之间的时间间隔即为逆差时间。
步骤202、加载数据文件。
所述加载数据文件为:存储节点读取元数据表中,自身存储节点对应的小表,读取小表中的最后更新时间以及数据文件路径,根据小表的数据范围,将小表的最后更新时间及数据文件路径,添加到内存中与所述数据范围对应的小表中。
步骤203、拒绝加载数据文件,并通过告警通知用户。
步骤204、等待的方式消除逆差,加载数据文件。
所述等待的方式消除逆差,加载数据文件包括:存储节点等待与容忍参数相同的时间,待存储节点当前时间与数据文件时间戳相同时,加载数据文件。这里,加载数据文件过程中出现时间逆差,逻辑上不合理,但是,由于数据文件有可能由不同的存储节点创建,存储节点之间存在时间不同步的可能,如果对所有出现时间逆差的数据文件都拒绝加载,降低了***可用性,虽然等待的方式消除逆差的过程降低了***的响应速度,但提高了***的可用性。
在分布式存储***中,对数据文件中的数据进行更新时,也涉及到数据版本,多个过程包含数据更新,例如负载均衡,其中,在负载均衡过程中,先进行数据更新,再进行数据恢复;所述数据更新包括数据增加、删除及修改等,数据更新时,对数据版本的处理流程如图3所示,具体流程如下:
步骤301、确定要更新的数据所对应的存储节点;
控制节点接收用户要更新的数据,根据数据查询元数据表的数据范围,也就是元数据表中小表的数据范围,确定要更新的数据对应的小表,根据小表所属的存储节点,确定要更新的数据对应的存储节点。控制节点通知所述存储节点进行数据更新,所述通知中包含要更新的数据,即要添加或删除的数据,或要修改的数据及修改后的数据。
步骤302、存储节点获取要更新的数据所属的小表的最后更新时间,将存储节点的当前时间同小表的最后更新时间比较,若时间顺差,执行步骤303;若时间逆差,且逆差时间超过容忍参数,执行步骤304;若逆差时间未超过容忍参数,执行步骤303;
存储节点读取元数据表中,要更新的数据对应的小表的最后更新时间,将存储节点的当前时间与小表的最后更新时间相比,若存储节点的当前时间晚于小表的最后更新时间,则为时间顺差;否则,为时间逆差,两者之间的时间间隔为逆差时间。
步骤303、正常更新数据。
所述更新包括:存储数据时,存储节点根据数据对应的小表中的数据文件路径,读取数据文件,将数据顺序保存到数据文件中,并记录时间,即更新后的版本为该数据文件的最新版本;修改或删除数据时,根据数据对应的小表中的数据文件路径,读取数据文件,查询数据文件中与要修改或删除的数据对应的数据,对所述数据进行修改或删除。
步骤304、拒绝更新数据,并通过告警通知用户。
分布式存储***在建表的过程中,也涉及到数据版本问题,在建表时,对数据版本的处理流程,如图4所示,具体步骤如下:
步骤401、控制节点创建大表并通知存储节点创建小表;
控制节点根据用户指示创建大表,所述创建大表包括生成大表ID,并记录大表创建时间;所述大表ID由控制节点在现有大表ID上加1,例如现有大表ID为1,则新创建的大表ID为2,大表ID的初始值可根据需要设定;所述通知存储节点创建小表包括:控制节点根据存储节点的负载均衡,由负载最小的存储节点创建小表。
步骤402、存储节点将自身的当前时间与控制节点中大表的创建时间相比,若时间顺差,执行步骤403;若时间逆差且逆差时间未超过容忍参数,执行步骤404;若时间逆差,且逆差时间超过容忍参数,执行步骤405;根据正常建表流程,控制节点先建立大表,然后由存储节点建立小表,若大表的建立时间晚于小表,后续通过小表进行数据更新时,数据更新的时间有可能早于大表的建立时间,逻辑上是不合理的,也可能会引起***的功能故障。
步骤403、存储节点创建小表;
所述创建小表包括:存储节点建立小表,设定小表的数据范围,并将小表与大表ID对应。
步骤404、等待的方式消除逆差,创建小表。
存储节点等待与所述容忍参数相同的时间后,存储节点的当前时间晚于大表的创建时间,存储节点正常创建小表。
步骤405、存储节点拒绝创建小表,并通过告警通知用户。
本发明还提供了一种数据版本的处理***,如图5所示,该***包括:数据恢复模块501以及对比模块502,其中数据恢复模块501与对比模块502位于存储节点。
数据恢复模块501,用于读取redolog文件;获取redolog文件中的数据时间及数据文件时间戳,发送给对比模块502;若数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间超过容忍参数,拒绝恢复数据;若逆差时间未超过容忍参数,恢复数据;若数据文件时间戳与redolog文件中的数据时间为时间顺差,恢复数据;
对比模块502,用于比较数据文件时间戳与redolog文件中的数据时间,确定时间顺差,通知数据恢复模块501;确定时间逆差,进一步将两者之间的时间间隔,即逆差时间与容忍参数相比,逆差时间未超过容忍参数,通知数据恢复模块501;逆差时间超过容忍参数,通知数据恢复模块501。
该***进一步包括:更新通知模块503,位于控制节点;元数据更新模块504,位于存储节点;
更新通知模块503,被接管节点停止工作,用于指定接管节点进行接管,并通知元数据更新模块504;所述通知中包含被接管节点名称;
元数据更新模块504,用于读取元数据表中与所述被接管节点名称对应的小表的最后更新时间,发送给对比模块502;若当前时间与小表的最后更新时间为时间逆差,拒绝更新元数据表;若当前时间与小表的最后更新时间为时间顺差,正常更新元数据表;
相应的,对比模块502,用于比较小表的最后更新时间与自身所在存储节点的当前时间,若接管节点的当前时间早于小表的最后更新时间,则两者之间为时间逆差,通知元数据更新模块504;否则,为时间顺差,通知元数据更新模块504。
一种数据版本的处理***,如图6所示,该***包括:数据文件加载模块601以及对比模块602;其中,数据文件加载模块601与对比模块602位于存储节点;
数据文件加载模块601,用于读取自身所在存储节点对应的数据文件,获取数据文件时间戳,发送给对比模块602;若数据文件时间戳与当前时间为时间顺差,加载数据文件;若数据文件时间戳与当前时间为时间逆差,且逆差时间大于容忍参数,拒绝加载数据文件;若数据文件时间戳与当前时间为时间逆差,且逆差时间未超过容忍参数,等待的方式消除逆差,加载数据文件;
对比模块602,用于将当前时间与数据文件时间戳相比,当前时间晚于数据文件时间戳,则确定当前时间与数据文件时间戳时间顺差,通知数据文件加载模块601;否则,两者时间逆差,确定逆差时间超过容忍参数,通知数据文件加载模块601;确定逆差时间未超过容忍参数,通知数据文件加载模块601;所述确定当前时间与数据文件时间戳时间顺差包括:若当前时间晚于数据文件时间戳,则时间顺差,否则,时间逆差;所述确定逆差时间超过容忍参数包括:获取当前时间与数据文件时间戳的时间间隔,作为逆差时间与容忍参数相比,确定逆差时间超过容忍参数。
一种数据版本的处理***,如图7所示,该***包括:数据更新通知模块701、数据更新模块702以及对比模块703;其中,数据更新通知模块701位于控制节点,数据更新模块702以及对比模块703位于存储节点;
数据更新通知模块701,用于接收用户要更新的数据,确定要更新的数据所对应的存储节点,通知所述存储节点的数据更新模块702;所述确定要更新的数据所对应的存储节点包括:根据数据查询元数据表的数据范围,也就是元数据表中小表的数据范围,确定要更新的数据对应的小表,小表所属的存储节点,即为要更新的数据对应的存储节点;所述通知中包含要更新的数据,即要添加或删除的数据,或要修改的数据及修改后的数据;
数据更新模块702,用于获取要更新的数据所属的小表的最后更新时间,发送给对比模块703;若当前时间与小表的最后更新时间为时间顺差,或者当前时间与小表的最后更新时间为时间逆差且逆差时间未超过容忍参数,正常更新数据;若时间逆差且逆差时间超过容忍参数,拒绝更新数据;
对比模块703,用于将自身所在存储节点的当前时间同小表的最后更新时间比较,确定则时间顺差,通知数据更新模块702;否则,时间逆差,确定逆差时间超过容忍参数,通知数据更新模块702;确定时间逆差且逆差时间未超过容忍参数,通知数据更新模块702;所述确定时间顺差包括:当前时间晚于小表的最后更新时间,则确定时间顺差;所述确定逆差时间大于容忍参数包括:将当前时间与小表的最后更新时间的时间间隔,作为逆差时间,与容忍参数相比,若逆差时间大于容忍参数,则确定逆差时间超过容忍参数,否则,逆差时间未超过容忍参数。
一种数据版本的处理***,如图8所示,该***包括:大表创建模块801、小表创建模块802以及对比模块803;其中,大表创建模块801位于控制节点,小表创建模块802及对比模块803位于存储节点;
大表创建模块801,用于根据用户的命令创建大表,并在大表创建后通知存储节点的小表创建模块802建立小表;所述创建大表包括:生成大表ID,并记录大表创建时间;
小表创建模块802,用于读取大表创建模块801中的大表创建时间,发送给对比模块803;若时间顺差,正常创建小表;若时间逆差且逆差时间超过容忍参数,拒绝创建小表;若时间逆差且逆差时间未超过容忍参数,等待的方式消除逆差,正常创建小表;
对比模块803,用于将自身所在存储节点的当前时间与大表创建时间比较,确定时间顺差,通知小表创建模块802;确定时间逆差,且逆差时间超过容忍参数,通知小表创建模块802;确定时间逆差,且逆差时间未超过容忍参数,通知小表创建模块802;所述确定时间顺差包括:若当前时间晚于大表创建时间,则时间顺差;所述确定时间逆差,且逆差时间超过容忍参数包括:若当前时间早于大表创建时间,则时间逆差,将当前时间与大表创建时间的时间间隔作为逆差时间,同容忍参数相比,可确定逆差时间超过容忍参数,或者逆差时间未超过容忍参数。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种数据版本的处理方法,其特征在于,该方法包括:
开始恢复数据,读取重操作日志redolog文件,获取redolog文件中的数据时间及数据文件时间戳;若数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间未超过容忍参数,或者,数据文件时间戳与redolog文件中的数据时间为时间顺差,恢复redolog文件中的数据;若数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间超过容忍参数,拒绝恢复数据。
2.根据权利要求1所述的方法,其特征在于,所述开始恢复数据之前,该方法进一步包括:
被接管节点停止工作,控制节点指派接管节点进行故障接管,接管节点根据被接管节点的节点名称,获取元数据表中与所述被接管节点的节点名称对应的小表的最后更新时间,同自身的当前时间相比,若当前时间与小表的最后更新时间为时间顺差,则正常接管;否则,拒绝接管。
3.一种数据版本的处理方法,其特征在于,该方法包括:
存储节点读取自身的数据文件,获取数据文件时间戳,同当前时间比较,若当前时间与数据文件时间戳为时间顺差,则加载数据文件;若当前时间与数据文件时间戳为时间逆差,且逆差时间超过容忍参数,则拒绝加载数据文件;若当前时间与数据文件时间戳为时间逆差,且逆差时间未超过容忍参数,等待的方式消除逆差,加载数据文件。
4.一种数据版本的处理方法,其特征在于,该方法包括:
控制节点确定要更新的数据对应的存储节点,存储节点获取要更新的数据所属小表的最后更新时间,同当前时间比较,若当前时间与小表的最后更新时间为时间顺差,或者,当前时间与小表的最后更新时间为时间逆差,且逆差时间未超过容忍参数,正常更新数据;若当前时间与小表的最后更新时间为时间逆差,且逆差时间超过容忍参数,则拒绝更新数据。
5.一种数据版本的处理方法,其特征在于,该方法包括:
控制节点创建大表并通知存储节点创建小表;存储节点将自身的当前时间与控制节点中大表的创建时间比较,若时间顺差,则创建小表,若时间逆差,且逆差时间未超过容忍参数,等待的方式消除逆差,创建小表;若时间逆差,且逆差时间超过容忍参数,拒绝创建小表。
6.一种数据版本的处理***,其特征在于,该***包括:数据恢复模块以及对比模块;
数据恢复模块,用于读取redolog文件,获取redolog文件中的数据时间及数据文件时间戳,发送给对比模块;若数据文件时间戳与redolog文件中的数据时间为时间顺差,或者,数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间未超过容忍参数,恢复数据;若数据文件时间戳与redolog文件中的数据时间为时间逆差,且逆差时间超过容忍参数,拒绝恢复数据;
对比模块,用于比较数据文件时间戳与redolog文件中的数据时间,确定时间顺差,通知数据恢复模块;确定时间逆差,进一步将逆差时间与容忍参数相比,若超过容忍参数,通知数据恢复模块;未超过容忍参数,通知数据恢复模块。
7.根据权利要求6所述的***,其特征在于,该***进一步包括:更新通知模块以及元数据更新模块;
更新通知模块,被接管节点停止工作,用于指派接管节点进行结果,并通知元数据更新模块;
元数据更新模块,用于读取元数据表中,与所述被接管节点名称对应的小表的最后更新时间,发送给对比模块;若当前时间与小表的最后更新时间为时间逆差,拒绝更新元数据表;若当前时间与小表的最后更新时间为时间顺差,更新元数据表;
相应的,对比模块,用于比较小表的最后更新时间与自身所在接管节点的当前时间,若当前时间晚于小表的最后更新时间,则为时间顺差,通知元数据更新模块;否则,为时间逆差,通知元数据更新模块。
8.一种数据版本的处理***,其特征在于,该***包括:数据文件加载模块以及对比模块;
数据文件加载模块,用于读取自身所在存储节点对应的数据文件,获取数据文件时间戳,发送给对比模块;若数据文件时间戳与当前时间为时间顺差,加载数据文件;若数据文件时间戳与当前时间为时间逆差,且逆差时间未超过容忍参数,等待的方式消除逆差,加载数据文件;若数据文件时间戳与当前时间为时间逆差,且逆差时间超过容忍参数,拒绝加载数据文件;
对比模块,用于将当前时间与数据文件时间戳比较,若确定当前时间与数据文件时间戳为时间顺差,通知数据文件加载模块;否则,为时间逆差,若进一步确定逆差时间超过容忍参数,通知数据文件加载模块;若确定逆差时间未超过容忍参数,通知数据文件加载模块。
9.一种数据版本的处理***,其特征在于,该***包括:数据更新通知模块、数据更新模块以及对比模块;
数据更新通知模块,用于确定要更新的数据所对应的存储节点,通知所述存储节点的数据更新模块;
数据更新模块,用于获取要更新的数据所属小表的最后更新时间,发送给对比模块;若当前时间与小表的最后更新时间为时间顺差,或者时间逆差且逆差时间未超过容忍参数,正常更新数据;若时间逆差且逆差时间超过容忍参数,拒绝更新数据;
对比模块,用于将自身所在存储节点的当前时间与小表的最后更新时间比较,若为时间顺差,通知数据更新模块;若为时间逆差,且逆差时间超过容忍参数,通知数据更新模块;若为时间逆差,且逆差时间未超过容忍参数,通知数据更新模块。
10.一种数据版本的处理***,其特征在于,该***包括:大表创建模块、小表创建模块以及对比模块;
大表创建模块,用于创建大表,大表创建后通知小表创建模块;
小表创建模块,用于读取大表创建模块中的大表创建时间,发送给对比模块;若当前时间与大表创建时间为时间顺差,正常创建小表;若时间逆差,且逆差时间超过容忍参数,拒绝创建小表;若时间逆差,且逆差时间未超过容忍参数,等待的方式消除逆差,创建小表;
对比模块,用于将自身所在存储节点的当前时间与大表创建时间比较,若时间顺差,通知小表创建模块;若时间逆差,且逆差时间超过容忍参数,通知小表创建模块;若时间逆差,且逆差时间未超过容忍参数,通知小表创建模块。
CN201110203404.7A 2011-07-20 2011-07-20 一种数据版本的处理方法及*** Active CN102890679B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110203404.7A CN102890679B (zh) 2011-07-20 2011-07-20 一种数据版本的处理方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110203404.7A CN102890679B (zh) 2011-07-20 2011-07-20 一种数据版本的处理方法及***

Publications (2)

Publication Number Publication Date
CN102890679A true CN102890679A (zh) 2013-01-23
CN102890679B CN102890679B (zh) 2017-05-31

Family

ID=47534186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110203404.7A Active CN102890679B (zh) 2011-07-20 2011-07-20 一种数据版本的处理方法及***

Country Status (1)

Country Link
CN (1) CN102890679B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708825A (zh) * 2015-07-29 2017-05-24 腾讯科技(深圳)有限公司 一种数据文件处理方法及***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261069A (en) * 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
US6871271B2 (en) * 2000-12-21 2005-03-22 Emc Corporation Incrementally restoring a mass storage device to a prior state

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708825A (zh) * 2015-07-29 2017-05-24 腾讯科技(深圳)有限公司 一种数据文件处理方法及***
CN106708825B (zh) * 2015-07-29 2019-09-27 腾讯科技(深圳)有限公司 一种数据文件处理方法及***

Also Published As

Publication number Publication date
CN102890679B (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
US11429641B2 (en) Copying data changes to a target database
US7840539B2 (en) Method and system for building a database from backup data images
US8938421B2 (en) Method and a system for synchronizing data
US7257690B1 (en) Log-structured temporal shadow store
US8250033B1 (en) Replication of a data set using differential snapshots
CN108369601B (zh) 关系结构化数据中的提升属性
US11403269B2 (en) Versioning validation for data transfer between heterogeneous data stores
US10599676B2 (en) Replication control among redundant data centers
CN112084161B (zh) 基于数据库的数据处理方法、装置以及可读存储介质
US9223797B2 (en) Reparse point replication
CN102142024A (zh) 在分布式数据库中使用递增捕捉来进行逻辑数据备份和回退
CN108431807B (zh) 分区数据存储空间中结构化数据记录的复制
CN104657382A (zh) 用于MySQL主从服务器数据一致性检测的方法和装置
US11221785B2 (en) Managing replication state for deleted objects
CN109298978B (zh) 一种指定位置的数据库集群的恢复方法及***
CN109902127B (zh) 历史态数据处理方法、装置、计算机设备及存储介质
CN114490677A (zh) 数据分析***中的数据同步
CN114968966A (zh) 分布式元数据远程异步复制方法、装置和设备
CN110543485B (zh) 一种基于快照的区块链预约归档方法
CN102890679A (zh) 一种数据版本的处理方法及***
CN115658391A (zh) 基于QianBase MPP数据库的WAL机制的备份恢复方法
CN111209138A (zh) 数据存储***的运维方法及装置
US20230385304A1 (en) Snapshots for distributed object-based datastores
US20210248108A1 (en) Asynchronous data synchronization and reconciliation
JP2006285576A (ja) 分散処理システム及び分散処理方法

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