公开/公告号CN106339253A
专利类型发明专利
公开/公告日2017-01-18
原文格式PDF
申请/专利权人 阿里巴巴集团控股有限公司;
申请/专利号CN201510390902.5
发明设计人 潘寒冰;
申请日2015-07-06
分类号G06F9/48;
代理机构北京润泽恒知识产权代理有限公司;
代理人苏培华
地址 英属开曼群岛大开曼资本大厦一座四层847号邮箱
入库时间 2023-06-19 01:24:14
法律状态公告日
法律状态信息
法律状态
2019-12-10
授权
授权
2017-02-15
实质审查的生效 IPC(主分类):G06F9/48 申请日:20150706
实质审查的生效
2017-01-18
公开
公开
技术领域
本申请涉及信息技术领域,尤其涉及一种系统间进行数据调用的方法及其装置。
背景技术
在通常的业务操作过程中,上层调用系统对于底层数据(basedata)系统存在大量的数据依赖。而底层数据存在随时变更的可能性,如果在每次业务操作过程中都实时调用底层数据,一次业务完成通常需要调用超过100次的底层数据。虽然底层数据针对常用数据有做缓存,但是对于网络消耗、客户响应度以及系统间负荷都会带来较大的影响。例如,普通的一次网络交互耗时2ms,每次业务操作过程调用超过100次的底层数据,需要耗时200ms以上的时间。并且,上层调用系统在等待返回底层数据的过程中,因大量的等待线程,造成频繁的CPU上下文切换,降低了各类应用的并发性能。
为改进上述技术缺陷,通常将上层调用系统所需的底层数据加载到其本地内存,上层调用系统仅在初次启动时以及底层数据变更后,进行底层数据的获取。参见图1,当底层数据发生变更时,底层数据系统A发送消息,上层调用系统B监听到所述消息后,重新调用底层数据系统A获取最新的数据并缓存到上层调用系统B本地内存中。但是,当上层调用系统有多个,且对于底层数据系统所依赖的底层数据不相同时,当有些上层业务系统即便应用不到的发生变化的底层数据,也接收到上层调用系统发送的消息,不得不重新获取数据。
发明内容
有鉴于此,本申请提供一种系统间进行数据调用的方法及其装置,其无需对底层数据进行摘要,减少了系统间进行数据交互的耗时。
本申请提供一种系统间进行数据调用的方法,应用于底层数据系统,所述方法包括:
根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的变更特征;
将查询获得的数据库表的变更特征发送给所述上层调用系统;
接收所述上层调用系统返回的其本地保存的数据库表的变更特征与接收的数据库表的变更特征的比对结果;
如所述比对结果为不一致,则将所涉及的数据库表数据发送至所述上层调用系统。
在本申请一具体实现中,所述根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的变更特征之前还包括:
如修改底层数据,保存或者更新数据库表的最后修改时间;
所述数据库表的变更特征包括:数据库表的记录数和最后修改时间。
在本申请一具体实现中,所述方法还包括:
如所述比对结果为一致,则无需发送数据至所述上层调用系统。
本申请还提供一种检测数据变更的方法,应用于上层调用系统,所述方法包括:
发起数据摘要获取请求至底层数据系统,令所述底层数据系统查询所涉及的每个数据库表的变更特征;
接收所述底层数据系统查询获得的数据库表的变更特征;
将本地保存的数据库表的变更特征与接收的数据库表的变更特征进行比对,并发送比对结果至所述底层数据系统;
如比对结果为不一致,则接收所述底层数据系统发送的所涉及的数据库表数据。
在本申请一具体实现中,所述数据库表的变更特征包括:数据库表的记录数和最后修改时间。
对应于上述方法,本申请还提供一种系统间进行数据调用的装置,应用于底层数据系统,所述装置包括:
特征查询模块,用于根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的变更特征;
特征发送模块,用于将查询获得的数据库表的变更特征发送给所述上层调用系统;
结果接收模块,用于接收所述上层调用系统返回的其本地保存的数据库表的变更特征与接收的数据库表的变更特征的比对结果;
数据发送模块,用于当所述比对结果为不一致,则将所涉及的数据库表数据发送至所述上层调用系统。
在本申请一具体实现中,所述装置还包括:
修改保存模块,用于当如修改底层数据,保存或者更新数据库表的最后修改时间;
所述数据库表的变更特征包括:数据库表的记录数和最后修改时间。
在本申请一具体实现中,所述装置还包括:
数据禁止模块,用于当所述比对结果为一致,则无需发送数据至所述上层调用系统。
本申请还提供一种检测数据变更的装置,应用于上层调用系统,所述装置包括:
请求发送模块,用于发起数据摘要获取请求至底层数据系统,令所述底层数据系统查询所涉及的每个数据库表的变更特征。
特征接收模块,用于接收所述底层数据系统查询获得的数据库表的变更特征。
结果发送模块,用于将本地保存的数据库表的变更特征与接收的数据库表的变更特征进行比对,并发送比对结果至所述底层数据系统。
数据接收模块,用于当比对结果为不一致,则接收所述底层数据系统发送的所涉及的数据库表数据。
在本申请一具体实现中,所述数据库表的变更特征包括:数据库表的记录数和最后修改时间。
由以上技术方案可见,本申请底层数据系统根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的变更特征,无需进行数据摘要,避免了数据摘要对高并发高性能的系统所带来的瓶颈。本申请上层调用系统将其本地保存的数据库表的变更特征与接收的数据库表的变更特征进行比对。如所述比对结果为不一致,则表示底层数据发生变化,将所涉及的数据库表数据发送至所述上层调用系统,提升了系统的响应时间,减少网络I/O消耗与CPU的上下文切换。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是现有技术应用场景的数据交互示意图;
图2是本申请底层数据系统所应用分布式服务器的硬件结构图;
图3是本申请系统间进行数据调用的方法一实施例的流程图;
图4是本申请系统间进行数据调用的方法另一实施例的流程图;
图5是本申请系统间进行数据调用的方法再一实施例的流程图;
图6是本申请上层调用系统所应用分布式服务器的硬件结构图;
图7是本申请系统间进行数据调用的方法一实施例的流程图;
图8是本申请系统间进行数据调用的方法另一实施例的流程图;
图9是本申请系统间进行数据调用的装置一实施例的结构图;
图10是本申请系统间进行数据调用的装置另一实施例的结构图;
图11是本申请系统间进行数据调用的装置再一实施例的结构图;
图12是本申请系统间进行数据调用的装置再一实施例的流程图;
图13是本申请系统间进行数据调用的一应用场景的数据交互示意图。
具体实施方式
由于在每次业务操作过程中都需要多次实时调用底层数据,有些上层业务系统即便应用不到发生变化的底层数据,也接收到上层调用系统发送的消息,不得不重新获取底层数据。当上层业务系统B调用底层数据系统A,发起业务调用之前,先将所用到的数据库表都传递到底层数据系统A。由底层数据系统A将涉及的数据库表做一次数据摘要,即将数据库表汇总成一个简单的值,上层业务系统B可通过比对当前值和历史值的变化确定数据是否发生变化。具体地,上层业务系统B根据底层数据系统A返回的数据摘要和本地内存中保存的本地数据摘要进行匹配,如果两者匹配,则不再重复获取数据,否则,就重复获取数据。但是,数据摘要通常为将涉及的数据库表的所有记录查询出来,采用MD5等算法获得一个数值。数据摘要的获取对于要求高并发、高性能的系统来说,会带来瓶颈。
本申请底层数据系统根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的变更特征,无需进行数据摘要,避免了数据摘要对高并发高性能的系统所带来的瓶颈。本申请上层调用系统将其本地保存的数据库表的变更特征与接收的数据库表的变更特征进行比对。如所述比对结果为不一致,则表示底层数据发生变化,将所涉及的数据库表数据发送至所述上层调用系统,提升了系统的响应时间,减少网络I/O消耗与CPU的上下文切换。
当然,实施本申请的任一技术方案并不一定需要同时达到以上所述的所有优点。
为了使本领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请提供一种系统间进行数据调用的方法,应用于底层数据系统。本申请底层数据系统在硬件结构上可以为分布式服务器,参看图2,分布式服务器2的硬件结构包括控制器21、存储器22以及其他硬件23。
参看图3,本申请一实施例所述方法3包括:
S1、根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的变更特征。
具体地,上层调用系统定期发送数据摘要获取请求至底层数据系统,将所涉及的数据库表以数组的形式传递。底层数据系统接收到所述数据摘要获取请求后,并不对数据摘要获取请求所涉及的数据库表汇总成数据摘要。本实施例的底层数据系统仅查询数据摘要获取请求所涉及的数据库表的变更特征。
由于将数据摘要获取请求所涉及的数据库表汇总成数据摘要,对高并发高性能的系统来说,会带来瓶颈。而本实施例查询数据摘要获取请求所涉及的数据库表的变更特征,减少了进行数据摘要的时间,并且避免了数据摘要对高并发高性能的系统所带来的瓶颈。
S2、将查询获得的数据库表的变更特征发送给所述上层调用系统。
在本申请一具体实现中,本实施例将查询数据摘要获取请求所涉及的数据库表的变更特征发送给所述发出查询数据摘要获取请求的上层调用系统。
S3、接收所述上层调用系统返回的其本地保存的数据库表的变更特征与接收的数据库表的变更特征的比对结果。
上层调用系统接收到数据库表的变更特征后,将其本地保存的数据库表的变更特征与接收的变更特征进行比对。上层调用系统将比对的结果发送至底层数据系统。
S4、如所述比对结果为不一致,则将所涉及的数据库表数据发送至所述上层调用系统。
如果上层调用系统发送的比对的结果为不一致,则表明底层数据系统的数据发生了变化,上层调用系统需要重新获取底层数据系统的数据。底层数据系统将所涉及的数据库表数据发送至所述上层调用系统。上层调用系统获得底层数据系统发送的更新的数据。
在本申请另一具体实现中,参看图4,所述方法4包括:
S0、如修改底层数据,保存或者更新数据库表的最后修改时间。
所述数据库表的变更特征包括:数据库表的记录数和最后修改时间。
具体地,底层数据系统修改某一底层数据,则会同步修改其数据库表,如果历史记录中未保存其数据库表的最后修改时间,则本次修改底层数据后,保存其数据库表的最后修改时间。底层数据系统修改某一底层数据,如果历史记录中保存了其数据库表的最后修改时间,则本次修改底层数据后,更新所述数据库表的最后修改时间。
由于本申请根据底层数据的修改,保存或者更新了其数据库表的最后修改时间,因此将数据库表的记录数和最后修改时间作为数据库表的变更特征,作为判断底层数据是否发生变化的依据。
S1‘、根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的记录数和最后修改时间。
具体地,上层调用系统定期发送数据摘要获取请求至底层数据系统,将所涉及的数据库表以数组的形式传递。底层数据系统接收到所述数据摘要获取请求后,并不对数据摘要获取请求所涉及的数据库表汇总成数据摘要。本实施例的底层数据系统仅查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间。
由于将数据摘要获取请求所涉及的数据库表汇总成数据摘要,对高并发高性能的系统来说,会带来瓶颈。而本实施例仅查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间,减少了进行数据摘要的时间,并且避免了数据摘要对高并发高性能的系统所带来的瓶颈。
S2‘、将查询获得的数据库表的记录数和最后修改时间发送给所述上层调用系统。
在本申请一具体实现中,本实施例将查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间发送给所述发出查询数据摘要获取请求的上层调用系统。
S3‘、接收所述上层调用系统返回的其本地保存的数据库表的记录数和最后修改时间与接收的数据库表的记录数和最后修改时间的比对结果。
上层调用系统接收到数据库表的记录数和最后修改时间后,将其本地保存的数据库表的记录数和最后修改时间与接收的记录数和最后修改时间进行比对。上层调用系统将比对的结果发送至底层数据系统。
S4‘、如所述比对结果为不一致,则将所涉及的数据库表数据发送至所述上层调用系统。
如果上层调用系统发送的比对的结果为不一致,则表明底层数据系统的数据发生了变化,上层调用系统需要重新获取底层数据系统的数据。底层数据系统将所涉及的数据库表数据发送至所述上层调用系统。上层调用系统获得底层数据系统发送的更新的数据。
本实施例上层调用系统通过比对底层数据系统发送的数据库表的记录数和最后修改时间以及本地存储的数据库表的记录数和最后修改时间,从而确定底层数据系统的数据是否发生变化。本实施例的操作简单,避免了系统间的网络消耗和负荷,提高了客户响应度。
在本申请另一具体实现中,参看图5,所述方法5包括上述步骤S1——S4外,还包括步骤:
S5、如所述比对结果为一致,则无需发送数据至所述上层调用系统。
如果上层调用系统发送的比对的结果为不一致,则表明底层数据系统的数据并未发生变化,上层调用系统无需重新获取底层数据系统的数据。底层数据系统无需发送数据至所述上层调用系统,减少上层调用系统与底层数据系统的数据交互,提升系统的响应时间,减少网络I/O消耗,减少CPU的上下文切换。
本申请还提供一种系统间进行数据调用的方法,应用于上层调用系统。本申请上层调用系统在硬件结构上可以为分布式服务器,参看图6,分布式服务器6的硬件结构包括控制器61、存储器62以及其他硬件653。
参看图7,本申请所述方法7包括:
P1、发起数据摘要获取请求至底层数据系统,令所述底层数据系统查询所涉及的每个数据库表的变更特征。
具体地,上层调用系统定期发送数据摘要获取请求至底层数据系统,将所涉及的数据库表以数组的形式传递。底层数据系统接收到所述数据摘要获取请求后,并不对数据摘要获取请求所涉及的数据库表汇总成数据摘要。本实施例的底层数据系统仅查询数据摘要获取请求所涉及的数据库表的变更特征。
由于将数据摘要获取请求所涉及的数据库表汇总成数据摘要,对高并发高性能的系统来说,会带来瓶颈。而本实施例仅查询数据摘要获取请求所涉及的数据库表的变更特征,减少了进行数据摘要的时间,并且避免了数据摘要对高并发高性能的系统所带来的瓶颈。
P2、接收所述底层数据系统查询获得的数据库表的变更特征。
在本申请一具体实现中,本实施例将查询数据摘要获取请求所涉及的数据库表的变更特征发送给所述发出查询数据摘要获取请求的上层调用系统。
P3、将本地保存的数据库表的变更特征与接收的数据库表的变更特征进行比对,并发送比对结果至所述底层数据系统。
上层调用系统接收到数据库表的变更特征后,将其本地保存的数据库表的变更特征与接收的变更特征进行比对。如果上层调用系统获得的比对的结果为不一致,则表明底层数据系统的数据发生了变化,否则,表明底层数据系统的数据并未发生变化。上层调用系统将比对的结果发送至底层数据系统。
P4、如比对结果为不一致,则接收所述底层数据系统发送的所涉及的数据库表数据。
如果上层调用系统获得的比对的结果为不一致,即底层数据系统的数据发生了变化,底层数据系统发送所涉及的数据库表数据至上层调用系统。上层调用系统接收底层数据系统发送的所涉及的数据库表数据。
具体地,所述上层调用系统一次性获取底层数据系统发送的所涉及的数据库表数据,而后根据所述数据库表数据获取各底层数据。
如果上层调用系统获得的比对的结果为一致,即底层数据系统的数据并未发生变化,底层数据系统不再发送数据至上层调用系统。从而,减少上层调用系统与底层数据系统的数据交互,提升系统的响应时间,减少网络I/O消耗,减少CPU的上下文切换。
在本申请另一具体实现中,所述数据库表的变更特征包括:数据库表的记录数和最后修改时间。
参看图8,本申请所述方法8包括:
P1’、发起数据摘要获取请求至底层数据系统,令所述底层数据系统查询所涉及的每个数据库表的记录数和最后修改时间。
具体地,上层调用系统定期发送数据摘要获取请求至底层数据系统,将所涉及的数据库表以数组的形式传递。底层数据系统接收到所述数据摘要获取请求后,并不对数据摘要获取请求所涉及的数据库表汇总成数据摘要。本实施例的底层数据系统仅查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间。
由于将数据摘要获取请求所涉及的数据库表汇总成数据摘要,对高并发高性能的系统来说,会带来瓶颈。而本实施例仅查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间,减少了进行数据摘要的时间,并且避免了数据摘要对高并发高性能的系统所带来的瓶颈。
P2’、接收所述底层数据系统查询获得的数据库表的记录数和最后修改时间。
在本申请一具体实现中,本实施例将查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间发送给所述发出查询数据摘要获取请求的上层调用系统。
P3’、将本地保存的数据库表的记录数和最后修改时间与接收的数据库表的记录数和最后修改时间进行比对,并发送比对结果至所述底层数据系统。
上层调用系统接收到数据库表的记录数和最后修改时间后,将其本地保存的数据库表的记录数和最后修改时间与接收的记录数和最后修改时间进行比对。如果上层调用系统获得的比对的结果为不一致,则表明底层数据系统的数据发生了变化,否则,表明底层数据系统的数据并未发生变化。上层调用系统将比对的结果发送至底层数据系统。
P4’、如比对结果为不一致,则接收所述底层数据系统发送的所涉及的数据库表数据。
如果上层调用系统获得的比对的结果为不一致,即底层数据系统的数据发生了变化,底层数据系统发送所涉及的数据库表数据至上层调用系统。上层调用系统接收底层数据系统发送的所涉及的数据库表数据。
具体地,所述上层调用系统一次性获取底层数据系统发送的所涉及的数据库表数据,而后根据所述数据库表数据获取各底层数据。
如果上层调用系统获得的比对的结果为一致,即底层数据系统的数据并未发生变化,底层数据系统不再发送数据至上层调用系统。从而,减少上层调用系统与底层数据系统的数据交互,提升系统的响应时间,减少网络I/O消耗,减少CPU的上下文切换。
本实施例上层调用系统通过比对底层数据系统发送的数据库表的记录数和最后修改时间以及本地存储的数据库表的记录数和最后修改时间,从而确定底层数据系统的数据是否发生变化。本实施例的操作简单,避免了系统间的网络消耗和负荷,提高了客户响应度。
对应于上述方法,本申请还提供一种系统间进行数据调用的装置,应用于底层数据系统。本申请底层数据系统在硬件结构上可以为分布式服务器,参看图1,分布式服务器1的硬件结构包括控制器11、存储器12以及其他硬件13。
参看图9,本申请一实施例所述装置9包括:
特征查询模块91,用于根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的变更特征。
特征发送模块92,用于将查询获得的数据库表的变更特征发送给所述上层调用系统。
结果接收模块93,用于接收所述上层调用系统返回的其本地保存的数据库表的变更特征与接收的数据库表的变更特征的比对结果。
数据发送模块94,用于当所述比对结果为不一致,则将所涉及的数据库表数据发送至所述上层调用系统。
具体地,上层调用系统定期发送数据摘要获取请求至底层数据系统,将所涉及的数据库表以数组的形式传递。底层数据系统接收到所述数据摘要获取请求后,并不对数据摘要获取请求所涉及的数据库表汇总成数据摘要。本实施例的底层数据系统仅查询数据摘要获取请求所涉及的数据库表的变更特征。
由于将数据摘要获取请求所涉及的数据库表汇总成数据摘要,对高并发高性能的系统来说,会带来瓶颈。而本实施例仅查询数据摘要获取请求所涉及的数据库表的变更特征,减少了进行数据摘要的时间,并且避免了数据摘要对高并发高性能的系统所带来的瓶颈。
在本申请一具体实现中,本实施例将查询数据摘要获取请求所涉及的数据库表的变更特征发送给所述发出查询数据摘要获取请求的上层调用系统。
上层调用系统接收到数据库表的变更特征后,将其本地保存的数据库表的变更特征与接收的变更特征进行比对。上层调用系统将比对的结果发送至底层数据系统。
如果上层调用系统发送的比对的结果为不一致,则表明底层数据系统的数据发生了变化,上层调用系统需要重新获取底层数据系统的数据。底层数据系统将所涉及的数据库表数据发送至所述上层调用系统。上层调用系统获得底层数据系统发送的更新的数据。
在本申请另一具体实现中,参看图10,所述装置10还包括:
修改保存模块100,用于当修改底层数据,保存或者更新数据库表的最后修改时间。
所述数据库表的变更特征包括:数据库表的记录数和最后修改时间。
具体地,底层数据系统修改某一底层数据,则会同步修改其数据库表,如果历史记录中未保存其数据库表的最后修改时间,则本次修改底层数据后,保存其数据库表的最后修改时间。底层数据系统修改某一底层数据,如果历史记录中保存了其数据库表的最后修改时间,则本次修改底层数据后,更新所述数据库表的最后修改时间。
由于本申请根据底层数据的修改,保存或者更新了其数据库表的最后修改时间作为,因此将数据库表的记录数和最后修改时间作为数据库表的变更特征,作为判断底层数据是否发生变化的依据。
特征查询模块101,具体用于根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的记录数和最后修改时间。
特征发送模块102,具体用于将查询获得的数据库表的记录数和最后修改时间发送给所述上层调用系统。
结果接收模块103,具体用于接收所述上层调用系统返回的其本地保存的数据库表的记录数和最后修改时间与接收的数据库表的记录数和最后修改时间的比对结果。
数据发送模块104,具体用于当所述比对结果为不一致,则将所涉及的数据库表数据发送至所述上层调用系统。
具体地,上层调用系统定期发送数据摘要获取请求至底层数据系统,将所涉及的数据库表以数组的形式传递。底层数据系统接收到所述数据摘要获取请求后,并不对数据摘要获取请求所涉及的数据库表汇总成数据摘要。本实施例的底层数据系统仅查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间。
由于将数据摘要获取请求所涉及的数据库表汇总成数据摘要,对高并发高性能的系统来说,会带来瓶颈。而本实施例仅查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间,减少了进行数据摘要的时间,并且避免了数据摘要对高并发高性能的系统所带来的瓶颈。
在本申请一具体实现中,本实施例将查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间发送给所述发出查询数据摘要获取请求的上层调用系统。
上层调用系统接收到数据库表的记录数和最后修改时间后,将其本地保存的数据库表的记录数和最后修改时间与接收的记录数和最后修改时间进行比对。上层调用系统将比对的结果发送至底层数据系统。
如果上层调用系统发送的比对的结果为不一致,则表明底层数据系统的数据发生了变化,上层调用系统需要重新获取底层数据系统的数据。底层数据系统将所涉及的数据库表数据发送至所述上层调用系统。上层调用系统获得底层数据系统发送的更新的数据。
本实施例上层调用系统通过比对底层数据系统发送的数据库表的记录数和最后修改时间以及本地存储的数据库表的记录数和最后修改时间,从而确定底层数据系统的数据是否发生变化。本实施例的操作简单,避免了系统间的网络消耗和负荷,提高了客户响应度。
在本申请另一具体实现中,参看图11,所述装置11包括特征查询模块91、特征发送模块92、结果接收模块93、数据发送模块94外,还包括:
数据禁止模块95,用于当所述比对结果为一致,则无需发送数据至所述上层调用系统。
如果上层调用系统发送的比对的结果为不一致,则表明底层数据系统的数据并未发生变化,上层调用系统无需重新获取底层数据系统的数据。底层数据系统无需发送数据至所述上层调用系统,减少上层调用系统与底层数据系统的数据交互,提升系统的响应时间,减少网络I/O消耗,减少CPU的上下文切换。
本申请还提供一种系统间进行数据调用的装置,应用于上层调用系统。本申请上层调用系统在硬件结构上可以为分布式服务器,参看图6,分布式服务器6的硬件结构包括控制器61、存储器62以及其他硬件653。
参看图12,本申请所述装置12包括:
请求发送模块121,用于发起数据摘要获取请求至底层数据系统,令所述底层数据系统查询所涉及的每个数据库表的变更特征。
特征接收模块122,用于接收所述底层数据系统查询获得的数据库表的变更特征。
结果发送模块123,用于将本地保存的数据库表的变更特征与接收的数据库表的变更特征进行比对,并发送比对结果至所述底层数据系统。
数据接收模块124,用于当比对结果为不一致,则接收所述底层数据系统发送的所涉及的数据库表数据。
具体地,上层调用系统定期发送数据摘要获取请求至底层数据系统,将所涉及的数据库表以数组的形式传递。底层数据系统接收到所述数据摘要获取请求后,并不对数据摘要获取请求所涉及的数据库表汇总成数据摘要。本实施例的底层数据系统仅查询数据摘要获取请求所涉及的数据库表的变更特征。
由于将数据摘要获取请求所涉及的数据库表汇总成数据摘要,对高并发高性能的系统来说,会带来瓶颈。而本实施例仅查询数据摘要获取请求所涉及的数据库表的变更特征,减少了进行数据摘要的时间,并且避免了数据摘要对高并发高性能的系统所带来的瓶颈。
在本申请一具体实现中,本实施例将查询数据摘要获取请求所涉及的数据库表的变更特征发送给所述发出查询数据摘要获取请求的上层调用系统。
上层调用系统接收到数据库表的变更特征后,将其本地保存的变更特征与接收的变更特征进行比对。如果上层调用系统获得的比对的结果为不一致,则表明底层数据系统的数据发生了变化,否则,表明底层数据系统的数据并未发生变化。上层调用系统将比对的结果发送至底层数据系统。
如果上层调用系统获得的比对的结果为不一致,即底层数据系统的数据发生了变化,底层数据系统发送所涉及的数据库表数据至上层调用系统。上层调用系统接收底层数据系统发送的所涉及的数据库表数据。
具体地,所述上层调用系统一次性获取底层数据系统发送的所涉及的数据库表数据,而后根据所述数据库表数据获取各底层数据。
如果上层调用系统获得的比对的结果为一致,即底层数据系统的数据并未发生变化,底层数据系统不再发送数据至上层调用系统。从而,减少上层调用系统与底层数据系统的数据交互,提升系统的响应时间,减少网络I/O消耗,减少CPU的上下文切换。
在本申请另一具体实现中,所述数据库表的变更特征包括:数据库表的记录数和最后修改时间。
本申请所述装置包括:
请求发送模块121,具体用于发起数据摘要获取请求至底层数据系统,令所述底层数据系统查询所涉及的每个数据库表的记录数和最后修改时间。
特征接收模块122,具体用于接收所述底层数据系统查询获得的数据库表的记录数和最后修改时间。
结果发送模块123,具体用于将本地保存的数据库表的记录数和最后修改时间与接收的数据库表的记录数和最后修改时间进行比对,并发送比对结果至所述底层数据系统。
数据接收模块124,具体用于如比对结果为不一致,则接收所述底层数据系统发送的所涉及的数据库表数据。
具体地,上层调用系统定期发送数据摘要获取请求至底层数据系统,将所涉及的数据库表以数组的形式传递。底层数据系统接收到所述数据摘要获取请求后,并不对数据摘要获取请求所涉及的数据库表汇总成数据摘要。本实施例的底层数据系统仅查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间。
由于将数据摘要获取请求所涉及的数据库表汇总成数据摘要,对高并发高性能的系统来说,会带来瓶颈。而本实施例仅查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间,减少了进行数据摘要的时间,并且避免了数据摘要对高并发高性能的系统所带来的瓶颈。
在本申请一具体实现中,本实施例将查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间发送给所述发出查询数据摘要获取请求的上层调用系统。
上层调用系统接收到数据库表的记录数和最后修改时间后,将其本地保存的记录数和最后修改时间与接收的记录数和最后修改时间进行比对。如果上层调用系统获得的比对的结果为不一致,则表明底层数据系统的数据发生了变化,否则,表明底层数据系统的数据并未发生变化。上层调用系统将比对的结果发送至底层数据系统。
如果上层调用系统获得的比对的结果为不一致,即底层数据系统的数据发生了变化,底层数据系统发送所涉及的数据库表数据至上层调用系统。上层调用系统接收底层数据系统发送的所涉及的数据库表数据。
具体地,所述上层调用系统一次性获取底层数据系统发送的所涉及的数据库表数据,而后根据所述数据库表数据获取各底层数据。
如果上层调用系统获得的比对的结果为一致,即底层数据系统的数据并未发生变化,底层数据系统不再发送数据至上层调用系统。从而,减少上层调用系统与底层数据系统的数据交互,提升系统的响应时间,减少网络I/O消耗,减少CPU的上下文切换。
本实施例上层调用系统通过比对底层数据系统发送的数据库表的记录数和最后修改时间以及本地存储的数据库表的记录数和最后修改时间,从而确定底层数据系统的数据是否发生变化。本实施例的操作简单,避免了系统间的网络消耗和负荷,提高了客户响应度。
下面通过本申请实施例的一具体应用场景来进一步说明本申请实现。
参看图13,上层调用系统和底层数据系统的数据传递流程如下:
①底层数据系统修改底层数据,保存或者更新数据库表的最后修改时间。
具体地,底层数据系统修改某一底层数据,如果未保存数据库表的最后修改时间,则保存所述数据库表的最后修改时间。底层数据系统修改某一底层数据,如果保存数据库表的最后修改时间,则更新所述数据库表的最后修改时间。
②上层调用系统发送的数据摘要获取请求至底层数据系统。
③底层数据系统根据上层调用系统发送的数据摘要获取请求,查询所涉及的每个数据库表的记录数和最后修改时间。
由于将数据摘要获取请求所涉及的数据库表汇总成数据摘要,对高并发高性能的系统来说,会带来瓶颈。而本实施例仅查询数据摘要获取请求所涉及的数据库表的记录数和最后修改时间,减少了进行数据摘要的时间,并且避免了数据摘要对高并发高性能的系统所带来的瓶颈。
④底层数据系统将查询获得的数据库表的记录数和最后修改时间发送给所述上层调用系统。
记录数和最后修改时间可以为伪代码和返回值。
伪代码:
select 1id,count(1)size,max(gmt_modified)max_gmt_modified fromt_basedata_table1
union
select 2id,count(1)size,max(gmt_modified)max_gmt_modified fromt_basedata_table2
...
union
select n id,count(1)size,max(gmt_modified)max_gmt_modified fromt_basedata_tablen
返回值:
1,100,2015-02-14T22:17:13.612+0800
2,150,2015-02-14T22:18:13.612+0800
…
n,100,2015-02-14T22:57:13.612+0800
⑤上层调用系统将其本地保存的数据库表的记录数和最后修改时间与接收的数据库表的记录数和最后修改时间进行比对。
⑥上层调用系统将比对的结果发送至底层数据系统。
⑦如所述比对结果为不一致,底层数据系统将所涉及的数据库表数据发送至所述上层调用系统。
如果上层调用系统发送的比对的结果为不一致,则表明底层数据系统的数据发生了变化,上层调用系统需要重新获取底层数据系统的数据。底层数据系统将所涉及的数据库表数据发送至所述上层调用系统。上层调用系统获得底层数据系统发送的更新的数据。
⑧上层调用系统根据底层数据系统发送的数据库表数据,获取各底层数据。
本申请上层调用系统通过比对底层数据系统发送的数据库表的记录数和最后修改时间以及本地存储的数据库表的记录数和最后修改时间,从而确定底层数据系统的数据是否发生变化。本申请操作简单,避免了系统间的网络消耗和负荷,提高了客户响应度。
假定上层调用系统每次业务操作需要调用底层数据系统100次,每次返回一条记录,0.1KB,所涉及的数据库表为10张。在底层数据系统所涉及的数据库表为发生变化的情况下,每次业务操作的时间消耗从200ms提升到4.5ms。网络消耗由0.1KB*100次=10KB,减少到36B*10张表=0.36KB。
此外,如果上层调用系统发送的比对的结果为不一致,则表明底层数据系统的数据并未发生变化,上层调用系统无需重新获取底层数据系统的数据。底层数据系统无需发送数据至所述上层调用系统,减少上层调用系统与底层数据系统的数据交互,提升系统的响应时间,减少网络I/O消耗,减少CPU的上下文切换。
本申请的实施例所提供的装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的单元以及模块划分方式仅是众多划分方式中的一种,如果划分为其他单元或模块或不划分块,只要信息对象的具有上述功能,都应该在本申请的保护范围之内。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
机译: 一种在移动台上进行管理的方法,一种便于系统间通信的切换的装置以及一种在CDMA基台和TDMA基台之间寻找切换的候选资格的方法
机译: 一种在移动台上进行管理的方法,一种便于系统间通信的切换的装置以及一种在CDMA基台和TDMA基台之间寻找切换的候选资格的方法
机译: 确认数据交换网络中的通信链路状态的装置和方法,用于终端设备连接的装置和方法,用于在通信处理器与帧间中继方法和网络间系统进行通信时分配负载的装置和方法