从库读取方法、相关装置和设备制造方法及图纸

技术编号:21628652 阅读:14 留言:0更新日期:2019-07-17 11:00
本发明专利技术公开了一种从库读取方法,包括:启动主库从库进行数据同步;当允许在主库从库进行数据同步时读取从库的情况下,接收对所述从库的读请求;针对所述读请求,根据记录的底层存储引擎中事务的状态来读取所述从库,并输出读取结果。本发明专利技术还公开了一种从库读取装置和设备,解决由于全局锁的力度太大导致请求的延时明显升高,QPS下降,从库上会出现很多慢日志的技术问题。

Reading methods, related devices and devices from libraries

【技术实现步骤摘要】
从库读取方法、相关装置和设备
本专利技术涉及计算机领域,尤其涉及从库读取方法、相关装置和设备。
技术介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库;随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。由于考虑到数据的容灾、负载均衡以及数据集中和分发等等,现有技术中的数据库一般都建立主从数据库,即主库和从库。当前,在主库从库进行数据同步的过程中,为了避免对从库出现数据脏读等因素,往往对从库加全局锁,以控制这期间内从库不可读。然而,由于全局锁的力度太大,导致在主库从库进行数据同步的过程中如果从库收到读请求的话,会阻塞直到数据同步结束,导致请求的延时明显升高,每秒查询率(QueryPerSecond,QPS)下降,从库上会出现很多慢日志,严重的话甚至影响业务的正常服务。
技术实现思路
本专利技术实施例所要解决的技术问题在于,提供一种从库读取方法、一种从库读取装置、一种从库读取设备、以及一种计算机可读存储介质,解决由于全局锁的力度太大导致请求的延时明显升高,QPS下降,从库上会出现很多慢日志的技术问题。为了解决上述技术问题,本专利技术实施例第一方面公开了一种从库读取方法,包括:启动主库从库进行数据同步;当允许在主库从库进行数据同步时读取从库的情况下,接收对所述从库的读请求;针对所述读请求,根据记录的底层存储引擎中事务的状态来读取所述从库,并输出读取结果。本专利技术实施例第二方面公开了一种从库读取装置,包括执行如上述第一方面的方法的单元。本专利技术实施例第三方面公开了一种从库读取设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储应用程序代码,所述处理器被配置用于调用所述程序代码,执行如上述第一方面所述的方法。本专利技术实施例第四方面公开了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如上述第一方面的方法。实施本专利技术实施例,启动主库从库进行数据同步时,通过当允许在主库从库进行数据同步时读取从库的情况下,接收对该从库的读请求;针对该读请求,根据记录的底层存储引擎中事务的状态来读取该从库,并输出读取结果,即在主库从库进行数据同步时去掉了全局锁,解决由于全局锁的力度太大导致请求的延时明显升高,QPS下降,从库上会出现很多慢日志的技术问题,实现了在主从库数据同步的压力很大的情况下,不会对从库读造成影响,提高了QPS,保证了业务的正常运行,同时也避免了对从库出现数据脏读。附图说明为了说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1是本专利技术实施例提供的主库从库进行数据同步的框架示意图;图2是本专利技术实施例提供的从库读取方法的流程示意图;图3是本专利技术实施例提供的记录事务的原理示意图;图4是本专利技术提供的从库读取方法的另一种实施例的流程示意图;图5是本专利技术实施例提供的配置从库snapshot读的原理示意图;图6是本专利技术实施例提供的两次从库读取的测试结果示意图;图7是本专利技术实施例提供的从库读取装置的结构示意图;图8是本专利技术提供的从库读取装置的另一实施例的结构示意图;图9是本专利技术实施例提供的从库读取设备的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行描述。还应当理解,在此本专利技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本专利技术。还应当进一步理解,在本专利技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。具体实现中,本专利技术实施例中描述的终端或设备或数据库服务器包括但不限于诸如台式计算机、膝上型计算机或平板计算机之类的设备。为了更好的理解本专利技术实施例提供的一种从库读取方法、从库读取装置以及从库读取设备,下面先对本专利技术实施例适用的从库读取的框架进行描述。参阅图1,图1是本专利技术实施例提供的主库从库进行数据同步的框架示意图。如图1所示:图1是以CMongo为例子进行说明,CMongo即CloudMongoDBService,是基于MongoDB(基于分布式文件存储的数据库)打造的高性能NoSQL数据库管理平台。MongoDB的Replicaset(由一系列mongod实例(进程)组成的复制组)可以包含一个主库(primary)和若干个从库(secondary),数据通过primary写入,primary与secondary之间通过操作日志(Oplog)来同步数据,该Oplog具体可以指大小固定的集合,存储对数据库的修改操作,用于主从同步。primary上的写操作完成后,会向local.oplog.rs特殊集合写入一条Oplog,secondary负责从复制源Replication(一般为primary,但是Mongo也支持链式复制,即secondary也可以作为复制源)拉取Oplog,在secondary上回放,从而保持主从之间数据的一致性。其中,图1是一个典型的Replicaset,包括1个primary和2个secondary。本实施例不限定基于MongoDB的数据库管理平台,只要涉及到在主库从库进行数据同步的过程中,为对从库加全局锁的数据库管理平台,都可以应用本专利技术实施例的从库读取方法,通过在主库从库进行数据同步时,对从库的读请求根据预先记录的底层存储引擎中事务的状态来读取从库,并输出读取结果,以解决由于全局锁的力度太大导致请求的延时明显升高,QPS下降,从库上会出现很多慢日志的技术问题。下面结合图2示出的本专利技术实施例提供的从库读取方法的流程示意图,可以包括以下步骤:步骤S200:启动主库从库进行数据同步;具体地,当主库从库需要进行数据同步的时候,启动主库从库进行数据同步。步骤S202:当允许在主库从库进行数据同步时读取从库的情况下,接收对该从库的读请求;具体地,在启动主库从库进行数据同步后,可以判断是否允许在主库从库进行数据同步时读取从库。该判断方式可以为查看配置信息;该配置信息用于指示是否允许在主库从库进行数据同步时读取从库;在查看出该配置信息为第一标识的情况下,则允许在主库从库进行数据同步时读取从库,在查看出该配置信息为第二标识的情况下,则不允许在主库从库进行数据同步时读取从库。例如,第一标识可以为1,第二标识可以为0,那么当查看配置信息为1时,则指示允许在主库从库进行数据同步时读取从库,当查看配置信息为0时,则指示不允许在主库从库进行数据同步时读取从库。在其中一种实施方式中,查看配置信息可以具体为查询预设的某个配置项的状态,例如配置项为1表明允许在主库从库进行数据同步时读取从库,配置项为0表明不允许在主库从库进行数据同步时读取从库,那么在查询到该预设的配置项为1时,则判断出允许在主库从库进行数据同步时读取从库,否则判断出不允许在主库从库进行数据同步时读取从库。那么,当允许在主库从库进行数据同步本文档来自技高网...

【技术保护点】
1.一种从库读取方法,其特征在于,包括:启动主库从库进行数据同步;当允许在主库从库进行数据同步时读取从库的情况下,接收对所述从库的读请求;针对所述读请求,根据记录的底层存储引擎中事务的状态来读取所述从库,并输出读取结果。

【技术特征摘要】
1.一种从库读取方法,其特征在于,包括:启动主库从库进行数据同步;当允许在主库从库进行数据同步时读取从库的情况下,接收对所述从库的读请求;针对所述读请求,根据记录的底层存储引擎中事务的状态来读取所述从库,并输出读取结果。2.如权利要求1所述的方法,其特征在于,所述启动主库从库进行数据同步包括:判断从库是否拉取操作日志;在判断出从库拉取操作日志的情况下,则启动所述从库回放操作日志。3.如权利要求1所述的方法,其特征在于,所述当允许在主库从库进行数据同步时读取从库的情况下,接收对所述从库的读请求,包括:查看配置信息;所述配置信息用于指示是否允许在主库从库进行数据同步时读取从库;在查看出所述配置信息为第一标识的情况下,则允许在主库从库进行数据同步时读取从库。4.如权利要求3所述的方法,其特征在于,所述查看配置信息之后,还包括:在查看出所述配置信息为第二标识的情况下,则在主库从库进行数据同步时,对所述从库加全局锁。5.如权利要求1所述的方法,其特征在于,所述底层存储引擎支持快照功能;在所述读请求包括外部读的请求的情况下,所述根据记录的底层存储引擎中事务的状态来读取所述从库包括:在外部读通过查询操作或续查操作的方式来查询请求的情况下,将从库读修改为从库快照读;或者在所述读请求包括内部读的请求的情况下,所述根据记录的底层存储引擎中事务的状态来读取所述从库包括:在设置了读优先级为读大多数的情况下,将从库读修改为从库快照读。6.如权利要求1-5任一项所述的方法,其特征在于,所述启动主库从库进行数据同步之前,还包括:在申请主库从库进行数据同...

【专利技术属性】
技术研发人员:杨林孔德雨郭锦洋苏磊
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1