CN102411598A - 一种实现数据一致性的方法及其系统 - Google Patents

一种实现数据一致性的方法及其系统 Download PDF

Info

Publication number
CN102411598A
CN102411598A CN2011102168588A CN201110216858A CN102411598A CN 102411598 A CN102411598 A CN 102411598A CN 2011102168588 A CN2011102168588 A CN 2011102168588A CN 201110216858 A CN201110216858 A CN 201110216858A CN 102411598 A CN102411598 A CN 102411598A
Authority
CN
China
Prior art keywords
data
mdac
file
buffer memory
database
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
CN2011102168588A
Other languages
English (en)
Other versions
CN102411598B (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.)
Zhuzhou CRRC Times Electric Co Ltd
Hunan CRRC Times Signal and Communication Co Ltd
Original Assignee
Zhuzhou CSR Times Electric Co Ltd
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 Zhuzhou CSR Times Electric Co Ltd filed Critical Zhuzhou CSR Times Electric Co Ltd
Priority to CN 201110216858 priority Critical patent/CN102411598B/zh
Publication of CN102411598A publication Critical patent/CN102411598A/zh
Application granted granted Critical
Publication of CN102411598B publication Critical patent/CN102411598B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明公开了一种实现数据一致性的方法及其系统,数据访问组件接受用户消息,根据用户消息生成动态SQL,XML数据库配置文件连接关系数据库并获取数据,再将数据传给应用层;根据全局性质的数据访问组件对象名、数据获取对象名查询全局的缓存数据集合,若存在数据则返回数据给数据访问组件,由数据访问组件传递给应用层;若没有数据,则根据数据访问组件对象名、数据获取对象名,创建一个全局的缓存组件,并将获取的数据动态SQL、数据访问组件对象名、数据获取对象名传送给缓存组件。该方法及其系统解决了服务器缓存与关系数据库之间的数据一致性问题,保证服务器缓存数据的有效性,减少对关系数据库的连接访问,提高访问速度及效率。

Description

一种实现数据一致性的方法及其系统
技术领域
本发明涉及计算机数据处理技术领域,尤其是涉及一种应用于计算机信息技术领域的基于缓存技术的实现数据一致性的方法及其系统。
背景技术
缓存技术应用广泛,该技术有以下优点:
(1)减少网络带宽,从而减轻网络拥塞;
(2)减少客户端访问延迟;
(3)由于有些数据可以直接从缓存返回给客户端,从而可以减轻服务器的负载;
(4)如果远程服务器故障或网络故障造成远程服务器无法响应客户端的要求,客户端可以从缓存中取得数据,从而增加了远程服务器的健壮性。
在信息化工程中,大量研究主要关注在客户端与服务器缓存之间数据一致性上,而在服务器缓存与数据库之间的数据一致性的研究较少。
当前服务器缓存数据与关系数据库保持一致性的技术主要有以下几种方式:
(1)直接从数据库中获取数据,没有设置缓存,如图1所示。应用对象获取数据时,通过访问对象联接数据库,数据库执行相应操作返回数据。采用这种方式,每次数据获取都要建立一个新的连接,数据获取都是从数据库中获取,不会有缓存数据与关系数据库的数据一致性问题。对于访问量大的服务器,连接池的资源有限,新的连接需要进行排队等候,从而造成了访问速度慢、效率低。
(2)采用TTL(Time-to-Live)缓存技术,在这种方法中,每个对象赋予一个对象生存期t,用来记录缓存副本的有效时间,当客户机对服务器进行请求时,如果请求时间小于TTL,则认为缓存副本是有效的,缓存将不向服务器进行请求。当请求时间大于TTL时,我们称TTL失效,此时缓存收到的第一个对某个对象的请求时,会向服务器发送GET请求,更新缓存信息。TTL机制实现比较容易,但是在TTL未失效的时间内网站的源对象版本发生更改时,无法保持缓存对象与服务器的原始版本数据一致性。也就是说客户端可能访问到过时的数据。
(3)与当前发明最相近似的现有技术方案国际商业机器公司于2005年10月26日申请,2006年06月28日公开,公开号为CN1794207A的中国发明专利申请《实现缓存一致性的方法和系统》。该发明的主要内容为:一种用于当允许应用继续将改变写入数据文件时支持由服务器对数据文件的改变进行并行记录的系统和方法。响应于数据文件的改变,创建该文件的近即时版本。将反映数据文件的改变的元数据与缓存中的文件中的版本同步,并将其记录到持久性存储器中。在记录文件的元数据改变的过程中,可继续进行随后的对数据文件的改变,且可将反映所述改变的元数据记录到该文件的即时版本中,也可将该版本与持久性存储器中的元数据的版本同步。但是该发明主要是研究客户端与服务器缓存之间的数据一致性问题。
发明内容
本发明提供一种实现数据一致性的方法及其系统,该方法及其系统解决了服务器缓存与关系数据库之间的数据一致性问题,保证服务器缓存数据的有效性,减少对关系数据库的连接访问,提高访问速度及效率。
本发明提供实现数据一致性的方法的技术实现方案,一种实现数据一致性的方法,包括以下步骤:
S101:数据访问组件对象接受用户消息,根据用户消息生成动态SQL;
S102:如果动态SQL是数据获取,则执行步骤S103;否则,数据访问组件对象根据XML数据库配置文件连接关系数据库,获取数据,数据访问组件对象再将数据传给应用层,流程结束;
S103:数据访问组件对象根据全局性质的数据访问组件对象名、数据获取对象名查询全局的缓存数据集合,若存在数据,则说明缓存数据有效,返回数据给数据访问组件对象,由数据访问组件对象传递给应用层,流程结束;若没有数据,根据数据访问组件对象名、数据获取对象名,创建一个全局缓存组件对象,并将获取的数据动态SQL、数据访问组件对象名、数据获取对象名传给该缓存组件对象;
S104:缓存组件对象解析XML缓存配置文件、XML数据库配置文件,查看该数据访问组件对象是否设置缓存,若设置缓存,则说明全局缓存组件对象监测本地依赖文件,当依赖文件发生变化时,系统删除数据访问组件对象的缓存以及全局缓存对象;若没有设置缓存,则执行步骤S106;
S105:缓存组件对象根据数据访问组件对象名解析XML缓存初始化文件,若有数据,则获取一条记录并生成一个触发器SQL,连接关系数据库并执行,同时删除这条XML文件记录,依次循环,直至文件中找不到数据为止;
S106:缓存组件对象连接关系数据库,执行数据访问组件对象所传入的获取数据动态SQL,获取数据,若该数据访问组件对象设置缓存,则更新缓存数据;
S107:缓存组件对象将数据传给数据访问组件对象,由数据访问组件对象传递给应用层,流程结束。
作为本发明实现数据一致性的方法技术方案的进一步改进,实现数据一致性的方法包括缓存组件获取数据过程,该过程包括以下步骤:
S201:缓存组件对象的中心控制器接收数据访问组件对象的重要属性,该重要属性包括获取数据动态SQL、数据访问组件对象名、数据获取对象名,将重要属性写入公共属性集合中;
S202:中心控制器解析包括有关系数据库类型、数据库名的XML数据库配置文件,并将解析内容写入公共属性集合;
S203:中心控制器通过数据访问组件对象名查找XML缓存配置文件,若找到数据,则解析包括数据访问组件对象名、本地依赖文件全局路径在内的相关属性,写入缓存数据集合;若没有找到数据,则说明该数据访问组件对象没有设置缓存,执行步骤S208;
S204:中心控制器通过数据访问组件对象名查找XML缓存初始化文件,若有数据,找到一条记录,并解析包括数据库表名、数据库服务器的本地依赖文件在内的相关属性,写入公共属性集合中,完成后,中心控制器向触发器生成器发送创建触发器消息;
S205:触发器生成器调用动态SQL拼装生成器和公共属性集合动态产生一个创建触发器SQL,并将该SQL发送给连接器;
S206:连接器收到创建触发器的SQL,连接关系数据库,关系数据库执行创建触发器SQL,将结果返回给连接器,连接器将消息传给中心控制器;否则若连接器超时,则中心控制器发送一个错误信息,流程结束;
S207:中心控制器收到创建触发器成功消息,在XML缓存初始化文件中删除该记录,重复执行步骤S204至步骤S206,直至XML缓存初始化文件中找不到数据访问组件对象名的相关节点;
S208:中心控制器将公共属性集合中的获取数据动态SQL发送给连接器;
S209:连接器收到获取数据动态SQL,连接关系数据库,关系数据库执行该SQL,将数据返回给连接器,连接器将数据传给中心控制器;否则若连接器超时,则中心控制器发送一个错误信息,流程结束;
S210:中心控制器将数据传给数据访问组件对象,若该数据访问组件对象设置了缓存,则将该数据以数据访问组件对象名和数据获取对象名组合一起作为关键字查询插入缓存数据集合;
S211:中心控制器向依赖文件监测器发送监测消息,执行缓存组件监测过程。
作为本发明实现数据一致性的方法技术方案的进一步改进,缓存组件监测过程包括以下步骤:
S301:依赖文件监测器收到中心控制器所发送的监测消息后,从公共属性集合中获取到本地依赖文件路径;
S302:依赖文件监测器开始监测本地依赖文件;
S303:依赖文件监测器发现本地依赖文件发生变化时,向中心控制器发送缓存无效消息;
S304:中心控制器收到缓存无效消息后,通过公共属性集合中的数据访问组件对象名、数据获取对象名查询缓存数据集合,找到该数据后进行删除;
S305:中心控制器向依赖文件监测器发送停止监测消息,依赖文件监测器收到消息后停止监测工作;
S306:系统删除该缓存组件对象。
作为本发明实现数据一致性的方法技术方案的进一步改进,实现数据一致性的方法包括依赖文件同步过程,该过程包括以下步骤:
S401:数据库服务器中的文件发送组件监测关系数据库,应用服务器的文件接收组件监听通讯端口;
S402:当数据库表执行插入、更新及删除操作时,表触发器执行更新本地依赖文件,并向监测表插入一条包括应用服务器的IP地址,应用服务器的本地依赖文件的全局路径和数据库服务器的本地依赖文件全局路径的新记录;
S403:文件发送组件发现监测表中有新记录后,获取该记录;
S404:文件发送组件与文件接收组件进行通讯,应用服务器的本地依赖文件实现更新,与数据库服务器的本地依赖文件保持一致;
S405:文件发送组件重复执行步骤S403和步骤S404,直到监测表中没有新记录;
S406:数据库服务器中的文件发送组件监测关系数据库,应用服务器的文件接收组件监听通讯端口。
本发明还提供一种采用上述实现数据一致性的方法实现数据一致性的系统的技术实现方案,包括:应用服务器和数据库服务器,应用服务器进一步包括数据访问组件、缓存组件、文件接收组件和缓存数据集合,数据库服务器进一步包括文件发送组件和关系数据库;
数据访问组件与缓存组件、关系数据库相连,数据访问组件接受用户消息,根据用户消息生成动态SQL;数据访问组件根据XML数据库配置文件连接关系数据库并获取数据,数据访问组件再将数据传给应用层;
数据访问组件与缓存数据集合相连,根据全局性质的数据访问组件对象名、数据获取对象名查询全局的缓存数据集合,若存在数据则返回数据给数据访问组件,由数据访问组件传递给应用层;若没有数据,则根据数据访问组件对象名、数据获取对象名,创建一个全局的缓存组件,并将获取的数据动态SQL、数据访问组件对象名、数据获取对象名传送给缓存组件;
缓存组件解析XML缓存配置文件、XML数据库配置文件,查看数据访问组件是否设置缓存,若设置缓存,则数据访问组件的缓存被删除,同时该全局缓存对象被删除,更新缓存数据;若没有设置缓存,则缓存组件连接关系数据库,执行数据访问组件所传入的获取数据动态SQL,并获取数据;
缓存组件根据数据访问组件对象名解析XML缓存初始化文件,若有数据,则获取一条记录由内部机制生成一个触发器SQL,连接关系数据库并执行,同时删除该条XML文件记录,依次循环,直至文件中找不到数据为止,缓存组件将数据传给数据访问组件,由数据访问组件传递给应用层;
文件发送组件与关系数据库相连,文件接收组件与文件发送组件相连。
作为本发明实现数据一致性的系统技术方案的进一步改进,缓存组件包括中心控制器、触发器生成器、依赖文件监测器、动态SQL拼装生成器、公共属性集合、连接器;
中心控制器与数据访问组件相连,接收外部消息,返回数据或提示信息;解析XML缓存初始化文件、XML缓存配置文件并写入公共属性集合;向触发器生成器、依赖文件监测器发送动作消息;接收触发器生成器、依赖文件监测器的消息;接收关系数据库的返回结果;
触发器生成器根据不同的关系数据库通过动态SQL拼装生成器创建一个触发器的动态SQL,在关系数据库执行后,当触发器监测到表中数据发生变化,更新数据库服务器中所设定的本地依赖文件;并向数据库中的监测表中插入一条记录;
依赖文件监测器监测本地依赖文件,当本地依赖发生变化时,向中心控制器发送缓存无效消息;
动态SQL拼装生成器根据公共属性集合进行SQL的拼装,实现动态SQL;
公共属性集合存储XML缓存初始化文件或XML缓存配置文件的解析信息;
连接器分别与中心控制器、触发生成器、关系数据库相连接。
作为本发明实现数据一致性的系统技术方案的进一步改进,XML数据库配置文件属性包括:数据库类型、服务器名、数据库名、登录数据库用户名、登录数据库密码。
作为本发明实现数据一致性的系统技术方案的进一步改进,XML缓存配置文件属性包括:数据对象名和本地依赖文件的全局路径。
作为本发明实现数据一致性的系统技术方案的进一步改进,XML缓存初始化文件属性包括:数据对象名、建立触发器所依赖的数据表、数据库服务器中的本地依赖文件的全局路径。
通过应用上述本发明技术方案所描述的一种实现数据一致性的方法及其系统,应用服务器采用缓存技术,减少对数据库服务器的访问压力,加快访问速度,提高访问效率;根据数据访问频率,可自定义数据库中数据块在服务器是否设置缓存;实现应用服务器缓存数据与数据库的数据一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术一种具体实施方式所描述的无缓存下应用对象获取数据过程示意图;
图2为本发明一种具体实施方式所描述的一种实现数据一致性的系统的工作原理图;
图3为本发明一种具体实施方式所描述的一种实现数据一致性的系统中缓存组件的功能结构框图;
图4为本发明一种具体实施方式所描述的一种实现数据一致性的方法中依赖文件同步过程的程序流程图;
其中,1-应用服务器,2-数据库服务器,3-数据访问组件,4-缓存组件,5-文件接收组件,6-缓存数据集合,7-文件发送组件,8-关系数据库,9-中心控制器,10-触发器生成器,11-依赖文件监测器,12-动态SQL拼装生成器,13-公共属性集合,14-连接器,15-触发器生成接口,18-关系数据库触发器生成器组件。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如附图2、3、4所示,给出了本发明一种实现数据一致性的方法及其系统应用于计算机信息技术领域数据处理的具体实施例,下面结合附图和具体实施例对本发明作进一步说明。
本发明将缓存数据与数据库的数据一致性设计为一种文件依赖关系,其系统结构组成和工作原理如图2所示。
一种实现数据一致性的系统的具体实施方式,该系统包括应用服务器1和数据库服务器2,应用服务器1进一步包括数据访问组件3、缓存组件4、文件接收组件5和缓存数据集合6,数据库服务器2进一步包括文件发送组件7和关系数据库8;
数据访问组件3与缓存组件4、关系数据库8相连,数据访问组件3接受用户消息,根据用户消息生成动态SQL;数据访问组件3根据XML数据库配置文件连接关系数据库8并获取数据,数据访问组件3再将数据传给应用层;
数据访问组件3与缓存数据集合6相连,根据全局性质的数据访问组件对象名、数据获取对象名查询全局的缓存数据集合6,若存在数据则返回数据给数据访问组件3,由数据访问组件3传递给应用层;若没有数据,则根据数据访问组件对象名、数据获取对象名,创建一个全局的缓存组件4,并将获取的数据动态SQL、数据访问组件对象名、数据获取对象名传送给缓存组件4;
缓存组件4解析XML缓存配置文件、XML数据库配置文件,查看数据访问组件3是否设置缓存,若设置缓存,则数据访问组件3的缓存被删除,同时该全局缓存对象被删除,更新缓存数据;若没有设置缓存,则缓存组件4连接关系数据库8,执行数据访问组件3所传入的获取数据动态SQL,并获取数据;
缓存组件4根据数据访问组件对象名解析XML缓存初始化文件,若有数据,则获取一条记录由内部机制生成一个触发器SQL,连接关系数据库8并执行,同时删除该条XML文件记录,依次循环,直至文件中找不到数据为止,缓存组件4将数据传给数据访问组件3,由数据访问组件3传递给应用层;
文件发送组件7与关系数据库8相连,文件接收组件5与文件发送组件7相连。
一种实现数据一致性的方法的具体实施方式,其工作过程包括以下步骤:
S101:数据访问组件3对象接受用户消息,根据用户消息生成动态SQL;
S102:如果动态SQL是数据获取,则执行步骤S103;否则,数据访问组件3对象根据XML数据库配置文件连接关系数据库8,获取数据,数据访问组件3对象再将数据传给应用层,流程结束;
S103:数据访问组件3对象根据全局性质的数据访问组件对象名、数据获取对象名查询全局的缓存数据集合6,若存在数据,则说明缓存数据有效,返回数据给数据访问组件3对象,由数据访问组件3对象传递给应用层,流程结束。若没有数据,根据数据访问组件3对象名、数据获取对象名,创建一个全局缓存组件对象,并将获取的数据动态SQL、数据访问组件对象名、数据获取对象名传给该缓存组件4对象;
S104:缓存组件4对象解析XML缓存配置文件、XML数据库配置文件,查看该数据访问组件3对象是否设置缓存,若设置缓存,则说明全局缓存组件对象监测本地依赖文件(应用服务器的本地依赖文件与数据库服务器的本地依赖文件通过文件接收组件、文件发送组件进行同步)。当依赖文件发生变化时,系统删除数据访问组件3对象的缓存以及全局缓存对象;若没有设置缓存,则执行步骤S106;
S105:缓存组件4对象根据数据访问组件3对象名解析XML缓存初始化文件,若有数据,则获取一条记录由内部机制生成一个触发器SQL,连接关系数据库8,并执行,同时删除这条XML文件记录,依次循环,直至文件中找不到数据为止;
S106:缓存组件4对象连接关系数据库8,执行数据访问组件3对象所传入的获取数据动态SQL,获取数据,若该数据访问组件3对象设置缓存,则更新缓存数据;
S107:缓存组件4对象将数据传给数据访问组件3对象,由数据访问组件3对象传递给应用层,流程结束。
一种实现数据一致性的系统进一步包括缓存组件4,缓存组件4由中心控制器9、触发器生成器10、依赖文件监测器11、动态SQL拼装生成器12、公共属性集合13组成。其中,触发器生成器10进一步包括触发器生成接口15和若干个关系数据库触发器生成器组件16。缓存组件4各个组成部分的功能结构说明如下表1所示。
Figure BDA0000079922670000081
表1缓存组件4的功能结构说明
实现数据一致性的方法进一步包括缓存组件获取数据过程,该过程包括以下步骤:
S201:缓存组件4对象的中心控制器9接收数据访问组件3对象的几个重要属性,包括获取数据动态SQL、数据访问组件对象名、数据获取对象名,将这些属性写入公共属性集合13中;
S202:中心控制器9解析XML数据库配置文件(包括关系数据库类型、数据库名等)并将这些解析内容写入公共属性集合13中;
S203:中心控制器9通过数据访问组件3对象名查找XML缓存配置文件,若找到数据,则解析相关属性(包括数据访问组件对象名、本地依赖文件全局路径等),写入缓存数据集合6中;若没有找到数据,则说明该数据访问组件3对象没有设置缓存,执行步骤S208;
S204:中心控制器9通过数据访问组件对象名查找XML缓存初始化文件,若有数据,找到一条记录,并解析相关属性(包括数据库表名、数据库服务器的本地依赖文件),写入公共属性集合13中,完成后,中心控制器9向触发器生成器10发送创建触发器消息;
S205:触发器生成器10调用动态SQL拼装生成器12和公共属性集合13动态产生一个创建触发器SQL,并将该SQL发送给连接器14;
S206:连接器14收到创建触发器的SQL,连接关系数据库8,关系数据库8执行创建触发器SQL,将结果返回给连接器14,连接器14将消息传给中心控制器9;否则若连接器14超时,则中心控制器9发送一个错误信息,流程结束;
S207:中心控制器9收到创建触发器成功消息,在XML缓存初始化文件中删除该记录,重复执行步骤S204至步骤S207,直至XML缓存初始化文件中找不到数据访问组件对象名的相关节点;
S208:中心控制器9将公共属性集合13中的获取数据动态SQL发送给连接器14;
S209:连接器14收到获取数据动态SQL,连接关系数据库8,关系数据库8执行该SQL,将数据返回给连接器14,连接器14将数据传给中心控制器9;否则若连接器14超时,则中心控制器9发送一个错误信息,流程结束;
S210:中心控制器9将数据传给数据访问组件3对象,若该数据访问组件3对象设置了缓存,则将该数据以数据访问组件对象名和数据获取对象名组合一起作为关键字查询插入缓存数据集合6;
S211:中心控制器9向依赖文件监测器11发送监测消息,执行缓存组件监测流程。
实现数据一致性的方法进一步包括缓存组件监测过程,该过程包括以下步骤:
S301:依赖文件监测器11收到中心控制器9所发送的监测消息后,从公共属性集合13中获取到本地依赖文件路径;
S302:依赖文件监测器11开始监测本地依赖文件;
S303:依赖文件监测器11发现本地依赖文件发生变化时,向中心控制器9发送缓存无效消息;
S304:中心控制器9收到缓存无效消息后,通过公共属性集合13中的数据访问组件对象名、数据获取对象名查询缓存数据集合6,找到该数据后进行删除;
S305:中心控制器9向依赖文件监测器11发送停止监测消息,依赖文件监测器11收到消息后停止监测工作;
S306:系统删除该缓存组件4对象。
实现数据一致性的方法进一步包括依赖文件的同步过程,该过程包括以下步骤:
S401:数据库服务器2中的文件发送组件7监测关系数据库8,应用服务器1的文件接收组件5监听通讯端口;
S402:当数据库表执行插入、更新及删除操作时,表触发器执行两个工作,首先更新本地依赖文件,其次向监测表中插入一条新记录(包括应用服务器1的IP地址,应用服务器1的本地依赖文件的全局路径,数据库服务器2的本地依赖文件的全局路径);
S403:文件发送组件7发现监测表中有新记录后,获取该记录;
S404:文件发送组件7与文件接收组件5进行通讯,应用服务器1的本地依赖文件实现更新,与数据库服务器2中的本地依赖文件保持一致;
S405:文件发送组件7重复执行步骤S403和步骤S404,直到监测表中没有新记录;
S406:数据库服务器2中的文件发送组件7监测关系数据库8,应用服务器1的文件接收组件5监听通讯端口。
XML数据库配置文件设计采用XML格式文件实现配置,配置文件的属性如下:
(1)dbType:数据库类型(如Oracle);
(2)connect-server:服务器名;
(3)connect-dataBase:数据库名;
(4)connect-user:登录数据库用户名;
(5)connect-password:登录数据库密码;
具体如下:
Figure BDA0000079922670000101
XML缓存配置文件的结构设计如下表2所示。
Figure BDA0000079922670000102
表2 XML缓存配置文件的结构设计说明表
具体如下:
Figure BDA0000079922670000111
XML缓存初始化文件的结构设计如下表3所示。
表3 XML缓存初始化文件的结构设计说明表
具体如下:
Figure BDA0000079922670000113
本发明具体实施方式所描述的一种实现数据一致性的方法及其系统通过文件依赖实现了应用服务器缓存与数据库之间的数据一致性,解决了服务器缓存与关系数据库之间的数据一致性问题,保证服务器缓存数据的有效性,减少对关系数据库的连接访问,提高访问速度及效率。其中,应用服务器采用缓存技术,减少对数据库服务器的访问压力,加快访问速度,提高访问效率;根据数据访问频率,可自定义数据库中数据块在服务器是否设置缓存。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同替换、等效变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (9)

1.一种实现数据一致性的方法,其特征在于,包括以下步骤:
S101:数据访问组件(3)对象接受用户消息,根据用户消息生成动态SQL;
S102:如果动态SQL是数据获取,则执行步骤S103;否则,数据访问组件(3)对象根据XML数据库配置文件连接关系数据库(8),获取数据,数据访问组件(3)对象再将数据传给应用层,流程结束;
S103:数据访问组件(3)对象根据全局性质的数据访问组件对象名、数据获取对象名查询全局的缓存数据集合(6),若存在数据,则说明缓存数据有效,返回数据给数据访问组件(3)对象,由数据访问组件(3)对象传递给应用层,流程结束;若没有数据,根据数据访问组件对象名、数据获取对象名,创建一个全局缓存组件对象,并将获取的数据动态SQL、数据访问组件(3)对象名、数据获取对象名传给该缓存组件(4)对象;
S104:缓存组件(4)对象解析XML缓存配置文件、XML数据库配置文件,查看该数据访问组件(3)对象是否设置缓存,若设置缓存,则说明全局缓存组件对象监测本地依赖文件,当依赖文件发生变化时,系统删除数据访问组件(3)对象的缓存以及全局缓存对象;若没有设置缓存,则执行步骤S106;
S105:缓存组件(4)对象根据数据访问组件(3)对象名解析XML缓存初始化文件,若有数据,则获取一条记录并生成一个触发器SQL,连接关系数据库(8)并执行,同时删除这条XML文件记录,依次循环,直至文件中找不到数据为止;
S106:缓存组件(4)对象连接关系数据库(8),执行数据访问组件(3)对象所传入的获取数据动态SQL,获取数据,若该数据访问组件(3)对象设置缓存,则更新缓存数据;
S107:缓存组件(4)对象将数据传给数据访问组件(3)对象,由数据访问组件(3)对象传递给应用层,流程结束。
2.根据权利要求1所述的一种实现数据一致性的方法,其特征在于:所述实现数据一致性的方法包括缓存组件获取数据过程,该过程包括以下步骤:
S201:缓存组件(4)对象的中心控制器(9)接收数据访问组件(3)对象的重要属性,该重要属性包括获取数据动态SQL、数据访问组件对象名、数据获取对象名,将重要属性写入公共属性集合(13)中;
S202:中心控制器(9)解析包括有关系数据库类型、数据库名的XML数据库配置文件,并将解析内容写入公共属性集合(13);
S203:中心控制器(9)通过数据访问组件对象名查找XML缓存配置文件,若找到数据,则解析包括数据访问组件对象名、本地依赖文件全局路径在内的相关属性,写入缓存数据集合(6);若没有找到数据,则说明该数据访问组件对象没有设置缓存,执行步骤S208;
S204:中心控制器(9)通过数据访问组件对象名查找XML缓存初始化文件,若有数据,找到一条记录,并解析包括数据库表名、数据库服务器的本地依赖文件在内的相关属性,写入公共属性集合(13)中,完成后,中心控制器(9)向触发器生成器(10)发送创建触发器消息;
S205:触发器生成器(10)调用动态SQL拼装生成器(12)和公共属性集合(13)动态产生一个创建触发器SQL,并将该SQL发送给连接器(14);
S206:连接器(14)收到创建触发器的SQL,连接关系数据库(8),关系数据库(8)执行创建触发器SQL,将结果返回给连接器(14),连接器(14)将消息传给中心控制器(9);否则若连接器(14)超时,则中心控制器(9)发送一个错误信息,流程结束;
S207:中心控制器(9)收到创建触发器成功消息,在XML缓存初始化文件中删除该记录,重复执行步骤S204至步骤S207,直至XML缓存初始化文件中找不到数据访问组件对象名的相关节点;
S208:中心控制器(9)将公共属性集合(13)中的获取数据动态SQL发送给连接器(14);
S209:连接器(14)收到获取数据动态SQL,连接关系数据库(8),关系数据库(8)执行该SQL,将数据返回给连接器(14),连接器(14)将数据传给中心控制器(9);否则若连接器(14)超时,则中心控制器(9)发送一个错误信息,流程结束;
S210:中心控制器(9)将数据传给数据访问组件(3)对象,若该数据访问组件对象设置了缓存,则将该数据以数据访问组件对象名和数据获取对象名组合一起作为关键字查询插入缓存数据集合(6);
S211:中心控制器(9)向依赖文件监测器(11)发送监测消息,执行缓存组件监测过程。
3.根据权利要求2所述的一种实现数据一致性的方法,其特征在于:所述的缓存组件监测过程包括以下步骤:
S301:依赖文件监测器(11)收到中心控制器(9)所发送的监测消息后,从公共属性集合(13)中获取到本地依赖文件路径;
S302:依赖文件监测器(11)开始监测本地依赖文件;
S303:依赖文件监测器(11)发现本地依赖文件发生变化时,向中心控制器(9)发送缓存无效消息;
S304:中心控制器(9)收到缓存无效消息后,通过公共属性集合(13)中的数据访问组件对象名、数据获取对象名查询缓存数据集合(6),找到该数据后进行删除;
S305:中心控制器(9)向依赖文件监测器(11)发送停止监测消息,依赖文件监测器(11)收到消息后停止监测工作;
S306:系统删除该缓存组件(4)对象。
4.根据权利要求3所述的一种实现数据一致性的方法,其特征在于:所述实现数据一致性的方法包括依赖文件同步过程,该过程包括以下步骤:
S401:数据库服务器(2)中的文件发送组件(7)监测关系数据库(8),应用服务器(1)的文件接收组件(5)监听通讯端口;
S402:当数据库表执行插入、更新及删除操作时,表触发器执行更新本地依赖文件,并向监测表插入一条包括应用服务器(1)的IP地址,应用服务器(1)的本地依赖文件的全局路径和数据库服务器(2)的本地依赖文件全局路径的新记录;
S403:文件发送组件(7)发现监测表中有新记录后,获取该记录;
S404:文件发送组件(7)与文件接收组件(5)进行通讯,应用服务器(1)的本地依赖文件实现更新,与数据库服务器(2)的本地依赖文件保持一致;
S405:文件发送组件(7)重复执行步骤S403和步骤S404,直到监测表中没有新记录;
S406:数据库服务器(2)中的文件发送组件(7)监测关系数据库(8),应用服务器(1)的文件接收组件(5)监听通讯端口。
5.一种采用权利要求1至4中任一权利要求所述实现数据一致性的方法的系统,包括应用服务器(1)和数据库服务器(2),其特征在于:应用服务器(1)包括数据访问组件(3)、缓存组件(4)、文件接收组件(5)和缓存数据集合(6),数据库服务器(2)包括文件发送组件(7)和关系数据库(8);
数据访问组件(3)与缓存组件(4)、关系数据库(8)相连,数据访问组件(3)接受用户消息,根据用户消息生成动态SQL;数据访问组件(3)根据XML数据库配置文件连接关系数据库(8)并获取数据,数据访问组件(3)再将数据传给应用层;
数据访问组件(3)与缓存数据集合(6)相连,根据全局性质的数据访问组件对象名、数据获取对象名查询全局的缓存数据集合(6),若存在数据则返回数据给数据访问组件(3),由数据访问组件(3)传递给应用层;若没有数据,则根据数据访问组件对象名、数据获取对象名,创建一个全局的缓存组件(4),并将获取的数据动态SQL、数据访问组件对象名、数据获取对象名传送给缓存组件(4);
缓存组件(4)解析XML缓存配置文件、XML数据库配置文件,查看数据访问组件(3)是否设置缓存,若设置缓存,则数据访问组件(3)的缓存被删除,同时该全局缓存对象被删除,更新缓存数据;若没有设置缓存,则缓存组件(4)连接关系数据库(8),执行数据访问组件(3)所传入的获取数据动态SQL,并获取数据;
缓存组件(4)根据数据访问组件对象名解析XML缓存初始化文件,若有数据,则获取一条记录由内部机制生成一个触发器SQL,连接关系数据库(8)并执行,同时删除该条XML文件记录,依次循环,直至文件中找不到数据为止,缓存组件(4)将数据传给数据访问组件(3),由数据访问组件(3)传递给应用层;
文件发送组件(7)与关系数据库(8)相连,文件接收组件(5)与文件发送组件(7)相连。
6.根据权利要求5所述的一种实现数据一致性的系统,其特征在于:所述的缓存组件(4)包括中心控制器(9)、触发器生成器(10)、依赖文件监测器(11)、动态SQL拼装生成器(12)、公共属性集合(13)、连接器(14);
中心控制器(9)与数据访问组件(3)相连,接收外部消息,返回数据或提示信息;解析XML缓存初始化文件、XML缓存配置文件并写入公共属性集合(13);向触发器生成器(10)、依赖文件监测器(11)发送动作消息;接收触发器生成器(10)、依赖文件监测器(11)的消息;接收关系数据库(8)的返回结果;
触发器生成器(10)根据不同的关系数据库(8)通过动态SQL拼装生成器(12)创建一个触发器的动态SQL,在关系数据库(8)执行后,当触发器监测到表中数据发生变化,更新数据库服务器(2)中所设定的本地依赖文件;并向数据库中的监测表中插入一条记录;
依赖文件监测器(11)监测本地依赖文件,当本地依赖发生变化时,向中心控制器(9)发送缓存无效消息;
动态SQL拼装生成器(12)根据公共属性集合(13)进行SQL的拼装,实现动态SQL;
公共属性集合(13)存储XML缓存初始化文件或XML缓存配置文件的解析信息;
连接器(14)分别与中心控制器(9)、触发生成器(10)、关系数据库(8)相连接。
7.根据权利要求6所述的一种实现数据一致性的系统,其特征在于:所述的XML数据库配置文件属性包括:数据库类型、服务器名、数据库名、登录数据库用户名、登录数据库密码。
8.根据权利要求6所述的一种实现数据一致性的系统,其特征在于:所述的XML缓存配置文件属性包括:数据对象名和本地依赖文件的全局路径。
9.根据权利要求6所述的一种实现数据一致性的系统,其特征在于:所述的XML缓存初始化文件属性包括:数据对象名、建立触发器所依赖的数据表、数据库服务器中的本地依赖文件的全局路径。
CN 201110216858 2011-07-29 2011-07-29 一种实现数据一致性的方法及其系统 Active CN102411598B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110216858 CN102411598B (zh) 2011-07-29 2011-07-29 一种实现数据一致性的方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110216858 CN102411598B (zh) 2011-07-29 2011-07-29 一种实现数据一致性的方法及其系统

Publications (2)

Publication Number Publication Date
CN102411598A true CN102411598A (zh) 2012-04-11
CN102411598B CN102411598B (zh) 2013-07-31

Family

ID=45913672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110216858 Active CN102411598B (zh) 2011-07-29 2011-07-29 一种实现数据一致性的方法及其系统

Country Status (1)

Country Link
CN (1) CN102411598B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760164A (zh) * 2012-06-12 2012-10-31 上海方正数字出版技术有限公司 一种关系数据库管理系统与xml数据库管理系统之间数据交换的方法
CN103544303A (zh) * 2013-10-31 2014-01-29 北京锐安科技有限公司 一种数据同步方法、系统和设备
CN103678690A (zh) * 2013-12-26 2014-03-26 Tcl集团股份有限公司 一种Andriod系统事务管理方法及装置
CN103945013A (zh) * 2013-01-17 2014-07-23 方正宽带网络服务股份有限公司 数据传输接口装置和数据传输方法
CN105740383A (zh) * 2016-01-27 2016-07-06 中国科学院计算技术研究所 一种大数据平台下数据库与缓存的数据一致性方法及系统
CN106844502A (zh) * 2016-12-27 2017-06-13 北京五八信息技术有限公司 数据一致性处理方法及设备
CN107272632A (zh) * 2017-08-03 2017-10-20 过成康 一种电路设备自动化通讯配置管理方法
CN107506384A (zh) * 2017-07-25 2017-12-22 北京供销科技有限公司 一种数据一致性问题的发现修正方法及系统
CN108536617A (zh) * 2018-03-30 2018-09-14 网易宝有限公司 缓存管理方法、介质、系统和电子设备
CN109408224A (zh) * 2018-09-17 2019-03-01 华为技术有限公司 数据同步方法、分布式系统与应用节点
CN109977170A (zh) * 2019-03-20 2019-07-05 南威软件股份有限公司 一种政务内外网数据同步的方法及系统
WO2019231657A1 (en) * 2018-05-31 2019-12-05 Oracle International Corporation Flexible energy information aggregation
WO2020015151A1 (zh) * 2018-07-18 2020-01-23 平安科技(深圳)有限公司 数据库表的参数插入方法、装置、终端设备及存储介质
CN113852638A (zh) * 2021-09-28 2021-12-28 深信服科技股份有限公司 一种攻击检测方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193576A1 (en) * 2003-03-28 2004-09-30 Cristian Petculescu Systems and methods for proactive caching utilizing OLAP variants
CN101067814A (zh) * 2007-05-10 2007-11-07 浪潮集团山东通用软件有限公司 数据访问层Xml格式数据与关系数据间的映射转换方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193576A1 (en) * 2003-03-28 2004-09-30 Cristian Petculescu Systems and methods for proactive caching utilizing OLAP variants
CN101067814A (zh) * 2007-05-10 2007-11-07 浪潮集团山东通用软件有限公司 数据访问层Xml格式数据与关系数据间的映射转换方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760164A (zh) * 2012-06-12 2012-10-31 上海方正数字出版技术有限公司 一种关系数据库管理系统与xml数据库管理系统之间数据交换的方法
CN103945013A (zh) * 2013-01-17 2014-07-23 方正宽带网络服务股份有限公司 数据传输接口装置和数据传输方法
CN103544303A (zh) * 2013-10-31 2014-01-29 北京锐安科技有限公司 一种数据同步方法、系统和设备
CN103544303B (zh) * 2013-10-31 2017-06-20 北京锐安科技有限公司 一种数据同步方法、系统和设备
CN103678690A (zh) * 2013-12-26 2014-03-26 Tcl集团股份有限公司 一种Andriod系统事务管理方法及装置
CN103678690B (zh) * 2013-12-26 2018-01-12 Tcl集团股份有限公司 一种Andriod系统事务管理方法及装置
CN105740383A (zh) * 2016-01-27 2016-07-06 中国科学院计算技术研究所 一种大数据平台下数据库与缓存的数据一致性方法及系统
CN106844502B (zh) * 2016-12-27 2020-01-07 北京五八信息技术有限公司 数据一致性处理方法及设备
CN106844502A (zh) * 2016-12-27 2017-06-13 北京五八信息技术有限公司 数据一致性处理方法及设备
CN107506384A (zh) * 2017-07-25 2017-12-22 北京供销科技有限公司 一种数据一致性问题的发现修正方法及系统
CN107272632A (zh) * 2017-08-03 2017-10-20 过成康 一种电路设备自动化通讯配置管理方法
CN108536617A (zh) * 2018-03-30 2018-09-14 网易宝有限公司 缓存管理方法、介质、系统和电子设备
CN108536617B (zh) * 2018-03-30 2021-03-05 网易宝有限公司 缓存管理方法、介质、系统和电子设备
WO2019231657A1 (en) * 2018-05-31 2019-12-05 Oracle International Corporation Flexible energy information aggregation
CN111919228A (zh) * 2018-05-31 2020-11-10 甲骨文国际公司 灵活的能源信息聚合
US11036682B2 (en) 2018-05-31 2021-06-15 Oracle International Corporation Flexible energy information aggregation
WO2020015151A1 (zh) * 2018-07-18 2020-01-23 平安科技(深圳)有限公司 数据库表的参数插入方法、装置、终端设备及存储介质
CN109408224A (zh) * 2018-09-17 2019-03-01 华为技术有限公司 数据同步方法、分布式系统与应用节点
CN109977170A (zh) * 2019-03-20 2019-07-05 南威软件股份有限公司 一种政务内外网数据同步的方法及系统
CN113852638A (zh) * 2021-09-28 2021-12-28 深信服科技股份有限公司 一种攻击检测方法、装置、设备及存储介质
CN113852638B (zh) * 2021-09-28 2024-02-27 深信服科技股份有限公司 一种攻击检测方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN102411598B (zh) 2013-07-31

Similar Documents

Publication Publication Date Title
CN102411598B (zh) 一种实现数据一致性的方法及其系统
US10467105B2 (en) Chained replication techniques for large-scale data streams
CN101535965B (zh) 用于提高存储管理系统的可伸缩性和可移植性的技术
US9471585B1 (en) Decentralized de-duplication techniques for largescale data streams
CN105814544B (zh) 用于支持分布式数据网格中的持久化分区恢复的系统和方法
JP5686034B2 (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
CN105472002A (zh) 基于集群节点间即时拷贝的会话同步方法
CN102117309A (zh) 一种数据缓存系统和数据查询方法
CN112395264B (zh) 分布式存储系统中逻辑目标与卷之间映射的处理方法
CN107623703B (zh) 全局事务标识gtid的同步方法、装置及系统
CN107818111B (zh) 一种缓存文件数据的方法、服务器及终端
EP4213038A1 (en) Data processing method and apparatus based on distributed storage, device, and medium
CN113268472B (zh) 一种分布式数据存储系统及方法
CN112307119A (zh) 数据同步方法、装置、设备及存储介质
KR20210040864A (ko) 파일 디렉터리 순회 방법, 장치, 기기, 매체 및 컴퓨터 프로그램
CN112256676A (zh) 一种数据库迁移的方法、装置、设备和介质
US20080052341A1 (en) System and method for processing data associated with a transmission in a data communication system
CN113885780A (zh) 数据同步方法、装置、电子设备、系统和存储介质
CN111225003B (zh) 一种nfs节点配置方法和装置
US20220342888A1 (en) Object tagging
CN109165078B (zh) 一种虚拟分布式服务器及其访问方法
CN112069152B (zh) 一种数据库集群升级方法、装置、设备以及存储介质
KR102598619B1 (ko) 데이터베이스 관리 서비스 제공 시스템
US20110282923A1 (en) File management system, method, and recording medium of program
CN100486345C (zh) 基于pc服务器的业务系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 412001 Hunan Province, Zhuzhou Shifeng District Tian Xin era Road No. 169

Patentee after: ZHUZHOU CRRC TIMES ELECTRIC Co.,Ltd.

Address before: 412001 Hunan Province, Zhuzhou Shifeng District Tian Xin era Road No. 169

Patentee before: ZHUZHOU CSR TIMES ELECTRIC Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20170619

Address after: 21, building 7, building 189, No. 410100, Renmin East Road, Changsha economic and Technological Development Zone, Hunan, Changsha

Patentee after: HUNAN CRRC TIMES SIGNAL & COMMUNICATION Co.,Ltd.

Address before: 412001 Hunan Province, Zhuzhou Shifeng District Tian Xin era Road No. 169

Patentee before: ZHUZHOU CRRC TIMES ELECTRIC Co.,Ltd.

TR01 Transfer of patent right