CN103390041B - 一种基于中间件提供数据服务的方法和系统 - Google Patents
一种基于中间件提供数据服务的方法和系统 Download PDFInfo
- Publication number
- CN103390041B CN103390041B CN201310301307.0A CN201310301307A CN103390041B CN 103390041 B CN103390041 B CN 103390041B CN 201310301307 A CN201310301307 A CN 201310301307A CN 103390041 B CN103390041 B CN 103390041B
- Authority
- CN
- China
- Prior art keywords
- data
- storehouse
- server
- place
- access request
- 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.)
- Expired - Fee Related
Links
Abstract
一种基于中间件提供数据服务的方法和系统,包括:步骤一、数据服务中间件装置接收数据访问请求,查询业务和数据库映射表中业务系统相对应的主、从库所在服务器,并判断访问方式是否是数据写操作,如果是,则转向步骤二;步骤二、将数据访问请求发送给主库所在服务器,当主库所在服务器完成对主库的数据更新后,再将数据访问请求存入内存库中,同时,还包括:数据服务中间件装置定时扫描内存库,当监测到内存库中存在数据访问请求时,从内存库中提取数据访问请求,并将所述数据访问请求发送给从库所在服务器,由从库所在服务器完成对从库的数据更新。本发明属于网络通信技术领域,能向业务层屏蔽具体的数据库运行方式、并提供统一的数据服务。
Description
技术领域
本发明涉及一种基于中间件提供数据服务的方法和系统,属于网络通信技术领域。
背景技术
随着互联网技术的快速发展,基于互联网的各种业务系统得到了广泛的应用。为保证业务系统数据的高可用性、高性能和方便扩展,通常一套业务系统会对应一个主库和多个从库,从库为主库实现读的负荷分担。
如何向业务层屏蔽具体的数据库运行方式、并提供统一的数据服务?目前也提出了一些相关解决方法:
专利申请CN200710114464.5(申请名称:集群数据库系统的动态负载均衡方法,申请人:浪潮电子信息产业股份有限公司,申请日:2007‐11‐21)提供一种集群数据库系统的动态负载均衡方法,该方法是通过数据库网关系统,根据动态负载均衡算法判断数据库服务器的负载状况,发送数据库语句给负载最低的数据库服务器,并负责把结果返回给客户端。并针对数据库语句的不同执行不同的数据同步机制。对于数据库查询语句,数据库网关直接把相应结果返回给客户端;对于数据库更新语句,数据库网关把相应结果返回给客户端后,记录所更改表的状态,然后把更新语句发送给其他数据库服务器,以保持各数据库的数据一致性。该方案并不涉及到为多个业务系统提供统一的数据服务,并当客户端提出多条数据库更新语句时,由于数据库服务器本身因多CPU、磁盘队列而具有并发处理能力,负载最低的数据库服务器可以对多条数据库更新语句进行并发处理,但当数据库网关将更新语句发送给其他多个数据库服务器以同步时,数据库网关无法判断上述多条更新语句之间是否数据无关,因此只有按串行顺序将多条更新语句依次发送给其他数据库服务器执行,即按客户端的发起顺序先发送一条更新语句,当其他多个数据库服务器一一更新成功后,再继续发送下一条更新语句,执行时间长、效率低,特别当其中一个数据库服务器发生故障时,则有可能陷入长时间等待中。
因此,如何向业务层屏蔽具体的数据库运行方式、并提供统一的数据服务?仍是一个未解决的技术问题。
发明内容
有鉴于此,本发明的目的是提供一种基于中间件提供数据服务的方法和系统,能向业务层屏蔽具体的数据库运行方式、并提供统一的数据服务。
为了达到上述目的,本发明提供了一种基于中间件提供数据服务的方法,当业务系统向数据服务中间件装置提交数据访问请求时,包括有:
步骤一、数据服务中间件装置接收业务系统发送来的数据访问请求,所述数据访问请求包括有访问的业务数据和访问方式,查询业务和数据库映射表中所述业务系统相对应的主、从库所在服务器,所述业务和数据库映射表保存了数据服务中间件装置所连接的多个业务系统及其分别对应的主、从库所在服务器,并判断所述数据访问请求的访问方式是否是数据写操作,如果是,则转向步骤二;
步骤二、数据服务中间件装置将数据访问请求发送给业务系统相对应的主库所在服务器,当主库所在服务器根据数据访问请求完成对主库的数据更新后,再将数据访问请求存入内存库中,
同时,还包括有:
步骤A、数据服务中间件装置定时扫描内存库,当监测到内存库中存在有数据访问请求时,从内存库中提取数据访问请求,并将所述数据访问请求发送给其对应的从库所在服务器,由从库所在服务器根据数据访问请求完成对从库的数据更新,
还包括有:
数据服务中间件装置为所连接的每个数据库服务器在内存库中构建若干个数据同步任务队列,
所述步骤二中,将数据访问请求存入内存库中,进一步包括有:
数据服务中间件装置从数据访问请求中提取操作实体ID,并采用哈希函数计算所述操作实体ID的哈希值,然后根据所述操作实体ID的哈希值、以及哈希值和数据同步任务队列的对应关系,将所述数据访问请求分配到其对应的从库所在服务器的一个数据同步任务队列中,所述操作实体ID是用于对互不相关的数据进行区分的一种数据范围特征,其值选取数据访问请求发出的业务系统ID、或者数据访问请求访问的业务数据ID。
为了达到上述目的,本发明还提供了一种基于中间件提供数据库服务的系统,包括有数据服务中间件装置和多个数据库服务器,所述数据服务中间件装置分别与业务系统、数据库服务器相连,所述多个数据库服务器包含有每个业务系统相对应的一个主库和多个从库所在服务器,所述数据服务中间件装置进一步包括有:
请求处理单元,用于接收业务系统发送来的数据访问请求,所述数据访问请求包括有访问的业务数据和访问方式,查询业务和数据库映射表中所述业务系统相对应的主、从库所在服务器,并将数据访问请求转发给其他内部单元,所述业务和数据库映射表保存了数据服务中间件装置所连接的多个业务系统及其分别对应的主、从库所在服务器;
数据写操作单元,用于接收请求处理单元转发来的、访问方式是数据写操作的数据访问请求,并将数据访问请求发送给业务系统相对应的主库所在服务器,当主库所在服务器根据数据访问请求完成对主库的数据更新后,再将数据访问请求存入内存库中;
数据同步单元,用于定时扫描内存库,当监测到内存库中存在有数据访问请求时,从内存库中提取数据访问请求,并将所述数据访问请求发送给其对应的从库所在服务器,由从库所在服务器根据数据访问请求完成对从库的数据更新,
所述数据服务中间件装置还包括有:
同步队列构建单元,用于为数据服务中间件装置所连接的每个数据库服务器在内存库中构建若干个数据同步任务队列,
数据写操作单元进一步包括有:
同步队列分配部件,用于从数据访问请求中提取操作实体ID,并采用哈希函数计算所述操作实体ID的哈希值,然后根据所述操作实体ID的哈希值、以及哈希值和数据同步任务队列的对应关系,将所述数据访问请求分配到其对应的从库所在服务器的一个数据同步任务队列中,所述操作实体ID是用于对互不相关的数据进行区分的一种数据范围特征,其值选取数据访问请求发出的业务系统ID、或者数据访问请求访问的业务数据ID。
与现有技术相比,本发明的有益效果是:本发明能通过数据服务中间件装置为业务层提供统一的数据服务,并向业务层屏蔽了具体的数据库形式和部署,充分实现了业务层和物理数据库的完全隔离;通过业务和数据库映射表灵活查询每个连接到数据服务中间件装置的业务系统所对应的一个主库和多个从库所在服务器,并且还能实现多个业务系统及其相对应的主、从库所在服务器的动态配置,能根据实际运行需要对每个业务系统的主、从库进行增、删、或替换等操作,并且不会对业务系统的数据服务产生任何影响和中断,特别在增加从库时,本发明还能在主、从库数据同步之后,继续对主、从库数据的一致性进行检查,从而避免了在主、从库同步数据的过程中,因主库的数据发生更新而造成从库未及时同步,进一步保证了主、从库数据的一致性;当业务系统发来的数据访问请求是写操作时,数据服务中间件装置在主库执行完数据更新后,继续将数据访问请求分配到从库对应的若干个可同时并发的数据同步任务队列中,不但保证了从库对数据相关的数据写操作的串行执行顺序和业务系统的请求顺序一致,还通过若干个数据同步任务队列的有限并发进一步提高执行效率、缩短执行时间,因此本发明对业务系统的响应时间主要决定于主库的响应时间,从库发生故障不会对系统性能造成任何影响;当业务系统发来的数据访问请求是读操作时,可以由业务系统在数据访问请求中指定、或者根据系统配置获取业务数据的敏感度,并对于敏感度高的数据访问请求采取直接向主库、或者向负载较低且已和主库数据同步的从库来获取数据访问结果,从而在提高执行效率的同时,还能避免读取到脏数据。
附图说明
图1是当业务系统向数据服务中间件装置提交数据访问请求时,本发明一种基于中间件提供数据服务的方法流程图。
图2是步骤A的具体操作流程图。
图3是图1步骤三中,从所述业务系统相对应的主、从库所在服务器中选择一个数据库服务器,然后将所述数据访问请求发送给所述数据库服务器,最后将所述数据库服务器返回的数据访问结果转发给业务系统的具体操作流程图。
图4是当增加业务系统对应的从库所在服务器时的具体操作流程图。
图5是当业务系统的从库变更为主库时的具体操作流程图。
图6是本发明一种基于中间件提供数据服务的系统组成结构图。
图7是数据读操作单元的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
本发明可以通过数据服务中间件装置,向业务层屏蔽具体的数据库运行方式,并同时为多个业务系统提供统一的数据服务,而且还可以根据实际运行的需要,为每个业务系统提供一个主库和多个从库所在服务器。如图1所示,当业务系统向数据服务中间件装置提交数据访问请求时,本发明一种基于中间件提供数据服务的方法,包括有:
步骤一、数据服务中间件装置接收业务系统发送来的数据访问请求,所述数据访问请求包括有访问的业务数据和访问方式,查询业务和数据库映射表中所述业务系统相对应的主、从库所在服务器,并判断所述数据访问请求的访问方式是否是数据写操作,所述数据写操作包含但不限于:修改update、插入insert、删除delete操作以及存储过程?如果是,则转向步骤二;如果否,则转向步骤三;
步骤二、数据服务中间件装置将数据访问请求发送给业务系统相对应的主库所在服务器,当主库所在服务器根据数据访问请求完成对主库的数据更新后,再将数据访问请求存入内存库中;
步骤三、数据服务中间件装置判断数据访问请求的访问方式是否是数据读操作?如果是,则从所述业务系统相对应的主、从库所在服务器中选择一个数据库服务器,然后将所述数据访问请求发送给所述数据库服务器,最后将所述数据库服务器返回的数据访问结果转发给业务系统,
同时,本发明还包括有:
步骤A、数据服务中间件装置定时扫描内存库,当监测到内存库中存在有数据访问请求时,从内存库中提取数据访问请求,并将所述数据访问请求发送给其对应的从库所在服务器,由从库所在服务器根据数据访问请求完成对从库的数据更新。
所述业务和数据库映射表保存了数据服务中间件装置所连接的多个业务系统及其分别对应的主、从库所在服务器。例如,下表是一个业务和数据库映射表的具体实施例,其中,业务系统1对应有1个主库和4个从库,其主库所在服务器是数据库服务器1,从库所在服务器是数据库服务器2、3、4和5:
业务系统ID | 业务系统对应的主库所在服务器 | 业务系统对应的从库所在服务器 |
业务系统1 | 数据库服务器1 | 数据库服务器2,3,4,5 |
业务系统2 | 数据库服务器3 | 数据库服务器1,2,4,5 |
业务系统3 | 数据库服务器4 | 数据库服务器2,3,5 |
… | … | … |
由于对每个数据库服务器来说,相关数据的数据写操作的执行顺序必须与业务系统的请求顺序一致,互不相关数据的数据写操作可以并发执行,以提高执行效率、缩短执行时间。本发明还包括有:
数据服务中间件装置为所连接的每个数据库服务器在内存库中构建若干个数据同步任务队列,例如:数据服务中间件装置连接有5个数据库服务器:DB1—DB5,可以根据系统实际情况,为每个数据库服务器分别构建10个数据同步任务队列,则所有数据同步任务队列的总个数为5*10=100;
所述步骤二中,将数据访问请求存入内存库中,进一步包括有:
数据服务中间件装置从数据访问请求中提取操作实体ID,并采用哈希函数计算所述操作实体ID的哈希值,然后根据所述操作实体ID的哈希值、以及哈希值和数据同步任务队列的对应关系,将所述数据访问请求分配到其对应的从库所在服务器的一个数据同步任务队列中;当所述数据访问请求的业务系统对应有多个从库所在服务器时,所述数据访问请求将被分配到每个从库所在服务器的数据同步任务队列中。
可以根据实际需要,从数据服务中间件装置所连接的数据库服务器中选择多个数据库服务器作为业务系统的从库,例如:当业务系统1的从库所在服务器是数据库服务器2、3、4和5时,将业务系统1的数据访问请求同时分配到数据库服务器2、3、4和5的一个数据同步任务队列中。
由于不同业务系统、或者同一业务系统中不同业务数据的数据互不相关,因此其对应的数据访问请求可以并发执行,所述操作实体ID是用于对互不相关的数据进行区分的一种数据范围特征,其值可以选取数据访问请求发出的业务系统ID、或者数据访问请求访问的业务数据ID(如集团号、用户号码等),例如:对于多个集团类业务来说,不同集团ID之间的数据互不相关,因此可以选取集团ID作为操作实体ID,从而将不同集团ID的数据访问请求分配到不同的数据同步任务队列中;由于操作实体ID通常是一个字符串,因此,可以采用哈希函数来计算其哈希值,所述哈希值是一个int型整数,再根据哈希值和数据同步任务队列的对应关系,将每个数据访问请求分配到数据库服务器的有限个数据同步任务队列中,例如:对每个数据访问请求的操作实体ID计算哈希值,然后根据哈希值的个位数数值(其值范围从0至9),将数据访问请求分配到所述数据库服务器对应的10个数据同步任务队列中,这样,相同数据库服务器、且相同操作实体ID的数据访问请求被分配到同一个数据同步任务队列中,不同数据库服务器、或不同操作实体ID的数据访问请求被分配到不同的数据同步任务队列中,同一个数据同步任务队列中的数据访问请求被串行执行,其执行顺序与业务系统的请求顺序一致,不同数据同步任务队列中的数据访问请求被并发执行,以充分提高执行效率。
如图2所示,所述步骤A进一步包括有:
步骤A1、数据服务中间件装置定时、顺序扫描内存库中每个数据库服务器的每个数据同步任务队列,并判断每个数据同步任务队列中是否存在有数据访问请求?如果是,则转向步骤A2;如果否,则间隔一段时间后,转向步骤A1;
步骤A2、数据服务中间件装置按先进先出的排队原则,从所述数据同步任务队列中提取一个数据访问请求;
步骤A3、数据服务中间件装置将数据访问请求发送给数据同步任务队列对应的从库所在服务器;
步骤A4、数据服务中间件装置接收从库所在服务器返回的数据更新结果,并判断数据更新是否成功执行?如果是,则转向步骤A5;如果否,则进一步判断数据更新执行失败的原因,如果是数据库或者网络延时而导致数据更新执行失败,则间隔一段时间后向所述从库所在服务器重发所述数据访问请求,直至所述从库所在服务器的数据更新成功执行为止,如果是数据不一致而导致数据更新执行失败,则将业务系统相对应的主库和所述从库所在服务器中的相关数据进行比对,并根据主库数据对所述从库数据进行实时更新,然后转向步骤A5;
步骤A5、数据服务中间件装置判断是否已执行完数据同步任务队列中的所有数据访问请求?如果是,则继续扫描其他数据同步任务队列,转向步骤A1;如果否,则转向步骤A2。
所述步骤三中,由于主库和从库之间的数据同步必然存在延时,这样,当在从库中读取数据时,则有可能会读到从库未和主库同步的数据(即脏数据)。如图3所示,所述步骤三中,从所述业务系统相对应的主、从库所在服务器中选择一个数据库服务器,然后将所述数据访问请求发送给所述数据库服务器,最后将所述数据库服务器返回的数据访问结果转发给业务系统,进一步包括有:
步骤31、数据服务中间件装置判断业务系统提交的数据访问请求访问的业务数据的敏感度是否是高?如果是,则说明所述业务数据的实时性要求高,转向步骤32;如果否,则说明所述业务数据的实时性要求不高,根据负载均衡策略,从所述业务系统相对应的所有主、从库所在服务器中选择负载最低的数据库服务器,并将所述数据访问请求发送给所述负载最低的数据库服务器,最后将所述负载最低的数据库服务器返回的数据访问结果转发给业务系统,本流程结束;
所述业务数据的敏感度可以由业务系统在数据访问请求中指定、或者根据系统配置获取;
步骤32、数据服务中间件装置将所述业务系统提交的数据访问请求直接发送给主库所在服务器,然后将主库所在服务器返回的数据访问结果转发给业务系统;或者,根据负载均衡策略,从业务系统相对应的所有主、从库所在服务器中选择负载最低的数据库服务器,如果所述负载最低的数据库服务器是其主库所在服务器,则将业务系统提交的数据访问请求发送给主库所在服务器,如果所述负载最低的数据库服务器是其从库所在服务器,则等待至所述从库所在服务器的所有数据同步任务队列的数据访问请求不包含业务系统提交的数据访问请求的业务数据时,再将业务系统提交的数据访问请求发送给从库所在服务器,最后将所述负载最低的数据库服务器返回的数据访问结果转发给业务系统。
本发明还可以根据实际运行情况,动态的增加、删除、或变更业务系统对应的主、从库所在服务器,以提高系统性能,并且不会对运行产生任何影响。当增加从库时,由于在主、从库同步数据的过程中,有可能主库的数据发生更新而从库未及时同步,因此,数据服务中间件装置还能在同步数据的基础上,对主、从库数据的一致性进行检查,并根据差异情况进一步对未及时更新的数据进行同步,如图4所示,当增加业务系统对应的从库所在服务器时,还包括有:
步骤B1、数据服务中间件装置将业务系统的主库的所有数据复制到新增的从库所在服务器中;
步骤B2、数据服务中间件装置在业务和数据库映射表的业务系统相对应的从库所在服务器中增加所述新增的从库所在服务器,并当所述新增的从库所在服务器是新连接到数据服务中间件装置的数据库服务器时,为新增的从库所在服务器在内存库中构建若干个数据同步任务队列;
为业务系统新增从库所在服务器包括有两种情况:将已有的数据库服务器新增为业务系统的一个从库所在服务器、或者新加一个数据库服务器作为业务系统的从库所在服务器;
步骤B3、数据服务中间件装置从业务系统的主库所在服务器中依次读取所有主库的数据记录,并采用哈希函数来计算每条主库的数据记录的哈希值,然后将所述主库的数据记录的哈希值保存到主库数据内存池中;
步骤B4、数据服务中间件装置从新增的从库所在服务器中读取一条从库的数据记录,并采用哈希函数来计算所述从库的数据记录的哈希值;
步骤B5、数据服务中间件装置判断所述从库的数据记录的哈希值是否在主库数据内存池中?如果是,则删除主库数据内存池中对应的主库的数据记录的哈希值,然后转向步骤B6;如果否,则将所述从库的数据记录保存在主、从库差异集中,然后转向步骤B6;
步骤B6、数据服务中间件装置判断新增的从库所在服务器中的所有数据记录是否已读取完毕?如果是,则继续步骤B7;如果否,则继续从新增的从库所在服务器中读取一条未读取的从库的数据记录,并采用哈希函数来计算所述从库的数据记录的哈希值,然后转向步骤B5;;
步骤B7、数据服务中间件装置从主、从库差异集中提取所有数据记录,并根据每条数据记录查找到主、从库中的对应数据,然后根据主库数据对从库数据进行实时更新。
当删除业务系统对应的从库所在服务器时,还包括有:
数据服务中间件装置在业务和数据库映射表的业务系统相对应的从库所在服务器中删除所述从库所在服务器。
如图5所示,当业务系统的从库变更为主库时,还包括有:
步骤C1、数据服务中间件装置将业务系统发送来的数据访问请求存到缓冲区中;
步骤C2、数据服务中间件装置判断所述变更的从库所在服务器的所有数据同步任务队列是否已执行完毕?如果是,则修改业务和数据库映射表中业务系统相对应的主、从库所在服务器,然后从缓冲区中逐一读取业务系统发送来的数据访问请求,继续步骤一;如果否,则间隔一段时间后,再转向步骤C2。
如图6所示,本发明一种基于中间件提供数据库服务的系统,包括有:数据服务中间件装置和多个数据库服务器,所述数据服务中间件装置分别与业务系统、数据库服务器相连,所述多个数据库服务器包含有每个业务系统相对应的一个主库和多个从库所在服务器,所述数据服务中间件装置进一步包括有:
请求处理单元,用于接收业务系统发送来的数据访问请求,所述数据访问请求包括有访问的业务数据和访问方式,查询业务和数据库映射表中所述业务系统相对应的主、从库所在服务器,并将数据访问请求转发给其他内部单元,所述业务和数据库映射表保存了数据服务中间件装置所连接的多个业务系统及其分别对应的主、从库所在服务器;
数据写操作单元,用于接收请求处理单元转发来的、访问方式是数据写操作的数据访问请求,并将数据访问请求发送给业务系统相对应的主库所在服务器,当主库所在服务器根据数据访问请求完成对主库的数据更新后,再将数据访问请求存入内存库中,所述数据写操作包含但不限于:修改update、插入insert、删除delete操作以及存储过程;
数据读操作单元,用于接收请求处理单元转发来的、访问方式是数据读操作的数据访问请求,并从业务系统相对应的主、从库所在服务器中选择一个数据库服务器,然后将所述数据访问请求发送给所述数据库服务器,最后将所述数据库服务器返回的数据访问结果转发给业务系统;
数据同步单元,用于定时扫描内存库,当监测到内存库中存在有数据访问请求时,从内存库中提取数据访问请求,并将所述数据访问请求发送给其对应的从库所在服务器,由从库所在服务器根据数据访问请求完成对从库的数据更新。
由于对各从库来说,数据相关的数据访问请求的执行顺序必须与业务系统的请求顺序一致,数据相互无关的数据访问请求可以并发执行,以提高执行效率、缩短执行时间。所述数据服务中间件装置还包括有:
同步队列构建单元,用于为数据服务中间件装置所连接的每个数据库服务器在内存库中构建若干个数据同步任务队列,
数据写操作单元进一步包括有:
同步队列分配部件,用于从数据访问请求中提取操作实体ID,并采用哈希函数计算所述操作实体ID的哈希值,然后根据所述操作实体ID的哈希值、以及哈希值和数据同步任务队列的对应关系,将所述数据访问请求分配到其对应的从库所在服务器的一个数据同步任务队列中,所述操作实体ID是用于对互不相关的数据进行区分的一种数据范围特征,其值可以选取数据访问请求发出的业务系统ID、或者数据访问请求访问的业务数据ID(如集团号、用户号码等)。
数据同步单元进一步包括有:
同步队列监测部件,用于定时、顺序扫描内存库中每个数据库服务器的每个数据同步任务队列,并判断每个数据同步任务队列中是否存在有数据访问请求,如果是,则按先进先出的排队原则,从数据同步任务队列中逐一提取每个数据访问请求,并将数据访问请求发送给数据同步任务队列对应的从库所在服务器,当所述从库所在服务器的数据更新成功执行后再继续提取下一个数据访问请求。
由于主库和从库之间的数据同步必然存在延时,这样,当在从库中读取数据时,则有可能会读到从库未和主库同步的数据(即脏数据)。如图7所示,所述数据读操作单元进一步包括有:
数据敏感度判断部件,用于从数据访问请求中、或者系统配置来获取业务系统提交的数据访问请求访问的业务数据的敏感度,并根据业务数据的敏感度的高低,将数据访问请求转发给高敏感度数据处理部件或低敏感度数据处理部件;
低敏感度数据处理部件,用于根据负载均衡策略,从所述业务系统相对应的所有主、从库所在服务器中选择负载最低的数据库服务器,并将业务数据的敏感度低的数据访问请求发送给所述负载最低的数据库服务器,最后将所述负载最低的数据库服务器返回的数据访问结果转发给业务系统;
高敏感度数据处理部件,用于将业务数据的敏感度高的数据访问请求直接发送给主库所在服务器,然后将主库所在服务器返回的数据访问结果转发给业务系统;或者,根据负载均衡策略,从业务系统相对应的所有主、从库所在服务器中选择负载最低的数据库服务器,如果所述负载最低的数据库服务器是其主库所在服务器,则将业务系统提交的数据访问请求发送给主库所在服务器,如果所述负载最低的数据库服务器是其从库所在服务器,则等待至所述从库所在服务器的所有数据同步任务队列的数据访问请求不包含业务系统提交的数据访问请求的业务数据时,再将业务系统提交的数据访问请求发送给从库所在服务器,最后将所述负载最低的数据库服务器返回的数据访问结果转发给业务系统。
本发明还可以根据实际运行情况,动态的增加、删除、变更业务系统对应的主、从库所在服务器,以提高系统性能。所述数据服务中间件装置还包括有:
从库增加单元,用于将业务系统的主库的所有数据复制到新增的从库所在服务器中,并在业务和数据库映射表的业务系统相对应的从库所在服务器中增加新增的从库所在服务器,当所述新增的从库所在服务器是新连接到数据服务中间件装置的数据库服务器时,同时还通知同步队列构建单元为新增的从库所在服务器在内存库中构建若干个数据同步任务队列;
从库删除单元,用于在业务和数据库映射表的业务系统相对应的从库所在服务器中删除被删的从库所在服务器;
主从库变更单元,用于通知请求处理单元停止处理业务系统发送来的数据访问请求、并将业务系统发送来的数据访问请求存到缓冲区中,然后判断变更的从库所在服务器的所有数据同步任务队列是否已执行完毕,如果是,则修改业务和数据库映射表中业务系统相对应的主、从库所在服务器,然后通知请求处理单元从缓冲区中读取业务系统发送来的数据访问请求、并继续处理业务系统发送来的数据访问请求,如果否,则间隔一段时间后,再继续判断变更的从库所在服务器的所有数据同步任务队列是否已执行完毕。
当增加从库时,由于在主、从库同步数据的过程中,有可能主库的数据发生更新而从库未及时同步,所述从库增加单元还包括有:
主从库一致性比较部件,用于从业务系统的主库所在服务器中依次读取所有主库的数据记录,并采用哈希函数来计算每条主库的数据记录的哈希值,将所述主库的数据记录的哈希值保存到主库数据内存池中,同时从新增的从库所在服务器中也依次读取所有从库的数据记录,并采用哈希函数来计算所有从库的数据记录的哈希值,判断每个从库的数据记录的哈希值是否在主库数据内存池中,如果是,则删除主库数据内存池中对应的主库的数据记录的哈希值,如果否,则将所述从库的数据记录保存在主、从库差异集中,最后从主、从库差异集中提取所有数据记录,并根据每条数据记录查找到主、从库中的对应数据,然后根据主库数据对从库数据进行实时更新。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (13)
1.一种基于中间件提供数据服务的方法,其特征在于,当业务系统向数据服务中间件装置提交数据访问请求时,包括有:
步骤一、数据服务中间件装置接收业务系统发送来的数据访问请求,所述数据访问请求包括有访问的业务数据和访问方式,查询业务和数据库映射表中所述业务系统相对应的主、从库所在服务器,所述业务和数据库映射表保存了数据服务中间件装置所连接的多个业务系统及其分别对应的主、从库所在服务器,并判断所述数据访问请求的访问方式是否是数据写操作,如果是,则转向步骤二;
步骤二、数据服务中间件装置将数据访问请求发送给业务系统相对应的主库所在服务器,当主库所在服务器根据数据访问请求完成对主库的数据更新后,再将数据访问请求存入内存库中,
同时,还包括有:
步骤A、数据服务中间件装置定时扫描内存库,当监测到内存库中存在有数据访问请求时,从内存库中提取数据访问请求,并将所述数据访问请求发送给其对应的从库所在服务器,由从库所在服务器根据数据访问请求完成对从库的数据更新,
还包括有:
数据服务中间件装置为所连接的每个数据库服务器在内存库中构建若干个数据同步任务队列,
所述步骤二中,将数据访问请求存入内存库中,进一步包括有:
数据服务中间件装置从数据访问请求中提取操作实体ID,并采用哈希函数计算所述操作实体ID的哈希值,然后根据所述操作实体ID的哈希值、以及哈希值和数据同步任务队列的对应关系,将所述数据访问请求分配到其对应的从库所在服务器的一个数据同步任务队列中,所述操作实体ID是用于对互不相关的数据进行区分的一种数据范围特征,其值选取数据访问请求发出的业务系统ID、或者数据访问请求访问的业务数据ID。
2.根据权利要求1所述的方法,其特征在于,所述步骤A进一步包括有:
步骤A1、数据服务中间件装置定时、顺序扫描内存库中每个数据库服务器的每个数据同步任务队列,并判断每个数据同步任务队列中是否存在有数据访问请求,如果是,则转向步骤A2;如果否,则间隔一段时间后,转向步骤A1;
步骤A2、数据服务中间件装置按先进先出的排队原则,从所述数据同步任务队列中提取一个数据访问请求;
步骤A3、数据服务中间件装置将数据访问请求发送给数据同步任务队列对应的从库所在服务器;
步骤A4、数据服务中间件装置接收从库所在服务器返回的数据更新结果,并判断数据更新是否成功执行,如果是,则转向步骤A5;如果否,则进一步判断数据更新执行失败的原因,如果是数据库或者网络延时而导致数据更新执行失败,则间隔一段时间后向所述从库所在服务器重发所述数据访问请求,直至所述从库所在服务器的数据更新成功执行为止,如果是数据不一致而导致数据更新执行失败,则将业务系统相对应的主库和所述从库所在服务器中的相关数据进行比对,并根据主库数据对所述从库数据进行实时更新,然后转向步骤A5;
步骤A5、数据服务中间件装置判断是否已执行完数据同步任务队列中的所有数据访问请求,如果是,则继续扫描其他数据同步任务队列,转向步骤A1;如果否,则转向步骤A2。
3.根据权利要求1所述的方法,其特征在于,所述步骤一中,当数据访问请求的访问方式不是数据写操作时,还包括有:
步骤三、数据服务中间件装置判断数据访问请求的访问方式是否是数据读操作,如果是,则从所述业务系统相对应的主、从库所在服务器中选择一个数据库服务器,然后将所述数据访问请求发送给所述数据库服务器,最后将所述数据库服务器返回的数据访问结果转发给业务系统。
4.根据权利要求3所述的方法,其特征在于,所述步骤三中,从所述业务系统相对应的主、从库所在服务器中选择一个数据库服务器,然后将所述数据访问请求发送给所述数据库服务器,最后将所述数据库服务器返回的数据访问结果转发给业务系统,进一步包括有:
步骤31、数据服务中间件装置判断业务系统提交的数据访问请求访问的业务数据的敏感度是否是高,如果是,则转向步骤32;如果否,则根据负载均衡策略,从所述业务系统相对应的所有主、从库所在服务器中选择负载最低的数据库服务器,并将所述数据访问请求发送给所述负载最低的数据库服务器,最后将所述负载最低的数据库服务器返回的数据访问结果转发给业务系统,本流程结束;
步骤32、数据服务中间件装置将所述业务系统提交的数据访问请求直接发送给主库所在服务器,然后将主库所在服务器返回的数据访问结果转发给业务系统;或者,根据负载均衡策略,从业务系统相对应的所有主、从库所在服务器中选择负载最低的数据库服务器,如果所述负载最低的数据库服务器是其主库所在服务器,则将业务系统提交的数据访问请求发送给主库所在服务器,如果所述负载最低的数据库服务器是其从库所在服务器,则等待至所述从库所在服务器的所有数据同步任务队列的数据访问请求不包含业务系统提交的数据访问请求的业务数据时,再将业务系统提交的数据访问请求发送给从库所在服务器,最后将所述负载最低的数据库服务器返回的数据访问结果转发给业务系统。
5.根据权利要求1所述的方法,其特征在于,当增加业务系统对应的从库所在服务器时,包括有:
步骤B1、数据服务中间件装置将业务系统的主库的所有数据复制到新增的从库所在服务器中;
步骤B2、数据服务中间件装置在业务和数据库映射表的业务系统相对应的从库所在服务器中增加所述新增的从库所在服务器,并当所述新增的从库所在服务器是新连接到数据服务中间件装置的数据库服务器时,为新增的从库所在服务器在内存库中构建若干个数据同步任务队列。
6.根据权利要求5所述的方法,其特征在于,还包括有:
步骤B3、数据服务中间件装置从业务系统的主库所在服务器中依次读取所有主库的数据记录,并采用哈希函数来计算每条主库的数据记录的哈希值,然后将所述主库的数据记录的哈希值保存到主库数据内存池中;
步骤B4、数据服务中间件装置从新增的从库所在服务器中读取一条从库的数据记录,并采用哈希函数来计算所述从库的数据记录的哈希值;
步骤B5、数据服务中间件装置判断所述从库的数据记录的哈希值是否在主库数据内存池中,如果是,则删除主库数据内存池中对应的主库的数据记录的哈希值,然后转向步骤B6;如果否,则将所述从库的数据记录保存在主、从库差异集中,然后转向步骤B6;
步骤B6、数据服务中间件装置判断新增的从库所在服务器中的所有数据记录是否已读取完毕,如果是,则继续步骤B7;如果否,则继续从新增的从库所在服务器中读取一条未读取的从库的数据记录,并采用哈希函数来计算所述从库的数据记录的哈希值,然后转向步骤B5;
步骤B7、数据服务中间件装置从主、从库差异集中提取所有数据记录,并根据每条数据记录查找到主、从库中的对应数据,然后根据主库数据对从库数据进行实时更新。
7.根据权利要求1所述的方法,其特征在于,当业务系统的从库变更为主库时,包括有:
步骤C1、数据服务中间件装置将业务系统发送来的数据访问请求存到缓冲区中;
步骤C2、数据服务中间件装置判断所述变更的从库所在服务器的所有数据同步任务队列是否已执行完毕,如果是,则修改业务和数据库映射表中业务系统相对应的主、从库所在服务器,然后从缓冲区中逐一读取业务系统发送来的数据访问请求,继续步骤一;如果否,则间隔一段时间后,再转向步骤C2。
8.一种基于中间件提供数据服务的系统,其特征在于,包括有数据服务中间件装置和多个数据库服务器,所述数据服务中间件装置分别与业务系统、数据库服务器相连,所述多个数据库服务器包含有每个业务系统相对应的一个主库和多个从库所在服务器,所述数据服务中间件装置进一步包括有:
请求处理单元,用于接收业务系统发送来的数据访问请求,所述数据访问请求包括有访问的业务数据和访问方式,查询业务和数据库映射表中所述业务系统相对应的主、从库所在服务器,并将数据访问请求转发给其他内部单元,所述业务和数据库映射表保存了数据服务中间件装置所连接的多个业务系统及其分别对应的主、从库所在服务器;
数据写操作单元,用于接收请求处理单元转发来的、访问方式是数据写操作的数据访问请求,并将数据访问请求发送给业务系统相对应的主库所在服务器,当主库所在服务器根据数据访问请求完成对主库的数据更新后,再将数据访问请求存入内存库中;
数据同步单元,用于定时扫描内存库,当监测到内存库中存在有数据访问请求时,从内存库中提取数据访问请求,并将所述数据访问请求发送给其对应的从库所在服务器,由从库所在服务器根据数据访问请求完成对从库的数据更新,
所述数据服务中间件装置还包括有:
同步队列构建单元,用于为数据服务中间件装置所连接的每个数据库服务器在内存库中构建若干个数据同步任务队列,
数据写操作单元进一步包括有:
同步队列分配部件,用于从数据访问请求中提取操作实体ID,并采用哈希函数计算所述操作实体ID的哈希值,然后根据所述操作实体ID的哈希值、以及哈希值和数据同步任务队列的对应关系,将所述数据访问请求分配到其对应的从库所在服务器的一个数据同步任务队列中,所述操作实体ID是用于对互不相关的数据进行区分的一种数据范围特征,其值选取数据访问请求发出的业务系统ID、或者数据访问请求访问的业务数据ID。
9.根据权利要求8所述的系统,其特征在于,所述数据同步单元进一步包括有:
同步队列监测部件,用于定时、顺序扫描内存库中每个数据库服务器的每个数据同步任务队列,并判断每个数据同步任务队列中是否存在有数据访问请求,如果是,则按先进先出的排队原则,从数据同步任务队列中逐一提取每个数据访问请求,并将数据访问请求发送给数据同步任务队列对应的从库所在服务器,当所述从库所在服务器的数据更新成功执行后再继续提取下一个数据访问请求。
10.根据权利要求8所述的系统,其特征在于,所述数据服务中间件装置还包括有:
数据读操作单元,用于接收请求处理单元转发来的、访问方式是数据读操作的数据访问请求,并从业务系统相对应的主、从库所在服务器中选择一个数据库服务器,然后将所述数据访问请求发送给所述数据库服务器,最后将所述数据库服务器返回的数据访问结果转发给业务系统。
11.根据权利要求10所述的系统,其特征在于,所述数据读操作单元进一步包括有:
数据敏感度判断部件,用于从数据访问请求中、或者系统配置来获取业务系统提交的数据访问请求访问的业务数据的敏感度,并根据业务数据的敏感度的高低,将数据访问请求转发给高敏感度数据处理部件或低敏感度数据处理部件;
低敏感度数据处理部件,用于根据负载均衡策略,从所述业务系统相对应的所有主、从库所在服务器中选择负载最低的数据库服务器,并将业务数据的敏感度低的数据访问请求发送给所述负载最低的数据库服务器,最后将所述负载最低的数据库服务器返回的数据访问结果转发给业务系统;
高敏感度数据处理部件,用于将业务数据的敏感度高的数据访问请求直接发送给主库所在服务器,然后将主库所在服务器返回的数据访问结果转发给业务系统;或者,根据负载均衡策略,从业务系统相对应的所有主、从库所在服务器中选择负载最低的数据库服务器,如果所述负载最低的数据库服务器是其主库所在服务器,则将业务系统提交的数据访问请求发送给主库所在服务器,如果所述负载最低的数据库服务器是其从库所在服务器,则等待至所述从库所在服务器的所有数据同步任务队列的数据访问请求不包含业务系统提交的数据访问请求的业务数据时,再将业务系统提交的数据访问请求发送给从库所在服务器,最后将所述负载最低的数据库服务器返回的数据访问结果转发给业务系统。
12.根据权利要求8所述的系统,其特征在于,所述数据服务中间件装置还包括有:
从库增加单元,用于将业务系统的主库的所有数据复制到新增的从库所在服务器中,并在业务和数据库映射表的业务系统相对应的从库所在服务器中增加新增的从库所在服务器,当所述新增的从库所在服务器是新连接到数据服务中间件装置的数据库服务器时,同时还通知同步队列构建单元为新增的从库所在服务器在内存库中构建若干个数据同步任务队列;或,
从库删除单元,用于在业务和数据库映射表的业务系统相对应的从库所在服务器中删除被删的从库所在服务器;或,
主从库变更单元,用于通知请求处理单元停止处理业务系统发送来的数据访问请求、并将业务系统发送来的数据访问请求存到缓冲区中,然后判断变更的从库所在服务器的所有数据同步任务队列是否已执行完毕,如果是,则修改业务和数据库映射表中业务系统相对应的主、从库所在服务器,然后通知请求处理单元从缓冲区中读取业务系统发送来的数据访问请求、并继续处理业务系统发送来的数据访问请求,如果否,则间隔一段时间后,再继续判断变更的从库所在服务器的所有数据同步任务队列是否已执行完毕。
13.根据权利要求12所述的系统,其特征在于,所述从库增加单元进一步包括有:
主从库一致性比较部件,用于从业务系统的主库所在服务器中依次读取所有主库的数据记录,并采用哈希函数来计算每条主库的数据记录的哈希值,将所述主库的数据记录的哈希值保存到主库数据内存池中,同时从新增的从库所在服务器中也依次读取所有从库的数据记录,并采用哈希函数来计算所有从库的数据记录的哈希值,判断每个从库的数据记录的哈希值是否在主库数据内存池中,如果是,则删除主库数据内存池中对应的主库的数据记录的哈希值,如果否,则将所述从库的数据记录保存在主、从库差异集中,最后从主、从库差异集中提取所有数据记录,并根据每条数据记录查找到主、从库中的对应数据,然后根据主库数据对从库数据进行实时更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310301307.0A CN103390041B (zh) | 2013-07-18 | 2013-07-18 | 一种基于中间件提供数据服务的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310301307.0A CN103390041B (zh) | 2013-07-18 | 2013-07-18 | 一种基于中间件提供数据服务的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103390041A CN103390041A (zh) | 2013-11-13 |
CN103390041B true CN103390041B (zh) | 2016-05-04 |
Family
ID=49534313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310301307.0A Expired - Fee Related CN103390041B (zh) | 2013-07-18 | 2013-07-18 | 一种基于中间件提供数据服务的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103390041B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394171B (zh) * | 2014-12-11 | 2018-12-21 | 北京奇虎科技有限公司 | 一种数据操作方法及装置 |
CN105786877B (zh) * | 2014-12-23 | 2019-02-26 | 中国移动通信集团山东有限公司 | 一种数据存储方法、系统及查询方法 |
CN105868205B (zh) * | 2015-01-21 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 数据读取方法及装置 |
CN104834724B (zh) * | 2015-05-12 | 2018-12-18 | 广东睿江云计算股份有限公司 | 一种数据库同步方法和装置 |
CN105049372A (zh) * | 2015-06-18 | 2015-11-11 | 福建富士通信息软件有限公司 | 一种扩展消息中间件吞吐量的方法及系统 |
CN107018091B (zh) * | 2016-02-29 | 2021-04-27 | 阿里巴巴集团控股有限公司 | 资源请求的调度方法和装置 |
CN107193833A (zh) * | 2016-03-15 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 数据库访问的监控方法和装置 |
CN107231313A (zh) * | 2016-03-25 | 2017-10-03 | 北京京东尚科信息技术有限公司 | 基于消息路由方式的数据同步方法和系统 |
CN107844689A (zh) * | 2016-09-20 | 2018-03-27 | 天脉聚源(北京)科技有限公司 | 一种用户注册的方法和系统 |
CN108173892B (zh) * | 2016-12-07 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 云端镜像操作方法和装置 |
CN107085605B (zh) * | 2017-04-12 | 2020-06-09 | 泰康保险集团股份有限公司 | 用于数据打包的方法、装置及电子设备 |
CN110019500A (zh) * | 2017-08-21 | 2019-07-16 | 东软集团股份有限公司 | 一种复制组状态监控方法、装置、设备及存储介质 |
CN107592215A (zh) * | 2017-08-31 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种管理消息中间件的方法 |
CN108052634B (zh) * | 2017-12-20 | 2021-11-12 | 江苏瑞中数据股份有限公司 | 一种电网生产控制大区与资产管理大区多信息系统的集成方法 |
CN110309176B (zh) * | 2018-03-15 | 2024-04-05 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和数据中转站 |
CN108717384B (zh) * | 2018-05-18 | 2021-11-23 | 创新先进技术有限公司 | 一种数据备份方法及装置 |
CN109086432A (zh) * | 2018-08-10 | 2018-12-25 | 纳里健康科技有限公司 | 一种分布式数据库读写中间件 |
CN110858204B (zh) * | 2018-08-16 | 2023-09-19 | 中国移动通信集团重庆有限公司 | 查询请求的处理方法、设备和介质 |
CN110515710A (zh) * | 2019-08-06 | 2019-11-29 | 深圳市随手科技有限公司 | 异步任务调度方法、装置、计算机设备和存储介质 |
CN110515923B (zh) * | 2019-08-15 | 2022-12-06 | 福建中信网安信息科技有限公司 | 一种分布式数据库之间的数据迁移方法和系统 |
CN110659299B (zh) * | 2019-08-30 | 2020-11-10 | 珠海格力电器股份有限公司 | 数据更新的方法及装置、前端开发客户端 |
CN111488382A (zh) * | 2020-04-16 | 2020-08-04 | 北京思特奇信息技术股份有限公司 | 一种数据调用方法、系统及电子设备 |
CN111752486B (zh) * | 2020-06-18 | 2023-05-05 | 杭州雾联科技有限公司 | 基于io调度策略降低无盘工作站回写数据读延迟的方法 |
CN112559913B (zh) * | 2020-12-11 | 2023-10-20 | 车智互联(北京)科技有限公司 | 一种数据处理方法、装置、计算设备及可读存储介质 |
CN113766004A (zh) * | 2021-07-27 | 2021-12-07 | 深圳市珍爱捷云信息技术有限公司 | 一种基于多云平台的灾备系统、方法及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710901A (zh) * | 2009-10-22 | 2010-05-19 | 乐视网信息技术(北京)股份有限公司 | 一种具有p2p功能的分布式存储系统和方法 |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及系统 |
CN102110121A (zh) * | 2009-12-24 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其系统 |
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现系统及方法 |
CN102591964A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 数据读写分离机制的实现方法和装置 |
CN102622427A (zh) * | 2012-02-27 | 2012-08-01 | 杭州闪亮科技有限公司 | 读写分离数据库的方法及系统 |
CN102982145A (zh) * | 2012-11-23 | 2013-03-20 | 北京奇虎科技有限公司 | 分配数据库操作请求的系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6862593B2 (en) * | 2002-05-17 | 2005-03-01 | Sun Microsystems, Inc. | Separation of database transactions |
US7801848B2 (en) * | 2007-08-02 | 2010-09-21 | International Business Machines Corporation | Redistributing a distributed database |
-
2013
- 2013-07-18 CN CN201310301307.0A patent/CN103390041B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710901A (zh) * | 2009-10-22 | 2010-05-19 | 乐视网信息技术(北京)股份有限公司 | 一种具有p2p功能的分布式存储系统和方法 |
CN102110121A (zh) * | 2009-12-24 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其系统 |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及系统 |
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现系统及方法 |
CN102591964A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 数据读写分离机制的实现方法和装置 |
CN102622427A (zh) * | 2012-02-27 | 2012-08-01 | 杭州闪亮科技有限公司 | 读写分离数据库的方法及系统 |
CN102982145A (zh) * | 2012-11-23 | 2013-03-20 | 北京奇虎科技有限公司 | 分配数据库操作请求的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103390041A (zh) | 2013-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103390041B (zh) | 一种基于中间件提供数据服务的方法和系统 | |
US20220067025A1 (en) | Ordering transaction requests in a distributed database according to an independently assigned sequence | |
CN103026355B (zh) | 数据库管理系统 | |
US10268743B2 (en) | Distributed database transaction protocol | |
CN106815218B (zh) | 数据库访问方法、装置和数据库系统 | |
CN111338766A (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
JP2023546249A (ja) | トランザクション処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
US9990225B2 (en) | Relaxing transaction serializability with statement-based data replication | |
Balegas et al. | Extending eventually consistent cloud databases for enforcing numeric invariants | |
US20180004777A1 (en) | Data distribution across nodes of a distributed database base system | |
CN102955845A (zh) | 数据访问方法、装置与分布式数据库系统 | |
CN104423982B (zh) | 请求的处理方法和处理设备 | |
JP5686034B2 (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
EP3977307B1 (en) | Caching techniques for a database change stream | |
WO2022111188A1 (zh) | 事务处理方法、系统、装置、设备、存储介质及程序产品 | |
US11263270B1 (en) | Heat balancing in a distributed time-series database | |
CN106126583A (zh) | 一种分布式图数据库的集群强一致性处理方法及系统 | |
CN110334145A (zh) | 数据处理的方法和装置 | |
CN112199427A (zh) | 一种数据处理方法和系统 | |
CN109614270A (zh) | 基于Hbase的数据读写方法、装置、设备及存储介质 | |
US11409771B1 (en) | Splitting partitions across clusters in a time-series database | |
CN110119396A (zh) | 数据管理方法及相关产品 | |
CN109710223A (zh) | 基于分布式kv存储系统的api网关热插拔系统 | |
Helland | Life beyond distributed transactions: an apostate’s opinion | |
US11366598B1 (en) | Dynamic lease assignments in a time-series database |
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 | ||
CP02 | Change in the address of a patent holder |
Address after: 310013, Zhejiang, Xihu District, Wensanlu Road, No. 398, 4 floor, Hangzhou Patentee after: Dongxin Beiyou Information Technology Co., Ltd., Hangzhou Address before: 100191 Beijing, Zhichun Road, No. 9, hearing the building on the floor of the 7 floor, Patentee before: Dongxin Beiyou Information Technology Co., Ltd., Hangzhou |
|
CP02 | Change in the address of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160504 Termination date: 20180718 |
|
CF01 | Termination of patent right due to non-payment of annual fee |