税收实时信息系统优化方法与流程

文档序号:12802225阅读:474来源:国知局
税收实时信息系统优化方法与流程

本发明涉及数据库的技术领域,尤其是指一种注重数据库缓存策略的税收实时信息系统优化方法。



背景技术:

时下基于java企业级应用系统的开发与使用已随处可见,对于提供大负载web服务的服务器来说,i/o处理能力很容易成为系统性能提升的瓶颈。调查证明,用户愿意等待网站反应的平均时间不足8秒。随着信息时代的到来,数据量成倍增长,如何在数据量、并发数大的情况下保证系统高效、稳定运行,已成为系统开发过程中不得不考虑的问题。

税收业务信息数据构成复杂,并且运行过程中信息的产生量相当大。在数据量多、并发性高、负载量大的情况下,对数据库的频繁操作是制约应用系统性能的一个重要因素。在保持并发性的条件下减少对数据库的操作频率,将会大大提高应用系统的响应速度,减轻数据库服务器的压力。由于hibernate(开放源代码的对象关系映射框架)做通用缓存时都是根据查询条件把对象缓存起来,只要数据记录发生一点变化(增加/删除/修改),该对象的缓存就会失效。在实时系统中,对象的数据可能被频繁修改,将导致缓存命中率低下,不但不能提高性能,还可能进一步降低系统运行效率。

税收实时信息系统中运行状态一天的数据量至少为28万条,数据量较大,如图1所示,数据是从ui(用户端)到web服务器(网站服务器)再到数据库,具体地,ui发出数据请求,所述web服务器接收数据请求并将所述数据请求发送至所述数据库,所述数据库将数据返回至所述web服务器,通过所述web服务器将数据返回至所述ui。随着时间的数据累积,所述数据在传输时会出现以下缺陷:(1)多用户同时查看同一税务机关时,将导致一条数据多次查询,影响系统性能;(2)数据读取时间长,导致页面响应慢。



技术实现要素:

为此,本发明所要解决的技术问题在于克服现有技术中系统运行效率低且命中率低从而提供一种可避免频繁操作数据库所引起的系统性能降低的问题同时可提高系统的实时性与稳定性的税收实时信息系统的优化方法。

为解决上述技术问题,本发明的一种税收实时信息系统优化方法,步骤s1:用户端发出数据请求;步骤s2:网站服务器接收所述数据请求,并判断缓存池中是否存在对应业务数据,若缓存池中存在对应业务数据,则查询缓存池,通过所述缓存池将数据返回至用户端;若缓存池中不存在对应业务数据,进入步骤s3;步骤s3:查询数据库,将所述数据库中对应的业务数据输入至所述缓存池中,通过所述缓存池将数据返回至用户端。

在本发明的一个实施例中,所述步骤s3中,通过所述数据库将业务数据输入至所述缓存池时,判断所述缓存池内的数据是否已满,若所述缓存池内的数据未满,则通过插入的方式将业务数据输入至所述缓存池,通过所述缓存池将数据返回至用户端;若所述缓存池内的数据已满,则通过替换策略将数据输入至所述缓存池内,替换所述缓存池中的缓存数据,再通过所述缓存池将数据返回至用户端。

在本发明的一个实施例中,所述替换策略是指lru算法、opt算法或者hybrid算法。

在本发明的一个实施例中,替换所述缓存池中的缓存数据时,替换数据请求发出后,若系统当前时间与缓存池中的缓存数据最近一次被访问时间的差值大于所述用户端发送数据请求的时间间隔,则利用所述lru算法替换出最早被访问过的缓存数据。

在本发明的一个实施例中,替换所述缓存池中的缓存数据时,替换数据请求发出后,若系统当前时间与缓存池中的缓存数据最近一次被访问时间的差值小于等于所述用户端发送数据请求的时间间隔,并且缓存池中的缓存数据最近两次被访问的时间间隔大于等于所述用户端发送数据请求的时间间隔,则利用所述opt算法替换出最近刚被访问过的缓存数据。

在本发明的一个实施例中,替换所述缓存池中的缓存数据时,替换数据请求发出后,若系统当前时间与缓存池中的缓存数据最近一次被访问时间的差值小于等于所述用户端发送数据请求的时间间隔,并且缓存池中的缓存数据最近两次被访问的时间间隔小于所述用户端发送数据请求的时间间隔,则利用所述hybrid算法替换出权值最小的缓存数据。

在本发明的一个实施例中,所述数据库中的数据实时或者周期性更新。

在本发明的一个实施例中,所述数据库中的数据更新后实时或周期性存入所述缓存池中。

在本发明的一个实施例中,所述缓存池中设有定时器,按照所述定时器设定的时间从数据库中更新自身缓存的数据。

在本发明的一个实施例中,所述缓存中的数据若在设定的时间内未被访问,则将所述数据从所述缓存中剔除,同时不再刷新数据;所述缓存中的数据若在设定的时间内被访问,则发出数据刷新请求,并将刷新后的数据存入所述数据库。

本发明的上述技术方案相比现有技术具有以下优点:

本发明所述税收实时信息系统优化方法中,为解决系统出现的性能问题结合了缓存技术,将用户频繁访问的数据存储于缓存中,利用缓存技术缩短了数据读取时间,减轻了数据服务器的负载,从而避免了频繁操作数据库所引起的系统性能降低的问题。

附图说明

为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中

图1是现有税收实时信息系统数据的传输流程图;

图2是本发明所述税收实时信息系统优化方法流程图;

图3是本发明所述缓存替换策略的流程图;

图4是本发明所述数据刷新的流程图。

具体实施方式

如图2所示,本实施例提供一种税收实时信息系统优化方法,其步骤如下:步骤s1:用户端发出数据请求;步骤s2:网站服务器接收所述数据请求,并判断缓存池中是否存在对应业务数据,若缓存池中存在对应业务数据,则查询缓存池,通过所述缓存池将数据返回至用户端;若缓存池中不存在对应业务数据,进入步骤s3;步骤s3:查询数据库,将所述数据库中对应的业务数据输入至所述缓存池中,通过所述缓存池将数据返回至用户端。

本实施例所述一种税收实时信息系统优化方法,所述步骤s1中,用户端发出数据请求,如数据查询请求;所述步骤s2中,网站服务器接收用户端的数据请求,并判断缓存池中是否存在对应业务数据,若缓存池中存在对应业务数据,则查询缓存池,通过所述缓存池将数据返回至用户端,完成数据的查询,由于本发明为解决系统出现的性能问题结合了缓存技术,将用户频繁访问的数据存储于缓存中,利用缓存技术缩短了数据读取时间,减轻了数据服务器的负载,从而避免了频繁操作数据库所引起的系统性能降低的问题;若缓存池中不存在所述业务数据,进入步骤s3,本步骤s2中,网站服务器接收到用户的数据请求后对缓存进行数据查询,根据缓存内的数据存储情况来决定是否进行数据库操作,以避免对数据库频繁操作造成系统资源的开销;所述步骤s3中,直接在数据库中查询数据,通过所述数据库将对应业务数据输入至所述缓存池中,通过所述缓存池将数据返回至用户端,由于数据从所述数据库读取后存储在缓存池中,因此同一数据可一次性从数据库读入,多次为用户读出,从而提高系统的实时性与稳定性。

本实施例中,所述步骤s3中,通过所述数据库将业务数据输入至所述缓存池时,判断所述缓存池内的数据是否已满,若所述缓存池内的数据未满,则通过插入的方式将业务数据输入至所述缓存池内,通过所述缓存池将业务数据返回至用户端,完成数据的查询;若所述缓存池内的数据已满,则通过替换策略将新数据输入至所述缓存池内,替换所述缓存池中的缓存数据,通过所述缓存池将数据返回至用户端,完成数据的查询。

上述方法中,理想情况是开辟一个足够大的内存空间来缓存所有待查询数据,由于经过计算,一条缓存需占用约14k内存,1000个业务大概只需14m的内存,一般性能的服务器完全能够满足该系统的缓存需求。但是若将来业务数目增多,缓存空间已满需要进行新数据插入时,就要用替换策略剔除缓存中的数据,并保证下一次数据请求仍具有较高的命中率,下面详细说明缓存池满时,新数据的替换策略。

所述替换策略是指lru算法(近期最少使用算法)、opt算法(最优算法)或者hybrid(混合)算法。其中所述lru算法是较为常用的替换算法,具体实现方式如下:利用访问时间t标识数据最近的访问情况,t大表示该数据最近刚被访问过,t小表示最近未被访问过,置换时替换t最小的数据。但对于实时系统,若总是替换t最小的数据有可能导致命中率极低,甚至接近于0,使缓存失去意义。例如:用户端每50s发送一次数据请求,假设有三个缓存空间,分别存有缓存数据a、b、c,访问时间t的情况是a<b<c。若新的数据d到来时,根据lru算法,将a替换出缓存,若访问a的页面未关闭,50s内a将首先再度被访问,替换出b;若访问b的页面未关闭,那么b将首先再度被访问,替换出c。如此反复,导致系统中缓存命中率低下。

如图3所示,替换所述缓存池中的缓存数据时,替换数据请求发出后,若系统当前时间与缓存池中的缓存数据最近一次被访问时间的差值大于所述用户端发送数据请求的时间间隔,则利用所述lru算法替换出最早被访问过的缓存数据,具体地,设now为系统当前时间,interval为最近两次访问时间间隔,若存有(1)类数据:now-t〉50s,即在最近50s内未被访问,接下来50s内很可能也不会被访问,因此优先替换该类数据,利用lru算法,替换掉最长时间未被访问的缓存数据,在释放空间的同时,提高了命中率。

替换所述缓存池中的缓存数据时,替换数据请求发出后,若系统当前时间与缓存池中的缓存数据最近一次被访问时间的差值小于等于所述用户端发送数据请求的时间间隔,并且最近缓存池中的缓存数据两次被访问的时间间隔大于等于所述用户端发送数据请求的时间间隔,则利用所述opt算法替换出最近刚被访问过的缓存数据。具体地,若存有(2)类数据:now-t≤50s&interval≥50s,那么接下来50s内很可能只会被访问一次,因此优先替换该类数据。只要页面未关闭,最近访问时间最晚的数据50s内一定最后被访问到,因此应利用opt算法替换访问时间t最大的缓存数据,在释放空间的同时,提高了命中率。

替换所述缓存池中的缓存数据时,替换数据请求发出后,若系统当前时间与缓存池中的缓存数据最近一次被访问时间的差值小于等于所述用户端发送数据请求的时间间隔,并且缓存池中的缓存数据最近两次被访问的时间间隔小于所述用户端发送数据请求的时间间隔,则利用所述hybrid算法替换出权值最小的缓存数据。具体地,若存有(3)类数据:now-t≤50s&interval<50s,由于访问时间间隔都小于50s,说明访问频繁,单纯考虑访问时间意义不大,因此利用hybrid算法,替换出权值(指标在整个分析过程中所占的重要程度)最小的缓存数据,在释放空间的同时,提高了命中率。

上述针对实时系统的替换策略中,考虑了实时系统特点、对象大小、访问代价、存在时间、访问频率等条件,不但可以提升系统性能,而且所述替换策略具有较高的命中率。

如图4所示,本实施例中,数据刷新是保证数据实时性的重要前提,所述数据库中的数据实时或者周期性更新。具体地,所述数据库中的数据更新后实时或周期性存入所述缓存数据中,所述缓存数据根据时间更新,如页面要求每50s更新一次数据,因此缓存中的数据也需要每50s更新一次。所述缓存中设有定时器,且每个缓存添加一个定时器,按照时间从数据库中更新自身缓存的数据,如每50s从数据库中更新自身缓存的数据。所述缓存中的数据若在设定的时间内未被访问,则将所述数据从所述缓存中剔除,同时不再刷新数据,所述缓存中的数据若在设定的时间内被访问,则发出数据刷新请求,并将新数据存入所述数据库中。具体地,如缓存中的数据3分钟内未被访问,则将所述数据从所述缓存中剔除,以释放内存空间,同时不再刷新数据,减轻数据库压力;若缓存中的数据3分钟内被访问,则发出数据刷新请求,并将刷新后的数据存入所述数据库中,从而可以一次性从数据库读入,多次为用户读出,从而提高系统的实时性与稳定性,并提高命中率。

综上,本发明所述技术方案具有以下优点:

1.本发明所述一种税收实时信息系统优化方法,所述步骤s1中,用户端发出数据请求,如数据查询请求;所述步骤s2中,网站服务器接收用户端的数据请求,并判断缓存池中是否存在对应业务数据,若缓存池中存在对应业务数据,则查询缓存池,通过所述缓存池将数据返回至用户端,完成数据的查询,由于本发明为解决系统出现的性能问题结合了缓存技术,将用户频繁访问的数据存储于缓存中,利用缓存技术缩短了数据读取时间,减轻了数据服务器的负载,从而避免了频繁操作数据库所引起的系统性能降低的问题;若缓存池中不存在所述业务数据,进入步骤s3,本步骤s2中,网站服务器接收到用户的数据请求后利用缓存进行数据查询,根据缓存内的数据存储情况来决定是否进行数据库操作,以避免对数据库频繁操作造成系统资源的开销;所述步骤s3中,直接在数据库中查询数据,通过所述数据库将数据输入至所述缓存池中,通过所述缓存池将数据返回至用户端,由于数据从所述数据库读取后存储在缓存池中,因此同一数据可一次性从数据库读入,多次为用户读出,从而提高系统的实时性与稳定性。

2.本发明所述一种新的针对实时系统的替换策略,考虑了实时系统特点、对象大小、访问代价、存在时间、访问频率等条件,不但可以提升系统性能,而且所述替换策略具有较高的命中率。

显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1