CN108304406A - 一种数据库读写方法、装置及电子设备 - Google Patents

一种数据库读写方法、装置及电子设备 Download PDF

Info

Publication number
CN108304406A
CN108304406A CN201710022710.8A CN201710022710A CN108304406A CN 108304406 A CN108304406 A CN 108304406A CN 201710022710 A CN201710022710 A CN 201710022710A CN 108304406 A CN108304406 A CN 108304406A
Authority
CN
China
Prior art keywords
library
write operation
task
write
read operation
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
CN201710022710.8A
Other languages
English (en)
Other versions
CN108304406B (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710022710.8A priority Critical patent/CN108304406B/zh
Publication of CN108304406A publication Critical patent/CN108304406A/zh
Application granted granted Critical
Publication of CN108304406B publication Critical patent/CN108304406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文公开了一种数据库读写方法、装置和电子设备。所述数据库读写方法包括:数据库代理接收到预定类型的写操作请求后,检查从库的任务处理状态;根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理。本文的技术方案能够避免数据库主库的写操作与从库的读操作产生冲突,改善用户体验。

Description

一种数据库读写方法、装置及电子设备
技术领域
本发明涉及计算机通信技术,尤指一种数据库读写方法、装置及电子设备。
背景技术
读写分离是一种常见的数据库系统扩展方式。如图1所示,主数据库负责处理含有写操作的请求,从数据库负责处理只读请求。用户的请求被数据库代理(Proxy)组件识别和分配。主库的写操作产生的更新,通过事务日志,同步给从库。从库通过回放日志,来同步数据,保持从库中的数据与主库的一致。
数据库代理在分配用户请求时,将含有写操作的请求分配给主库,只读请求分配给从库。如果写操作请求是数据库模式定义语言(Data Definition Language,DDL)操作或其他可能长时间阻塞查询的更新操作,由于上述写操作在主库执行时,对主库的修改不断通过日志同步到从库,所以从库在响应读请求时可能遇到主从同步操作,两种操作可能会涉及对同一数据块的读和写,从而产生冲突。相关技术中,有两种处理方法,一种方法是主从同步操作等待查询操作完成后再执行,这样处理会造成主从数据同步延迟,使得从库的查询结果不准确。另一种方法是在查询进行中遇到主从同步则终止查询,这样处理会导致用户等待很长时间后却发现查询没有成功,影响用户体验。
发明内容
本申请提供了一种数据库读写方法、装置及电子设备,能够避免数据库主库的写操作与从库的读操作产生冲突,改善用户体验。
本申请采用如下技术方案:
本申请实施例提供了一种数据库读写方法,包括:
数据库代理接收到预定类型的写操作请求后,检查从库的任务处理状态;
根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理。
可选地,所述根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理,包括:
在检测到所述从库存在未完成的读操作任务时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
可选地,所述接受所述写操作请求但进行延迟处理,包括:
等待所述从库处理读操作任务,在检测到所述从库处理完所有的读操作任务后,将所述预定类型的写操作请求发送到主库;或者
启动定时器,在定时时间到之前检测到所述从库处理完所有的读操作任务,则将所述预定类型的写操作请求发送到主库,在定时时间到时检测到所述从库还存在未完成的读操作任务,则向所述写操作请求的发起方返回失败响应。
可选地,根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理之前,所述方法还包括:
判断所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象是否为同一对象或存在关联关系;
在判定所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象为同一对象或存在关联关系时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
可选地,所述方法还包括:
在接收到读操作请求后,检查主库的任务处理状态;
在检测到所述主库存在未完成的预订类型的写操作任务时,将所述读操作请求发送到所述主库。
可选地,在将所述读操作请求发送到所述主库之前,所述方法还包括:
判断所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象是否为同一对象或存在关联关系;
在判定所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象为同一对象或存在关联关系时,将所述读操作请求发送到所述主库。
本申请实施例还提供了一种数据库读写方法,应用于读写分离的数据库系统中的数据库代理,包括:
写操作请求接收模块,用于接收到预定类型的写操作请求后,检查从库的任务处理状态;
写操作请求处理模块,用于根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理。
可选地,写操作请求处理模块,用于采用以下方式根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理:
在检测到所述从库存在未完成的读操作任务时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
可选地,写操作请求处理模块,用于采用以下方式接受所述写操作请求但进行延迟处理:
等待所述从库处理读操作任务,在检测到所述从库处理完所有的读操作任务后,将所述预定类型的写操作请求发送到主库;或者
启动定时器,在定时时间到之前检测到所述从库处理完所有的读操作任务,则将所述预定类型的写操作请求发送到主库,在定时时间到时检测到所述从库还存在未完成的读操作任务,则向所述写操作请求的发起方返回失败响应。
可选地,写操作请求接收模块,还用于在根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理之前,判断所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象是否为同一对象或存在关联关系;在判定所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象为同一对象或存在关联关系时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
可选地,所述装置还包括:
读操作请求接收模块,用于在接收到读操作请求后,检查主库的任务处理状态;
读操作请求处理模块,用于在检测到所述主库存在未完成的预订类型的写操作任务时,将所述读操作请求发送到所述主库。
可选地,读操作请求接收模块,还用于在将所述读操作请求发送到所述主库之前,判断所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象是否为同一对象或存在关联关系;在判定所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象为同一对象或存在关联关系时,将所述读操作请求发送到所述主库。
本申请实施例还提供了一种用于数据库读写的电子设备,包括:存储器和处理器;
所述存储器用于保存用于数据库读写的程序,所述用于数据库读写的程序在被所述处理器读取执行时,执行以下操作:
接收到预定类型的写操作请求后,检查从库的任务处理状态;
根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理。
本申请包括以下优点:
本申请至少一个实施例,数据库代理接收到预定类型的写操作请求后,检查从库的任务处理状态,根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理,该实施例的技术方案可以避免数据库主库的写操作与从库的读操作产生冲突,改善用户体验。
当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为现有技术中读写分离的数据库系统的结构示意图;
图2为本发明实施例一的一种数据库读写方法的流程图;
图3为本发明应用示例1的一种数据库读写方法的流程图;
图4为本发明实施例二的一种数据库读写装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一
如图2所示,一种数据库读写方法,包括:
S210,数据库代理接收到预定类型的写操作请求后,检查从库的任务处理状态;
S220,根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理;
本实施例中,所述根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理,包括:
在检测到所述从库存在未完成的读操作任务时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
本实施例中,所述接受所述写操作请求但进行延迟处理,包括:
等待所述从库处理读操作任务,在检测到所述从库处理完所有的读操作任务后,将所述预定类型的写操作请求发送到主库;或者
启动定时器,在定时时间到之前检测到所述从库处理完所有的读操作任务,则将所述预定类型的写操作请求发送到主库,在定时时间到时检测到所述从库还存在未完成的读操作任务,则向所述写操作请求的发起方返回失败响应;
一种实现方式中,根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理之前,所述方法还包括:
判断所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象是否为同一对象或存在关联关系;
在判定所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象为同一对象或存在关联关系时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理;
本实施例中,所述预定类型的写操作请求包括:数据库模式定义语言DDL操作,针对元数据的操作、或磁盘整理操作;
在其他实现方式中,所述预定类型的写操作请求也可以是其他类型的写操作请求,这些写操作请求可能会与从库的读操作任务发生读写冲突。具体实现时可以根据实际的应用场景设置或调整预定类型的种类。
一种实现方式中,根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理,还包括:
在检测到所述从库已经完成所有的读操作任务时,将所述预定类型的写操作请求发送到主库;
一种实现方式中,所述方法还包括:
S230,在接收到读操作请求后,检查主库的任务处理状态;
S240,在检测到所述主库存在未完成的预订类型的写操作任务时,将所述读操作请求发送到所述主库;
一种实现方式中,在检查主库的任务处理状态后,所述方法还包括:
在检测到所述主库不存在未完成的预订类型的写操作任务时,将所述读操作请求发送到所述从库;
一种实现方式中,在将所述读操作请求发送到所述主库之前,所述方法还包括:
判断所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象是否为同一对象或存在关联关系;
在判定所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象为同一对象或存在关联关系时,将所述读操作请求发送到所述主库。
主库在处理预定类型的写操作任务时,通常会为元数据加排他锁,在之后接收到读操作请求时,所述读操作请求发现此时元数据被加上了排他锁,则会立即向读操作请求的发起方返回失败响应,或者,启动一个定时器,如果所述定时器定时时间到时所述排它锁还处于锁定状态,则向读操作请求的发起方返回失败响应,如果所述定时器定时时间未到时所述排它锁处于解锁状态,则主库开始处理所述读操作请求。读操作和预订类型的写操作都由主库去处理,一方面能够避免用户等待很长时间才发现读操作失败,另一方面也可以避免主库和从库之间数据不同步。
下面用一个例子(应用示例1)说明本实施例。如图3所示,本例子中,预订类型的写操作请求是数据库模式定义语言DDL操作,数据库读写方法包括下述步骤301~308:
步骤S301,数据库代理接收到用户的DDL操作请求;
步骤S302,判断从库是否存在未完成的读操作任务,是则执行步骤S304,否则执行步骤S303;
步骤S303,将所述DDL操作请求发送给主库,转到步骤S305;
步骤S304,向用户返回失败响应,或者延迟处理所述DDL操作请求;
其中,所述延迟处理所述DDL操作请求,可以是在检测到所述从库处理完所述查询任务后,再将所述DDL操作请求发送到主库;或者,启动定时器,如果定时时间到时所述从库还未处理完所述查询请求,则向用户返回失败响应;如果定时时间到之前检测到所述从库已经处理完所述查询请求,则将所述DDL操作请求发送到主库;
在其他的实现方式中,在步骤S302判定出从库存在未完成的读操作任务后,还可以增加一个判断步骤:判断所述DDL操作请求的处理对象与所述从库未完成的读操作任务的处理对象是否为同一对象或存在关联关系,是则执行步骤S304,否则执行步骤S303;
比如,如果DDL操作请求是对表1~20的元数据进行操作,从库正在进行查询操作,所述查询操作的处理对象是表1~10,则判定所述DDL操作与所述查询操作的处理对象存在关联关系;
步骤S305,数据库代理接收到用户的查询请求;
步骤S306,判断主库是否存在未完成的预定类型的写操作任务,是则执行步骤S308,否则执行步骤S307;
步骤S307,将所述查询请求发送给从库,结束;
步骤S308,将所述查询请求发送到所述主库;
在其他的实现方式中,在步骤S306判定出主库存在未完成的预定类型的写操作任务后,还可以增加一个判断步骤:判断所述查询请求的处理对象与所述主库未完成的写操作任务的处理对象是否为同一对象或存在关联关系,是则执行步骤S308,否则执行步骤S307;
比如,如果所述查询请求的处理对象是表11~15,主库正在进行DDL操作,所述DDL操作是对表1~20的元数据进行操作,则判定所述DDL操作与所述查询操作的处理对象存在关联关系;
主库在处理DDL操作请求时,通常会为元数据加排他锁,在之后接收到查询请求时,所述查询请求发现此时元数据被加上了排他锁,则会立即向用户返回失败响应,或者,启动一个定时器,如果所述定时器定时时间到时所述排它锁还处于锁定状态,则向用户返回失败响应,如果所述定时器定时时间未到时所述排它锁处于解锁状态,则主库开始处理所述查询请求。查询请求和DDL操作都由主库去处理,一方面能够避免用户等待很长时间才发现查询失败,从而改善用户体验;另一方面也可以避免主库和从库之间数据不同步,防止从库查询结果不准确。
在其他的实现方式中,上述步骤S301-304,与步骤S305-308之间可以没有先后关系,二者独立运行;
实施例二
如图4所示,一种数据库读写装置,应用于读写分离的数据库系统中的数据库代理,包括:
写操作请求接收模块401,用于接收到预定类型的写操作请求后,检查从库的任务处理状态;
写操作请求处理模块402,用于根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理。
本实施例中,所述写操作请求接收模块401是上述装置中负责接收预定类型的写操作请求的部分,可以是软件、硬件、或两者的结合。
本实施例中,所述写操作请求处理模块402是上述装置中负责处理所述预定类型写操作请求的部分,可以是软件、硬件、或两者的结合。
本实施例中,写操作请求处理模块,用于采用以下方式根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理:
在检测到所述从库存在未完成的读操作任务时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
本实施例中,所述写操作请求处理模块,还用于采用以下方式根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理:
在检测到所述从库已经完成所有的读操作任务时,将所述预定类型的写操作请求发送到主库;
本实施例中,写操作请求处理模块,用于采用以下方式接受所述写操作请求但进行延迟处理:
等待所述从库处理读操作任务,在检测到所述从库处理完所有的读操作任务后,将所述预定类型的写操作请求发送到主库;或者
启动定时器,在定时时间到之前检测到所述从库处理完所有的读操作任务,则将所述预定类型的写操作请求发送到主库,在定时时间到时检测到所述从库还存在未完成的读操作任务,则向所述写操作请求的发起方返回失败响应。
在一种实施方式中,写操作请求接收模块,还用于在根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理之前,判断所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象是否为同一对象或存在关联关系;在判定所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象为同一对象或存在关联关系时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
本实施例中,所述预定类型的写操作请求包括:数据库模式定义语言DDL操作,针对元数据的操作、或磁盘整理操作;
在其他实现方式中,所述预定类型的写操作请求也可以是其他类型的写操作请求,这些写操作请求可能会与从库的读操作任务发生读写冲突。具体实现时可以根据实际的应用场景设置或调整预定类型的种类。
一种实施方式中,所述装置还包括:
读操作请求接收模块403,用于在接收到读操作请求后,检查主库的任务处理状态;
读操作请求处理模块404,用于在检测到所述主库存在未完成的预订类型的写操作任务时,将所述读操作请求发送到所述主库。
一种实施方式中,读操作请求接收模块,还用于在将所述读操作请求发送到所述主库之前,判断所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象是否为同一对象或存在关联关系;在判定所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象为同一对象或存在关联关系时,将所述读操作请求发送到所述主库。
一种实现方式中,读操作请求处理模块404,还用于在检测到所述主库已经完成所有预订类型的写操作任务时,将所述读操作请求发送到所述从库。
实施例三
一种用于数据库读写的电子设备,包括:存储器和处理器;
所述存储器用于保存用于数据库读写的程序,所述用于数据库读写的程序在被所述处理器读取执行时,执行以下操作:
接收到预定类型的写操作请求后,检查从库的任务处理状态;
根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理。
本实施例中用于数据库读写的程序在被处理器读取执行时,所执行的操作对应于实施例一的步骤S210~S220;该程序所执行的操作的其它细节可参见实施例一。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (13)

1.一种数据库读写方法,包括:
数据库代理接收到预定类型的写操作请求后,检查从库的任务处理状态;
根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理。
2.根据权利要求1所述的方法,其特征在于:
所述根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理,包括:
在检测到所述从库存在未完成的读操作任务时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
3.根据权利要求2所述的方法,其特征在于:
所述接受所述写操作请求但进行延迟处理,包括:
等待所述从库处理读操作任务,在检测到所述从库处理完所有的读操作任务后,将所述预定类型的写操作请求发送到主库;或者
启动定时器,在定时时间到之前检测到所述从库处理完所有的读操作任务,则将所述预定类型的写操作请求发送到主库,在定时时间到时检测到所述从库还存在未完成的读操作任务,则向所述写操作请求的发起方返回失败响应。
4.根据权利要求1所述的方法,其特征在于,根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理之前,所述方法还包括:
判断所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象是否为同一对象或存在关联关系;
在判定所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象为同一对象或存在关联关系时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到读操作请求后,检查主库的任务处理状态;
在检测到所述主库存在未完成的预订类型的写操作任务时,将所述读操作请求发送到所述主库。
6.根据权利要求5所述的方法,其特征在于,在将所述读操作请求发送到所述主库之前,所述方法还包括:
判断所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象是否为同一对象或存在关联关系;
在判定所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象为同一对象或存在关联关系时,将所述读操作请求发送到所述主库。
7.一种数据库读写方法,应用于读写分离的数据库系统中的数据库代理,包括:
写操作请求接收模块,用于接收到预定类型的写操作请求后,检查从库的任务处理状态;
写操作请求处理模块,用于根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理。
8.根据权利要求7所述的装置,其特征在于:
写操作请求处理模块,用于采用以下方式根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理:
在检测到所述从库存在未完成的读操作任务时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
9.根据权利要求8所述的装置,其特征在于:
写操作请求处理模块,用于采用以下方式接受所述写操作请求但进行延迟处理:
等待所述从库处理读操作任务,在检测到所述从库处理完所有的读操作任务后,将所述预定类型的写操作请求发送到主库;或者
启动定时器,在定时时间到之前检测到所述从库处理完所有的读操作任务,则将所述预定类型的写操作请求发送到主库,在定时时间到时检测到所述从库还存在未完成的读操作任务,则向所述写操作请求的发起方返回失败响应。
10.根据权利要求7所述的装置,其特征在于:
写操作请求接收模块,还用于在根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理之前,判断所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象是否为同一对象或存在关联关系;在判定所述预定类型的写操作请求的处理对象与所述从库未完成的读操作任务的处理对象为同一对象或存在关联关系时,拒绝所述写操作请求并向所述写操作请求的发起方返回失败响应,或者接受所述写操作请求但进行延迟处理。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
读操作请求接收模块,用于在接收到读操作请求后,检查主库的任务处理状态;
读操作请求处理模块,用于在检测到所述主库存在未完成的预订类型的写操作任务时,将所述读操作请求发送到所述主库。
12.根据权利要求11所述的装置,其特征在于:
读操作请求接收模块,还用于在将所述读操作请求发送到所述主库之前,判断所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象是否为同一对象或存在关联关系;在判定所述预定类型的写操作任务的处理对象与所述读操作请求的处理对象为同一对象或存在关联关系时,将所述读操作请求发送到所述主库。
13.一种用于数据库读写的电子设备,包括:存储器和处理器;
其特征在于:
所述存储器用于保存用于数据库读写的程序,所述用于数据库读写的程序在被所述处理器读取执行时,执行以下操作:
接收到预定类型的写操作请求后,检查从库的任务处理状态;
根据从库完成读操作任务的情况对所述预定类型的写操作请求进行处理。
CN201710022710.8A 2017-01-12 2017-01-12 一种数据库读写方法、装置及电子设备 Active CN108304406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710022710.8A CN108304406B (zh) 2017-01-12 2017-01-12 一种数据库读写方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710022710.8A CN108304406B (zh) 2017-01-12 2017-01-12 一种数据库读写方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108304406A true CN108304406A (zh) 2018-07-20
CN108304406B CN108304406B (zh) 2022-10-25

Family

ID=62872381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710022710.8A Active CN108304406B (zh) 2017-01-12 2017-01-12 一种数据库读写方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108304406B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581238A (zh) * 2020-04-01 2020-08-25 北京奇艺世纪科技有限公司 信息查询方法及装置、电子设备、计算机可读存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020059324A1 (en) * 2000-10-25 2002-05-16 Manabu Kitamura Computer system and a database access method thereof
US20020198880A1 (en) * 2001-06-20 2002-12-26 International Business Machines Corporation Of Armonk Method and apparatus for application execution of distributed database service updates
US20030217064A1 (en) * 2002-05-17 2003-11-20 Walters Arthur P. Separation of database transactions
WO2004025519A2 (en) * 2002-09-13 2004-03-25 Netezza Corporation Controlling data visibility in multi-version database systems
CN102402596A (zh) * 2011-11-07 2012-04-04 北京搜狗科技发展有限公司 一种主从分离数据库的读写方法和系统
CN102591964A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 数据读写分离机制的实现方法和装置
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统
CN103885986A (zh) * 2012-12-21 2014-06-25 阿里巴巴集团控股有限公司 主备数据库同步的方法和装置
CN104219085A (zh) * 2014-08-07 2014-12-17 深圳市同洲电子股份有限公司 一种数据库的数据处理方法、代理服务器及系统
CN104504145A (zh) * 2015-01-05 2015-04-08 浪潮(北京)电子信息产业有限公司 一种实现数据库读写分离的方法和设备
CN105991565A (zh) * 2015-02-05 2016-10-05 阿里巴巴集团控股有限公司 读写分离的方法、系统和数据库代理服务器
CN106126600A (zh) * 2016-06-21 2016-11-16 浪潮电子信息产业股份有限公司 一种执行读写分离的方法、装置及系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020059324A1 (en) * 2000-10-25 2002-05-16 Manabu Kitamura Computer system and a database access method thereof
US20020198880A1 (en) * 2001-06-20 2002-12-26 International Business Machines Corporation Of Armonk Method and apparatus for application execution of distributed database service updates
US20030217064A1 (en) * 2002-05-17 2003-11-20 Walters Arthur P. Separation of database transactions
WO2004025519A2 (en) * 2002-09-13 2004-03-25 Netezza Corporation Controlling data visibility in multi-version database systems
CN102402596A (zh) * 2011-11-07 2012-04-04 北京搜狗科技发展有限公司 一种主从分离数据库的读写方法和系统
CN102591964A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 数据读写分离机制的实现方法和装置
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统
CN103885986A (zh) * 2012-12-21 2014-06-25 阿里巴巴集团控股有限公司 主备数据库同步的方法和装置
CN104219085A (zh) * 2014-08-07 2014-12-17 深圳市同洲电子股份有限公司 一种数据库的数据处理方法、代理服务器及系统
CN104504145A (zh) * 2015-01-05 2015-04-08 浪潮(北京)电子信息产业有限公司 一种实现数据库读写分离的方法和设备
CN105991565A (zh) * 2015-02-05 2016-10-05 阿里巴巴集团控股有限公司 读写分离的方法、系统和数据库代理服务器
CN106126600A (zh) * 2016-06-21 2016-11-16 浪潮电子信息产业股份有限公司 一种执行读写分离的方法、装置及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘进京: "MySQL 主从复制读写分离", 《网络安全和信息化》 *
王二暖: "使用Active DataGuard实现Oracle读写分离", 《电脑开发与应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581238A (zh) * 2020-04-01 2020-08-25 北京奇艺世纪科技有限公司 信息查询方法及装置、电子设备、计算机可读存储介质
CN111581238B (zh) * 2020-04-01 2023-10-24 北京奇艺世纪科技有限公司 信息查询方法及装置、电子设备、计算机可读存储介质

Also Published As

Publication number Publication date
CN108304406B (zh) 2022-10-25

Similar Documents

Publication Publication Date Title
US10936578B2 (en) Client-driven commit of distributed write transactions in a database environment
US6938070B2 (en) Conflict resolution for collaborative work system
CN102402596B (zh) 一种主从分离数据库的读写方法和系统
EP0716385B1 (en) Application-specific conflict detection for weakly consistent replicated databases
US20170364571A1 (en) Eager replication of uncommitted transactions
US20060074847A1 (en) Method and system for data processing with data replication for the same
JPH08241237A (ja) データ識別プロセス
JPH08241234A (ja) データベース管理方法
EP3396560B1 (en) Database operating method and device
CN109643310A (zh) 用于数据库中数据重分布的系统和方法
US9170837B2 (en) Transaction concurrent execution control system, method and program for carrying out a control of concurrently executing a transaction, including measuring execution time from starting to ending of transaction execution
CN110651260A (zh) 增强的组件延迟跟踪
CN107111488A (zh) 调试数据处理事务
US20120059997A1 (en) Apparatus and method for detecting data race
CN110955719B (zh) 一种数据存取处理设备、系统和方法
JPH08272686A (ja) インストラクションの実行順序の一貫性を照合する方法及びシステム
CN108304406A (zh) 一种数据库读写方法、装置及电子设备
US9009098B1 (en) Methods and apparatus for creating a centralized data store
CN107528843A (zh) 一种网络请求的处理方法及处理装置
Nance et al. The methodology roles in the realization of a model development environment
Boigelot et al. Model checking in practice: An analysis of the access. bus™ protocol using spin
CN110659303A (zh) 一种数据库节点的读写控制方法及装置
CN111131394A (zh) 基于分布式锁的并发请求处理方法、装置及计算机可读存储介质
Holler Chapter 13. Multiple copy update
CN108920683A (zh) 一种云计算平台下载外部资源的方法、装置和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210924

Address after: Room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211206

Address after: No.12 Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant