一种用于热表数据更新的异步处理方法及装置的制作方法

文档序号:6364890阅读:167来源:国知局
专利名称:一种用于热表数据更新的异步处理方法及装置的制作方法
技术领域
本发明是关于计算机数据处理技术,特别是关于一种用于热表数据更新的异步处理方法及装置。
背景技术
联机数据处理按照数据处理的时效性可以分为实时更新和非实时更新两种。需要实时更新的数据是对时效性要求较高的数据,用户进行操作后要立刻在数据库中得到体现,后续用户操作必需基于前一次操作得出的结果,且与数据操作先后顺序有关;不需要实时更新的数据是对时效性要求不高的数据,用户进行操作后不需要立刻在数据表中体现, 只需在一定的时间间隔内体现即可,后续各用户的操作不一定基于前一次操作的结果。在大型的商业银行系统中,由于业务处理量巨大,各种系统数据的更新时会争夺系统资源,并且数据的更新具有排他性,即在数据更新时必须对数据记录进行加锁阅读,造成了热表记录实时更新时出现瓶颈。例如业务量统计数据,每天在业务高峰期8个小时内需要被更新100万次,即平均每秒钟需要被更新34次。若这种数据也采用实时更新的方式进行更新,由于数据的更新热度高,且数据更新具有排他性,会导致联机数据处理等待时间较长,系统运行时间较长影响用户操作和增加系统运行的开销。所以对于更新热度高且数据更新时效性要求不高的数据,可以采用非实时更新的数据更新方式,把这部分数据更新从实时数据更新中抽离出来进行异步操作,提高联机处理的整体运行速度。现有技术在对非实时数据进行异步处理时,会对待处理数据进行全表扫描,以便找出处理状态为未处理的记录。一般需要异步处理的数据量巨大,每次处理都全量扫描待处理数据表找出未处理记录,会导致处理效率异常低下。针对这种情况,另外一种处理方式是先确定一个本次处理的时间范围,对在此时间范围内的未处理记录进行处理,下次再依次确定后续的时间范围,进行异步数据处理,以提高查找待处理数据的效率。但是这种确定时间范围的处理方式使得处于时间范围临界值的某些记录存在被漏处理的可能。产生漏处理的原因主要是因为数据记录的时间戳与数据记录真正出现在数据表上的时间点之间有一定的时间差。在数据记录生成的时候,系统依据当前时间为其登记了一个时间戳,但是该记录可能还会进行其它特殊操作后,记录才真正插入到数据表中。 如图I所示,一笔待处理的a记录执行新增SQL时间戳为10:00,新增后还可能还会执行其它查询、新增、删除SQL,到10:01才对之前的操作统一做COMMIT (提交)处理真正写入到数据表中。这个时间差也许非常的微小,但是对计算机来说,本次扫描的时间截止到10:00时该条(或若干条)记录未出现在数据表中,下次扫描起始时间为“大于10:00”而该条记录的时间戳为10:00又不符合下一次扫描的时间要求,则导致该条(或若干条)记录会被漏处理。因此,需要一种解决方案,既能够解决热表记录实时更新的瓶颈问题,又能够避免在对非实时更新数据进行异步处理过程中出现待处理记录遗漏的情况。

发明内容
本发明提供一种用于热表数据更新的异步处理方法及装置,以解决热表记录实时更新的瓶颈问题,避免异步处理时出现待处理记录遗漏的情况。为了实现上述目的,本发明提供一种用于热表数据更新的异步处理方法,该方法包括步骤a :获取包含数据更新信息、数据处理状态及时间戳的待更新数据,并从所述待更新数据中提取非实时更新数据;步骤b :根据回滚时间ATl及上次时间范围结束值Tl生成本次时间范围开始时间T2,并根据系统当前时间T3生成本次时间范围的结束时间;步骤 c :从所述非实时更新数据中选择时间戳落入Tl与系统当前时间T3之间的非实时更新数据进行更新处理;步骤d :将所述Tl更新为T3,将上次启动结束时间更新为当前时间T4,运行监控时间更新为当前时间T4。进一步地,在步骤d之后,所述的方法还包括判断自动间隔时间ΛΤ2与所述的运行监控时间之和是否大于当前工作时间T5,如果是,于当前系统时间等于所述自动间隔时间ΛΤ2与上次启动结束时间T4之和时,重复步骤b。进一步地,如果自动间隔时间ΛΤ2与所述的运行监控时间之和是不大于当前工作时间T5,输出异常提不信息。进一步地,当接收到用户输入的异常处理指令时,重复步骤b。进一步地,在步骤c之后,所述的方法还包括将完成更新处理的非实时更新数据的处理状态更新为已处理。为了实现上述目的,本发明提供一种用于热表数据更新的异步处理装置,该装置包括数据提取单元,用于获取包含数据更新信息、数据处理状态及时间戳的待更新数据, 并从所述待更新数据中提取非实时更新数据;时间范围生成单元,用于根据回滚时间Λ Tl 及上次时间范围结束值Tl生成本次时间范围开始时间Τ2,并根据系统当前时间Τ3生成本次时间范围的结束时间;数据选择更新单元,用于从所述非实时更新数据中选择时间戳落入Tl与系统当前时间Τ3之间的非实时更新数据进行更新处理;时间更新单元,用于将所述 Tl更新为Τ3,将上次启动结束时间更新为当前时间Τ4,运行监控时间更新为当前时间Τ4。进一步地,该装置还包括时间判断单元,用于判断自动间隔时间ΛΤ2与所述的运行监控时间之和是否大于当前工作时间Τ5。进一步地,该装置还包括异常提示单元,用于当自动间隔时间ΛΤ2与所述的运行监控时间之和是不大于当前工作时间Τ5时,输出异常提示信息。进一步地,该装置还包括指令接收单元,用于接收用户输入的异常处理指令。进一步地,该装置还包括状态更新单元,用于将完成更新处理的非实时更新数据的处理状态更新为已处理。本发明实施例的有益效果在于,通过将非实时处理数据与实时处理数据分开进行异步处理,使得大量对时效性要求不高的数据可以非实时更新,避免系统出现热点表更新效率低下的问题。在异步处理数据时,采用了确定每次处理的时间范围,通过时间范围来查找待处理的记录,避免了全量扫描待处理记录表,查找效率低、系统开销大的问题。通过采用时间回滚计算时间范围的方法,使得前后两次异步处理的时间范围互相覆盖,处于时间范围临界值的某些记录,即使需要进行各种特殊处理后才能真正登记在待处理记录表中,也不会被前后两次异步处理所遗漏,提高了系统的可靠性。
对异步处理进行监控,在异常情况下能够及时提醒用户,提高了数据处理的安全性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中
I为现有技术记录漏处理示意2为本发明实施例用于热表数据更新的异步处理装置结构示意3为本发明实施例数据存储装置的结构框4为本发明实施例异步处理装置的结构框5为本发明实施例时间范围示意6为本发明实施例异步处理启动装置的结构框7为本发明实施例用于热表数据更新的异步处理装置的结构框8为本发明实施例热表数据更新的异步处理方法流程图。图







具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。如图2所示,本实施例提供一种用于热表数据更新的异步处理装置,该装置包括 数据筛选装置I、数据存储装置2、异步处理装置3、参数设置装置4及异步处理启动装置5。数据筛选装置I、异步处理装置3及参数设置装置4分别与数据存储装置2连接, 异步处理启动装置5与异步处理装置3连接,数据筛选装置I对外连接于银行系统6。异步处理装置3可以为单片机或FPGA等设备。数据筛选装置I的功能是接收银行系统6需要进行更新操作的数据,并进行筛选, 若需要进行更新操作的数据判断为实时更新数据则直接进行更新操作并退出处理,数据更新处理为本领域的现有技术,在此不再赘述。若需要进行更新操作的数据判断为非实时更新数据,将该非实时更新数据存储到数据存储装置2,作为待处理的数据记录。数据筛选装置I为数据监测通信接口,可以包括串口或USB 口等接口,以及数据接收模块和数据发送模块。数据存储装置2的功能是存储待处理数据记录、系统运行参数、以及运行过程中暂时生成的各时间值。如图3所示,数据存储装置2包括参数存储单元21、时间暂存单元 22及待处理记录存储单元23。参数存储单元21可以用于存储系统运行所需参数,如表I所示,系统运行所需参数至少包括回滚时间、自启动间隔时间参数。其中,“回滚时间”参数是异步处理装置3计算时间范围时所需要用到的参数;“自启动间隔时间”参数是确定下一次启动异步处理装置 3的时间所需要用到的参数,以及异步处理启动装置5判断异步处理装置3是否正常运行所需要用到的参数。表I
常数名称常数值回滚时间t自启动间隔时间W时间暂存单元22用于存储异步处理装置3在进行数据处理过程中获取的各项时间数值,如表2所示,各项时间数值主要包括上次时间范围结束值、上次启动结束时间、运行监控时间三条记录。“上次时间范围结束值”保存上次事务处理的时间范围的结束值,用于计算下一次事务处理的时间范围的开始值;“上次启动结束时间”保存上一次异步处理装置3数据处理的运行结束时间,用于计算下一次启动异步处理装置3的时间;“运行监控时间”保存每次处理的运行时间,用于判断异步处理是否正在正常运行。表 2
字段字段值上次时间范围结束值T上次启动结束时间W运行监控时间M待处理记录存储单元23用于存储等待进行处理的非实时更新数据,如表3所示, 非实时更新数据至少包括数据更新信息、处理状态、时间戳三部分内容。“数据更新信息” 保存需要进行更新操作的具体的数据信息;“处理状态”用于记录待处理记录的处理状态, 记录新增时默认为O-未处理,当被异步处理装置3处理后更新为I-已处理;“时间戳”记录该数据信息生成时的时间戳,异步处理装置3通过计算出事务处理的时间范围后,判断“时间戳”是否落入该时间范围,决定是否对该数据进行处理。表3
数据更新信息处理状态时间戳VALUE3VALUE4(0-未处理;I-已处理)TIMESTAMP异步处理装置3的功能是通过时间回滚确认本次事务处理的时间范围,对落入时间范围的待处理记录进行更新处理,然后,计算下一次启动时间,自动启动异步处理装置3 在下一次启动时间时再次进行待处理记录处理。如图4所示,异步处理装置3包括时间回滚单元31、数据处理单元32及自启动单元33。时间回滚单元31用于计算本次事务处理的时间范围,以便根据该时间范围来选择需要处理的数据信息。首先,时间回滚单元31读取数据存储装置2中参数存储单元21 中“回滚时间”参数的值ΛΤ1 ;读取数据存储装置2中时间暂存单元22获取“上次时间范围结束值”,假设为Tl ;然后,用“上次时间范围结束值” Tl减去“回滚时间” ΛΤ1,得到时间值T2作为本次时间范围开始值,再获取系统当前时间为T3作为本次时间范围结束值;最后,得出时间范围T2至T3作为筛选待处理记录的时间范围,时间范围如图5所示。数据处理单元32用于按照时间回滚单元31计算出的时间范围,获取相应时间范围内的待处理记录进行处理。首先,数据处理单元32访问待处理记录存储单元23,选取“时间戳”的值落入时间范围“T2至T3”的所有记录,并判断其“处理状态”是否为O-未处理; 然后,对符合条件的待处理记录进行数据处理,并更新记录的“处理状态”为I-已处理;每处理完一笔记录后时间暂存单元22将“运行监控时间”更新为当前时间;本次事务的所有记录处理结束,访问时间暂存单元22将“上次时间范围结束值”更新为T3、“上次启动结束时间”更新为当前时间,“运行监控时间”更新为当前时间。自启动单元33的功能是根据一定的间隔时间,自动启动异步处理装置3对待处理记录进行处理。首先,自启动单元33访问时间暂存单元22获取“上次启动结束时间”(假设为W0),并访问参数存储单元21获取“自启动间隔时间”(ΛΤ2);然后,将“上次启动结束时间”WO加上“自启动间隔时间” Λ Τ2,得到下次启动时间Wl ;然后,在系统时间等于Wl时, 再次启动异步处理装置3。通用参数设置装置4的功能是接收用户指令,对数据存储装置2中的系统运行参数进行设置和调整。异步处理启动装置5的功能是监测异步处理装置3是否正在正常运行,若正常运行,则不执行重新启动异步处理装置3的指令;如果异常运行,则提示用户,并重新运行异步处理装置3。异步处理启动装置5用于监测异步处理装置3是否异常运行,接收用户指令并判断是否允许用户重新启动异步处理装置3 ;如果判断结果为异步处理装置3正常运行, 则不允许重新启动;否则,重新启动异步处理装置3。如图6所示,异步处理启动装置5包括监测单元51及启动处理单元52。监测单元51的功能是根据运行监控时间与当前系统时间的对比,监测异步处理装置3是否正常工作。具体处理为首先,监测单元51访问时间暂存单元22获取“运行监控时间” Μ,并访问参数存储单元21获取“自启动间隔时间” Λ Τ2 ;然后比较M+ Λ Τ2是否小于系统当前时间,如果M+Λ Τ2小于系统当前时间,则证明“运行监控时间”M已超过正常时间未更新,即异步处理装置3异常运行,发送异常运行提醒到启动处理单元52。如果M+ Δ Τ2 大于系统当前时间,则证明异步处理装置3正常运行。启动处理单元52可以根据监测单元51判断结果,控制是否执行用户启动异步处理装置3的指令。如果收到监测单元51发送的异常运行提醒,则提示给用户,并在接收到用户指令时重新启动异步处理装置3 ;如果未收到监测单元51发送的异常运行提醒,则在接收到用户指令时不允许重新启动异步处理,即不做任何操作。图7为本发明实施例用于热表数据更新的异步处理装置的结构框图,该装置包括数据提取单元701,时间范围生成单元702,数据选择更新单元703及时间更新单元
7704。另外,该装置还包括一存储单元705,用于实现图2中数据存储装置2的功能,存储非实时更新数据,存储包括回滚时间及自启动间隔时间的系统运行所需参数,还可以存储数据处理过程中获取的上次时间范围结束值、上次启动结束时间、运行监控时间等各项时间参数。另外,下面实施例中将涉及几个当前时间,每一当前时间是指执行不同操作时所处于的当前时刻的时间点。数据提取单元701用于实现图2中数据筛选装置I的功能,数据提取单元701首先获取包含数据更新信息、数据处理状态及时间戳的待更新数据,并从所述待更新数据中提取非实时更新数据,然后将该非实时更新数据保存到存储单元705中。数据提取单元701为数据监测通信接口,可以包括串口或USB 口等接口,以及数据接收模块和数据发送模块。时间范围生成单元702根据存储单元中的回滚时间ΛΤ1及上次时间范围结束值 Tl生成本次时间范围开始时间T2(T2 = Tl-Λ Tl),并根据系统当前时间Τ3生成本次时间范围的结束时间。数据选择更新单元703用于从所述非实时更新数据中选择时间戳落入Tl与系统当前时间Τ3之间的非实时更新数据,并对选择的非实时更新数据进行更新处理。数据更新处理完成后,时间更新单元704将上次时间范围结束值Tl更新为Τ3 (Τ3 此时已不再是当前时间),将上次启动结束时间更新为当前时间Τ4,运行监控时间M更新为当前时间Τ4。进一步地,该装置还包括状态更新单元706,数据更新处理完成后,状态更新单元706可以将完成更新处理的非实时更新数据的处理状态更新为已处理。时间范围生成单元702,数据选择更新单元703、时间更新单元704及状态更新单元706用于实现图2中异步处理装置3的功能。进一步地,该装置还包括时间判断单元707及异常提示单元708。时间判断单元 707用于判断自动间隔时间ΛΤ2与运行监控时间M(更新后的当前时间Τ4)之和(△ Τ+Μ) 是否大于当前工作时间Τ5。如果自动间隔时间ΛΤ2与所述的运行监控时间之和大于当前工作时间Τ5,于当前系统时间等于所述自动间隔时间ΛΤ2与上次启动结束时间Τ4之和时,调用时间范围生成单元702,数据选择更新单元703、时间更新单元704及状态更新单元706再次执行相应的操作。当自动间隔时间ΛΤ2与所述的运行监控时间之和是不大于当前工作时间Τ5时, 异常提示单元708可以输出异常提示信息。异常提示单元708可以输出异常提示信息之后,执行异常处理操作还需在用户指令之后进行。进一步地,该装置还包括指令接收单元707,用于在接收用户输入的异常处理指令,调用时间范围生成单元702,数据选择更新单元703、时间更新单元704及状态更新单元706再次执行相应的操作。下面结合具体的数据详细说明本发明实施例,假设存储单元705保存的参数及各项时间值如下述的表4、表5及表6所示,表4为回滚时间及自启动间隔时间,表5中存储的为上次时间范围结束值、上次启动结束时间、运行监控时间,表6中存储的为非实时更新数据的数据更新信息、处理状态及时间戳。表 权利要求
1.一种用于热表数据更新的异步处理方法,其特征在于,所述的方法包括步骤a :获取包含数据更新信息、数据处理状态及时间戳的待更新数据,并从所述待更新数据中提取非实时更新数据;步骤b :根据回滚时间Δ Tl及上次时间范围结束值Tl生成本次时间范围开始时间T2, 并根据系统当前时间T3生成本次时间范围的结束时间;步骤c :从所述非实时更新数据中选择时间戳落入Tl与系统当前时间T3之间的非实时更新数据进行更新处理;步骤d :将所述Tl更新为T3,将上次启动结束时间更新为当前时间T4,运行监控时间更新为当前时间T4。
2.根据权利要求I所述的方法,其特征在于,在步骤d之后,所述的方法还包括判断自动间隔时间ΛΤ2与所述的运行监控时间之和是否大于当前工作时间T5,如果是,于当前系统时间等于所述自动间隔时间ΛΤ2与上次启动结束时间T4之和时,重复步骤 b0
3.根据权利要求2所述的方法,其特征在于,如果自动间隔时间ΛΤ2与所述的运行监控时间之和是不大于当前工作时间T5,输出异常提示信息。
4.根据权利要求3所述的方法,其特征在于,当接收到用户输入的异常处理指令时,重复步骤b。
5.根据权利要求I所述的方法,其特征在于,在步骤c之后,所述的方法还包括将完成更新处理的非实时更新数据的处理状态更新为已处理。
6.一种用于热表数据更新的异步处理装置,其特征在于,所述的装置包括数据提取单元,用于获取包含数据更新信息、数据处理状态及时间戳的待更新数据,并从所述待更新数据中提取非实时更新数据;时间范围生成单元,用于根据回滚时间△!!及上次时间范围结束值Tl生成本次时间范围开始时间T2,并根据系统当前时间T3生成本次时间范围的结束时间;数据选择更新单元,用于从所述非实时更新数据中选择时间戳落入Tl与系统当前时间T3之间的非实时更新数据进行更新处理;时间更新单元,用于将所述Tl更新为T3,将上次启动结束时间更新为当前时间T4,运行监控时间更新为当前时间T4。
7.根据权利要求6所述的装置,其特征在于,所述的装置还包括时间判断单元,用于判断自动间隔时间ΛΤ2与所述的运行监控时间之和是否大于当前工作时间T5。
8.根据权利要求7所述的装置,其特征在于,所述的装置还包括异常提示单元,用于当自动间隔时间ΛΤ2与所述的运行监控时间之和是不大于当前工作时间T5时,输出异常提不信息。
9.根据权利要求8所述的装置,其特征在于,所述的装置还包括指令接收单元,用于接收用户输入的异常处理指令。
10.根据权利要求6所述的装置,其特征在于,所述的装置还包括状态更新单元,用于将完成更新处理的非实时更新数据的处理状态更新为已处理。
全文摘要
一种用于热表数据更新的异步处理方法及装置,该方法包括步骤a获取包含数据更新信息、数据处理状态及时间戳的待更新数据,并从所述待更新数据中提取非实时更新数据;步骤b根据回滚时间ΔT1及上次时间范围结束值T1生成本次时间范围开始时间T2,并根据系统当前时间T3生成本次时间范围的结束时间;步骤c从所述非实时更新数据中选择时间戳落入T1与系统当前时间T3之间的非实时更新数据进行更新处理;步骤d将所述T1更新为T3,将上次启动结束时间更新为当前时间T4,运行监控时间更新为当前时间T4。本发明可以解决热表记录实时更新的瓶颈问题,避免异步处理时出现待处理记录遗漏的情况,提高系统的整体运行效率和可靠性。
文档编号G06Q40/00GK102591993SQ20121003563
公开日2012年7月18日 申请日期2012年2月16日 优先权日2012年2月16日
发明者何敏华, 刘圣杰, 梁柱标, 蔡凌玮, 邓校锋, 韦东俊 申请人:中国工商银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1