数据预读器及其数据读取方法

文档序号:6562143阅读:198来源:国知局
专利名称:数据预读器及其数据读取方法
技术领域
本发明涉及一种数据预读器及其数据读取方法,更具体的,涉及一种针对应用系统,通过集中物理存储设备读取,根据应用流程制定I/O读取操作策略,在应用进行业务处理之前,保证处理业务所需要的相关数据都已在内存缓存中的数据预读器及其数据读取方法。
背景技术
目前数据业务深入人心,数据业务性能问题一直是大家关注的热点,在物理存储上,海量的应用数据与有限的内存矛盾日益冲突。内存数据库是较为通用的提高性能的常见办法,该技术的实现基于内存中已有数据,主要关注数据在内存中的保留时间。对于数据的读取,目前内存数据库一次加载全部或部分数据,在加载部分数据时,一旦请求的数据不存在于内存,则需要进行同步I/O读取。
对于很多增值业务,业务数据是海量的,内存不可能缓存业务处理所需全部数据,目前当业务处理需要的数据不存在于内存时,则通过文件接口或数据库接口直接读取物理存储设备,在业务流程中存在I/O操作。
虽然直接物理存储设备读取实现简单易行,但是缺点也显而易见。首先,在业务流程中进行I/O操作,I/O性能瓶颈会影响业务速度,然而提高性能必然要求高性能设备,结果势必增加成本。其次,业务流程处理中嵌入业务数据底层处理,增加了业务流程的复杂度,不利于从业务层面和业务数据层面分开考虑优化性能。另外,难以控制I/O的异常。
如果能够集中处理I/O读取,根据业务数据需求是否可以预测确定I/O读取策略。为方便描述,将可测数据定义为可以确定在将来的特定时间点业务处理需要使用的业务数据;定义异步数据为数据使用请求随机发生,但可以延迟业务处理的业务数据。以短消息中心为例,定时短消息和重试短消息明确在将来的某一时刻需要被发送,因此是可测数据;系统重启后,首次发给特定目的用户的消息触发该目的用户的未发送消息继续发送,但优先发送当前提交消息,可以对目的用户先采用缺省值操作,在延迟读入该目的用户信息后再进行修改,由于用户发送消息是随机的,因此可以认为目的用户数据是异步数据。
对于应用的可测数据,要进行预先读取;对于异步数据,要延迟处理业务,或先采用缺省值处理并在读取后进行修改。这样就消除了I/O读取对业务处理带来的阻塞影响。但是,现有技术尚未能提供上述解决方案。

发明内容
为了消除I/O读取对业务带来的阻塞影响,以达到充分利用CPU资源,提高产品性能的目的,本发明提供了一种功能独立、集中处理业务数据I/O读取的数据预读器及其数据读取方法。
本发明的一个方面提供了一种数据预读器,其包括以下装置配置单元,用于提供与数据预读器相关的配置信息;预读请求收集模块,用于根据来自配置单元的配置信息,接收并缓存来自用户的预读请求,并在接收到预读请求之后,向主控模块发出预读处理请求;数据读取引擎,连接到主控模块,用于为主控模块提供物理读取接口,并监控和维护业务数据的I/O读取;用户接口单元,连接到主控模块,通过配置单元来进行设置,用于为业务处理提供接口,并在预读数据完成后,完成用户指定的后续操作;以及主控模块,用于接收来自预读请求收集模块的预读处理请求,通过调用数据读取引擎从物理存储设备中读取数据。
根据本发明的一个方面,数据预读器还包括统计单元,连接到主控模块,用于收集并分析与数据预读器相关的统计数据,并提供给主控模块。
根据本发明的一个方面,主控模块还用于接收来自统计单元的统计数据,并根据统计数据调节预读策略。
根据本发明的预读请求收集模块包括预读请求队列模块,用于暂存数据预读请求;预读请求用户接口,用于接收来自用户的预读请求,并将预读请求缓存到预读列队模块;可测数据预读收集用户接口,用于收集可测数据的预读请求;以及定时器,用于定时调用可测数据预读收集用户接口,来收集可测数据的预读请求,并将可测数据的预读请求缓存到预读请求列队模块。
根据本发明的一个方面,可测数据是可以确定在将来的特定时间点业务处理所需要使用的业务数据。
根据本发明的用户接口单元包括预读成功用户处理接口,其通过配置单元被配置,用于在预读成功后进行后续处理;告警用户处理接口,其通过配置单元被设置,用于在预读数据不存在或发生预读错误时,通过该接口向系统提交相关错误信息;以及预读结果处理单元,用于完成预读处理完成操作,并根据预读结果调用预读成功用户处理接口或告警用户处理接口。
根据本发明的一个方面,统计数据包括以下至少之一相同数据的预读请求次数;预读操作总次数;预读操作成功率;物理读取操作最大用时、最小用时、和平均用时;以及预读最大用时、最小用时、和平均用时。
本发明的另一方面提供了一种使用数据预读器的数据读取方法,该数据预读器包括配置单元、预读请求收集模块、数据读取引擎、用户接口单元、主控模块以及统计单元。数据读取方法包括以下步骤步骤S202,配置单元读取相关配置信息,并通过配置接口来接收相关配置信息和用户接口单元的处理配置;步骤S204,预读请求收集模块收集预定请求,并通知主控模块;步骤S206,主控模块接收到数据预读请求,调用数据读取引擎从物理设备中读取业务数据;以及步骤S208,判断读取操作是否成功,根据判断结果,主控模块采取相应的操作。
根据本发明的一个方面,使用该数据预读器的数据读取方法还包括以下步骤使用统计单元进行相关统计处理,并将得到的统计数据发送给主控模块。
根据本发明的一个方面,当在步骤S208中判断读取操作成功时,还包括以下步骤主控模块通过用户接口单元中的预读成功的用户处理接口来完成用户指定操作;如果在步骤S208中判断读取操作不成功时,则包括以下步骤主控模块根据来自配置单元的配置信息决定是否通过用户接口单元中的告警用户处理接口来告警。
根据本发明的使用该数据读取预读器的数据读取方法,还包括以下步骤使用预读请求收集模块中的定时器来定时检测可测数据的预读请求,并将检测到的预读请求发送到预读请求收集模块。预读请求收集模块在接到预读请求后,将预读请求写入预读请求收集模块中的预读请求队列;以及主控模块从预读队列模块中取出预读请求。
另外,根据本发明,如果配置单元设置了预读请求收集模块中的可测数据预读收集用户接口,则还包括以下步骤定时调用可测数据预读收集用户接口收集可测数据预读信息,并将所收集的可测数据预读信息发送给主控模块。
根据本发明的可测数据是可以确定在将来特定时间点业务处理所需要使用的业务数据。
根据本发明的一个方面,统计数据包括以下至少之一相同数据的预读请求次数;预读操作总次数;预读操作成功率;物理读取操作最大用时、最小用时、和平均用时;以及预读最大用时、最小用时、和平均用时。
采用本发明所提供的数据预读器及其数据读取方法,可以集中业务数据物理读取,避免I/O读取操作阻塞业务处理。另外,由于可在数据预读器内部实现可测数据预读请求收集,因此用户也可以通过预读请求收集模块提交预读请求给数据预读器。而且本发明的用户接口单元所提供的接口,实现了数据读取成功后续操作,便于用户与数据预读器的交互。因此,有利于充分利用CPU资源,提高产品性能,加强数据预读器使用的灵活性。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中图1是根据本发明的数据预读器的框图;图2是根据本发明的数据预读器的数据读取方法的流程图;
图3是根据本发明的实施例的数据预读器的结构示意图;图4是根据本发明的实施例的预读请求收集模块的结构示意图;图5是根据本发明的实施例的用户接口单元的结构示意图;以及图6是根据本发明的实施例的数据处理方法的详细流程图。
具体实施例方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是根据本发明的实施例的数据预读器的框图。如图1所示,数据预读器100包括配置单元102,用于提供与数据预读器100相关的配置信息;预读请求收集模块104,用于根据来自配置单元102的配置信息,接收并缓存来自用户的预读请求,并在接收到预读请求之后,向主控模块110发出预读处理请求;数据读取引擎106,连接到主控模块110,用于为主控模块110提供物理读取接口,并监控和维护业务数据的I/O读取;用户接口单元108,连接到主控模块110,通过配置单元102来进行设置,用于为业务处理提供接口,并在预读数据完成后,完成用户指定的后续操作;主控模块110,用于接收来自预读请求收集模块104的预读处理请求,通过调用数据读取引擎106从物理存储设备中读取数据;以及统计单元112,连接到主控模块110,用于收集并分析与数据预读器100相关的统计数据,并提供给主控模块110。
其中,预读请求收集模块104还包括预读请求队列模块1042,用于暂存数据预读请求;预读请求用户接口1044,用于接收来自用户的预读请求,并将预读请求缓存到预读请求列队模块1042;可测数据预读收集用户接口1046,用于收集可测数据的预读请求;以及定时器1048,用于定时调用可测数据预读收集用户接口,来收集可测数据的预读请求,并将可测数据的预读请求缓存到预读请求列队模块1042。可测数据是可以确定在将来的某个时间点业务处理所需要使用的业务数据。
另外,用户接口单元108还包括预读成功用户处理接口1082,其通过配置单元102被配置,用于在预读成功后进行后续处理;告警用户处理接口1084,其通过配置单元102被设置,用于在预读数据不存在或发生预读错误时,通过该接口向系统提交相关错误信息;以及预读结果处理单元1086,用于完成预读处理完成操作,并根据预读结果调用预读成功用户处理接口或告警用户处理接口。
主控模块110还用于接收来自统计单元112的统计数据,并根据统计数据调节预读策略。
其中,统计数据包括以下至少之一相同数据的预读请求次数;预读操作总次数;预读操作成功率;物理读取操作最大用时、最小用时、和平均用时;以及预读最大用时、最小用时、和平均用时。
图2是根据本发明的实施例的数据预读器的数据读取方法的流程图。如图2所示,根据本发明的实施例,使用数据预读器的数据读取方法包括以下步骤(1)步骤S202,配置单元102读取相关配置信息,并通过配置接口来接收相关配置信息和用户接口单元108的处理配置。
其中,如果配置单元102设置了预读请求收集模块104中的可测数据预读收集用户接口1046,则还包括以下步骤定时调用可测数据预读收集用户接口1046收集可测数据预读信息,并将所收集的可测数据预读信息发送给主控模块110。其中,可测数据是可以确定在将来某个时间点业务处理所需要使用的业务数据。
(2)步骤S204,预读请求收集模块104收集预定请求,并通知主控模块110。其中,使用预读请求收集模块104中的定时器1048来定时检测可测数据的预读请求,并将检测到的预读请求发送到预读请求收集模块104。
其中,预读请求收集模块104在接到预读请求后,将预读请求写入所预读请求收集模块104中的预读请求队列1042。
(3)步骤S206,主控模块110接收到数据预读请求,调用数据读取引擎106从物理设备中读取业务数据。
其中,主控模块110从预读请求队列模块1042中取出预读请求,使用统计单元112进行相关统计处理,并将得到的统计数据发送给主控模块110。
(4)步骤S208,判断读取操作是否成功,根据判断结果,主控模块110采取相应的操作。
其中,当判断读取操作成功时,还包括以下步骤主控模块110通过用户接口单元108中的预读成功的用户处理接口1082来完成用户指定操作;如果在步骤S208中判断读取操作不成功时,则包括以下步骤主控模块110根据来自配置单元102的配置信息决定是否通过用户接口单元108中的告警用户处理接口1084来告警。
如上所述的统计数据包括以下至少之一相同数据的预读请求次数;预读操作总次数;预读操作成功率;物理读取操作最大用时、最小用时、和平均用时;以及预读最大用时、最小用时、和平均用时。
图3是根据本发明的实施例的数据预读器的结构示意图。图4是根据本发明的实施例的预读请求收集模块的结构示意图。图5是根据本发明的实施例的用户接口单元的结构示意图。图6是根据本发明的实施例的数据处理方法的详细流程图。
以下将结合图3至图5详细描述图6过程。其中,包括以下步骤步骤S602,数据预读器300上电后进行初始化,并读配置设置;步骤S604,设置定时器406,以便定时检查可测数据的预读请求;步骤S606,预读请求收集模块312等待预读请求。在接收到预读请求后,将预读请求写入预读请求队列408,通知主控模块306进行下一步处理;步骤S608,主控模块306判断预读请求队列408是否为空,如果结果为“否”,则转步骤S606继续等待预读请求;如果结果为“是”,执行步骤S610;步骤S610,从预读请求队列408中取出一个预读请求,主控模块306调用数据读取引擎310读取数据;步骤S612,数据读取完毕后,主控模块306调用统计单元308进行相关统计;
步骤S614,预读结果处理单元502对预读结果进行处理,判断数据读取是否成功。如预读操作失败或没有找到业务数据,则表示预读失败,如果预读成功,则进入步骤S616,如果预读失败,则转到步骤S620;步骤S616,判断是否设置预读成功用户处理接口504,如未设置则转回步骤S606,如果已设置,则进入步骤S618;步骤S618,调用预读成功用户处理接口504,处理完成后转回步骤S606;步骤S620,判断是否设置告警用户处理接口506,如果要设置,则进入步骤S622;以及步骤S622,调用告警用户处理接口506,处理完成后转步骤S606;如果为未设置,则转步骤S606。
如图6所示,步骤S604还包括以下步骤步骤S624,定时器406到达;步骤S626,重新设置定时器406;步骤S628,判断是否设置可测数据预读收集用户接口404,如未设置则定时器406处理结束,如果已设置,则进入步骤S630;步骤S630,调用可测数据预读收集用户接口404收集可测数据预读信息;步骤S632,判断是否存在可测数据预读信息,如不存在,则定时器406处理结束,如果存在,进入步骤S634;
步骤S634,发预读信息通知预读请求收集模块312;以及最后,定时器406的处理结束。
通过以上本发明的描述,可以集中业务数据的读取处理,避免了I/O读取操作的阻塞业务处理,从而,有利于充分利用CPU资源,提高产品性能。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据预读器,其特征在于,包括配置单元,用于提供与所述数据预读器相关的配置信息;预读请求收集模块,用于根据来自所述配置单元的所述配置信息,接收并缓存来自用户的预读请求,并在接收到所述预读请求之后,向主控模块发出预读处理请求;数据读取引擎,连接到所述主控模块,用于为所述主控模块提供物理读取接口,并监控和维护业务数据的I/O读取;用户接口单元,连接到所述主控模块,通过所述配置单元来进行设置,用于为业务处理提供接口,并在所述预读数据完成后,完成用户指定的后续操作;以及所述主控模块,用于接收来自所述预读请求收集模块的所述预读处理请求,通过调用所述数据读取引擎从物理存储设备中读取数据。
2.根据权利要求1所述的数据预读器,其特征在于,还包括统计单元,连接到所述主控模块,用于收集并分析与所述数据预读器相关的统计数据,并提供给所述主控模块。
3.根据权利要求1所述的数据预读器,其特征在于,所述预读请求收集模块包括预读请求队列模块,用于暂存所述数据预读请求;预读请求用户接口,用于接收来自用户的所述预读请求,并将所述预读请求缓存到所述预读请求队列模块;可测数据预读收集用户接口,用于收集可测数据的预读请求;以及定时器,用于定时调用所述可测数据预读收集用户接口,来收集所述可测数据的预读请求,并将所述可测数据的预读请求缓存到所述预读请求队列模块。
4.根据权利要求1所述的数据预读器,其特征在于,所述用户接口单元包括预读成功用户处理接口,通过所述配置单元被设置,用于在预读成功后进行后续处;告警用户处理接口,通过所述配置单元被设置,用于在所述预读数据不存在或发生预读错误时,通过该接口向系统提交相关错误信息;以及预读结果处理单元,用于完成预读完成操作,并根据预读结果调用所述预读成功用户处理接口或所述告警用户处理接口。
5.一种使用数据预读器的数据读取方法,所述数据读取器包括配置单元、预读请求收集模块、数据读取引擎、用户接口单元、主控模块以及统计单元,其特征在于,所述数据读取方法包括以下步骤步骤S202,所述配置单元读取相关配置信息,并通过配置接口来接收所述相关配置信息和所述用户接口单元的处理配置;步骤S204,所述预读请求收集模块收集预定请求,并通知所述主控模块;步骤S206,所述主控模块接收到所述数据预读请求,调用所述数据读取引擎从物理设备中读取业务数据;以及步骤S208,判断读取操作是否成功,根据判断结果,所述主控模块采取相应的操作。
6.根据权利要求5所述的使用数据预读器的数据读取方法,其特征在于,还包括以下步骤使用所述统计单元进行相关统计处理,并将得到的统计数据发送给所述主控模块。
7.根据权利要求5所述的使用数据预读器的数据读取方法,其特征在于,在步骤S208中,当判断所述读取操作成功时,所述主控模块通过所述用户接口单元中的预读成功用户处理接口来完成用户指定操作;以及当判断所述读取操作不成功时,所述主控模块根据来自所述配置单元的配置信息决定是否通过所述用户接口单元中的告警用户处理接口来告警。
8.根据权利要求5所述的使用数据预读器的数据读取方法,其特征在于,还包括以下步骤使用所述预读请求收集模块中的定时器来定时检测可测数据的预读请求,并将检测到的所述预读请求发送到所述预读请求收集模块。
9.根据权利要求5所述的使用数据预读器的数据读取方法,其特征在于,还包括以下步骤所述预读请求收集模块在接收到所述预读请求后,将所述预读请求写入所述预读请求收集模块中的预读请求对列;以及所述主控模块从所述预读请求队列模块中取出预读请求。
10.根据权利要求5所述的使用数据预读器的数据读取方法,其特征在于,如果所述配置单元设置了所述预读请求收集模块中的可测数据预读收集用户接口,还包括以下步骤定时调用所述可测数据预读收集用户接口收集可测数据预读信息,并将所收集的所述可测数据预读信息发送给所述主控模块。
全文摘要
本发明提供了一种数据预读器,其包括以下装置配置单元,用于提供与数据预读器相关的配置信息;预读请求收集模块,用于根据来自配置单元的配置信息,接受并缓存来自用户的预读请求,并在接受到预读请求之后,向主控模块发出预读处理请求;数据读取引擎,连接到主控模块,用于为主控模块提供物理读取接口,并监控和维护业务数据的I/O读取;用户接口单元,连接到主控模块,通过配置单元来进行设置,用于为业务处理提供接口,并在预读数据完成后,完成用户指定的后续操作;以及主控模块,用于接受来自预读请求收集模块的预读处理请求,通过调用数据读取引擎从物理存储设备中读取数据。
文档编号G06F12/08GK1945551SQ20061013805
公开日2007年4月11日 申请日期2006年11月3日 优先权日2006年11月3日
发明者陈正光, 邢刚, 刘刚 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1