CN107656937A - 用于实现读写数据一致性的方法和装置 - Google Patents

用于实现读写数据一致性的方法和装置 Download PDF

Info

Publication number
CN107656937A
CN107656937A CN201610596678.XA CN201610596678A CN107656937A CN 107656937 A CN107656937 A CN 107656937A CN 201610596678 A CN201610596678 A CN 201610596678A CN 107656937 A CN107656937 A CN 107656937A
Authority
CN
China
Prior art keywords
time
caching
data
database
read
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
CN201610596678.XA
Other languages
English (en)
Other versions
CN107656937B (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610596678.XA priority Critical patent/CN107656937B/zh
Publication of CN107656937A publication Critical patent/CN107656937A/zh
Application granted granted Critical
Publication of CN107656937B publication Critical patent/CN107656937B/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
    • G06F16/273Asynchronous replication or reconciliation

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是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于实现读写数据一致性的方法的一个实施例的流程图;
图3a和图3b是根据本申请的用于实现读写数据一致性的方法的一个应用场景的示意图;
图4是根据本申请的用于实现读写数据一致性的方法的又一个实施例的流程图;
图5是根据本申请的用于实现读写数据一致性的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于实现读写数据一致性的方法或用于实现读写数据一致性的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有网络通信功能并且需要后台数据库支持的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上运行的应用提供支持的后台数据库服务器。后台数据库服务器可以采用读写库分离的技术对接收到的数据读写请求等数据进行读写分离等处理。
需要说明的是,本申请实施例所提供的用于实现读写数据一致性的方法一般由服务器105执行,相应地,用于实现读写数据一致性的装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的用于实现读写数据一致性的方法的一个实施例的流程200。所述的用于实现读写数据一致性的方法,包括以下步骤:
步骤201,响应于收到写入数据的请求,按照预设的命名规则生成缓存超时标识,并设置与缓存超时标识关联的超时时间。
在本实施例中,用于实现读写数据一致性的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从用户利用其运行应用的终端接收数据写入请求。响应于收到写入数据的请求,按照预设的命名规则生成缓存超时标识,缓存超时标识由数据记录本身的特征值去标识。另外由于主库是唯一的,可以通过应用服务唯一标识符前缀,数据库库名和表名,数据记录的主键值等特征值构造全局唯一的缓存超时标识,由于每次请求都要去获取缓存超时标识,避免每次请求对缓存超时标识的复杂计算,可以通过简单的字符串操作生成缓存超时标识。例如“appName_dbName_tableName_primaryKey”。
在本实施例的一些可选的实现方式中,超时时间大于等于数据从主数据库同步到从数据库的时间。该时间需要根据具体数据库主从同步的方式、同步的数据量的大小以及事务的时间去进行设置,一般在毫秒级别,超时时间越长,数据一致性约束相应越强,同时主库压力也越大,实际中根据具体的业务场景灵活设置。比如单表操作“insert update”操作,事务比较短,短时间内就能同步完成,如20ms,多张表之间进行“insert update”操作,事务操作相对长一点,如100ms。
在本实施例的一些可选的实现方式中,缩小所述超时时间以减少从所述主数据库读取数据的次数。超时时间越短则从从数据库读数据的机会越多,因此可以减少从所述主数据库读取数据的次数,降低主数据库的压力。
步骤202,将缓存超时标识记录到预设的缓存中。
在本实施例中,将缓存超时标识记录到预设的缓存中,其中,当该缓存超时标识在缓存中停留的时间超过超时时间时,清除该缓存超时标识。例如,在步骤201中设置了超时时间为20ms,该缓存超时标识只在缓存中停留20ms,超过20ms时该缓存超时标识被清除,即缓存中不存在该缓存超时标识。
步骤203,将数据写入主数据库再将数据从主数据库同步到从数据库。
在本实施例中,将数据写入主数据库再将数据从主数据库同步到从数据库。例如,在数据库前加一个服务层用于数据库读写路由服务,该服务层对读写请求进行路由分发,写请求路由到主数据库,再将数据从主数据库同步到从数据库。读数据时可以从主数据库读取也可以从从数据库读取。
步骤204,响应于收到读取数据的请求,检测预设的缓存中是否存在缓存超时标识。
在本实施例中,收到读取数据的请求后一般会根据主键(primaryKey)去查询。而应用名称,数据库名称,表名称预先是确定的,因此可按与写数据时相同的预设的命名规则动态生成缓存超时标识,即该缓存超时标识和写数据时生成的缓存超时标识一样。检测缓存中是否存在读数据时生成的缓存超时标识。
步骤205,响应于检测出预设的缓存中不存在缓存超时标识,则从从数据库读取数据。
在本实施例中,响应于检测出预设的缓存中不存在缓存超时标识,说明与该缓存超时标识相关的数据近期没有发生过写操作,此时将读请求路由到从数据库,继续读写分离,读取已经完成同步的数据。
在本实施例的一些可选的实现方式中,从所述主数据库向所述从数据库发送心跳信息并检测所述从数据库是否正常接收到心跳信息;响应于检测出所述从数据库未正常接收到心跳信息,则从所述主数据库读取所述数据。用心跳可以检测网络故障,当检测出从数据库未正常接收到心跳信息时,说明网络故障,则将读请求路由于主数据库,以使得系统做容错处理。心跳的间隔时间可以根据系统的负载压力灵活设置。由于心跳需要一定的间隔时间向系统发送数据,因此对系统会造成一定的压力,如果系统本身的业务压力比较大,可以相应的将心跳的间隔时间(比如30s)调高,而不至于继续增加系统的压力,否则可以调低一点(比如10s)。
继续参见图3a和3b,图3a和3b是根据本实施例的用于实现读写数据一致性的方法的应用场景的一个示意图。在图3a的应用场景中,服务器收到数据的写请求后,通过服务层设置缓存超时标识并将该缓存超时标识记录在缓存中,之后再将接收的数据写入主数据库,然后再同步到从数据库中。在图3b的应用场景中,收到数据的读请求后,通过服务层查询缓存超时标识,如果缓存中存在该标识则从主数据库读取与该标识相关的数据,如果缓存中不存在该标识则从从数据库读取与该标识相关的数据。
本申请的上述实施例提供的方法通过在写请求写入超时标识,读请求判断超时标识是否超时,保证了分布式系统中高并发情况下,在主从数据库同步的时间窗范围内到来的读请求能够获取到最新刚写入的数据,保证了数据的强一致性。
进一步参考图4,其示出了用于实现读写数据一致性的方法的又一个实施例的流程400。该用于实现读写数据一致性的方法的流程400,包括以下步骤:
步骤401,响应于收到写入数据的请求,按照预设的命名规则生成缓存超时标识,并设置与缓存超时标识关联的超时时间。
步骤402,将缓存超时标识记录到预设的缓存中。
步骤403,将数据写入主数据库再将数据从主数据库同步到从数据库。
步骤404,响应于收到读取数据的请求,检测预设的缓存中是否存在缓存超时标识。
步骤401-404与步骤201-202基本相同,因此不再赘述。
步骤405,响应于检测出预设的缓存中存在缓存超时标识,则从主数据库读取数据。
在本实施例中,响应于检测出预设的缓存中存在缓存超时标识,说明与该缓存超时标识相关的数据刚刚发生过写操作,此时需要将读请求路由到主数据库读取最新的数据。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于实现读写数据一致性的方法的流程400突出了从主数据库读取数据的步骤。由此,可以解决分布式高并发环境下主从数据同步延迟引起的一致性问题。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于实现读写数据一致性的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例所述的用于实现读写数据一致性的装置500包括:生成单元501、记录单元502、写入单元503、检测单元504和读取从数据库单元505。其中,生成单元501配置用于响应于收到写入数据的请求,按照预设的命名规则生成缓存超时标识,并设置与所述缓存超时标识关联的超时时间;记录单元502配置用于将所述缓存超时标识记录到预设的缓存中,其中,当所述缓存超时标识在所述缓存中停留的时间超过所述超时时间时,清除所述缓存超时标识;写入单元503配置用于将数据写入主数据库再将所述数据从主数据库同步到从数据库;检测单元504配置用于响应于收到读取数据的请求,检测所述预设的缓存中是否存在所述缓存超时标识;读取从数据库单元505配置用于响应于检测出所述预设的缓存中不存在所述缓存超时标识,则从所述从数据库读取所述数据。
在本实施例的一些可选的实现方式中,装置500还包括:读取主数据库单元(未示出),配置用于响应于检测出所述预设的缓存中存在所述缓存超时标识,则从所述主数据库读取所述数据。
在本实施例的一些可选的实现方式中,所述超时时间大于等于数据从所述主数据库同步到所述从数据库的时间。
在本实施例的一些可选的实现方式中,装置500还包括:心跳单元(未示出),配置用于从所述主数据库向所述从数据库发送心跳信息并检测所述从数据库是否正常接收到心跳信息;并且读取从数据库单元505进一步配置用于响应于检测出所述从数据库未正常接收到心跳信息,则从所述主数据库读取所述数据。
在本实施例的一些可选的实现方式中,装置500还包括:控制单元(未示出),配置用于缩小所述超时时间以减少从所述主数据库读取数据的次数。
下面参考图6,其示出了适于用来实现本申请实施例的服务器的计算机系统600的结构示意图。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括生成单元、记录单元、写入单元、检测单元和读取从数据库单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,记录单元还可以被描述为“将所述缓存超时标识记录到预设的缓存中的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:响应于收到写入数据的请求,按照预设的命名规则生成缓存超时标识,并设置与所述缓存超时标识关联的超时时间;将所述缓存超时标识记录到预设的缓存中,其中,当所述缓存超时标识在所述缓存中停留的时间超过所述超时时间时,清除所述缓存超时标识;将数据写入主数据库再将所述数据从主数据库同步到从数据库;响应于收到读取数据的请求,检测所述预设的缓存中是否存在所述缓存超时标识;响应于检测出所述预设的缓存中不存在所述缓存超时标识,则从所述从数据库读取所述数据。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种用于实现读写数据一致性的方法,其特征在于,所述方法包括:
响应于收到写入数据的请求,按照预设的命名规则生成缓存超时标识,并设置与所述缓存超时标识关联的超时时间;
将所述缓存超时标识记录到预设的缓存中,其中,当所述缓存超时标识在所述缓存中停留的时间超过所述超时时间时,清除所述缓存超时标识;
将所述数据写入主数据库再将所述数据从主数据库同步到从数据库;
响应于收到读取所述数据的请求,检测所述预设的缓存中是否存在所述缓存超时标识;
响应于检测出所述预设的缓存中不存在所述缓存超时标识,则从所述从数据库读取所述数据。
2.根据权利要求1所述的用于实现读写数据一致性的方法,其特征在于,所述方法还包括:
响应于检测出所述预设的缓存中存在所述缓存超时标识,则从所述主数据库读取所述数据。
3.根据权利要求1所述的用于实现读写数据一致性的方法,其特征在于,所述超时时间大于等于数据从所述主数据库同步到所述从数据库的时间。
4.根据权利要求1所述的用于实现读写数据一致性的方法,其特征在于,所述方法还包括:
从所述主数据库向所述从数据库发送心跳信息并检测所述从数据库是否正常接收到心跳信息;
响应于检测出所述从数据库未正常接收到心跳信息,则从所述主数据库读取所述数据。
5.根据权利要求1所述的用于实现读写数据一致性的方法,其特征在于,所述方法还包括:
缩小所述超时时间以减少从所述主数据库读取数据的次数。
6.一种用于实现读写数据一致性的装置,其特征在于,所述装置包括:
生成单元,配置用于响应于收到写入数据的请求,按照预设的命名规则生成缓存超时标识,并设置与所述缓存超时标识关联的超时时间;
记录单元,配置用于将所述缓存超时标识记录到预设的缓存中,其中,当所述缓存超时标识在所述缓存中停留的时间超过所述超时时间时,清除所述缓存超时标识;
写入单元,配置用于将所述数据写入主数据库再将所述数据从主数据库同步到从数据库;
检测单元,配置用于响应于收到读取所述数据的请求,检测所述预设的缓存中是否存在所述缓存超时标识;
读取从数据库单元,配置用于响应于检测出所述预设的缓存中不存在所述缓存超时标识,则从所述从数据库读取所述数据。
7.根据权利要求6所述的用于实现读写数据一致性的装置,其特征在于,所述装置还包括:
读取主数据库单元,配置用于响应于检测出所述预设的缓存中存在所述缓存超时标识,则从所述主数据库读取所述数据。
8.根据权利要求6所述的用于实现读写数据一致性的装置,其特征在于,所述超时时间大于等于数据从所述主数据库同步到所述从数据库的时间。
9.根据权利要求6所述的用于实现读写数据一致性的装置,其特征在于,所述装置还包括:
心跳单元,配置用于从所述主数据库向所述从数据库发送心跳信息并检测所述从数据库是否正常接收到心跳信息;并且
所述读取从数据库单元进一步配置用于响应于检测出所述从数据库未正常接收到心跳信息,则从所述主数据库读取所述数据。
10.根据权利要求6所述的用于实现读写数据一致性的装置,其特征在于,所述装置还包括:
控制单元,配置用于缩小所述超时时间以减少从所述主数据库读取数据的次数。
CN201610596678.XA 2016-07-26 2016-07-26 用于实现读写数据一致性的方法和装置 Active CN107656937B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610596678.XA CN107656937B (zh) 2016-07-26 2016-07-26 用于实现读写数据一致性的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610596678.XA CN107656937B (zh) 2016-07-26 2016-07-26 用于实现读写数据一致性的方法和装置

Publications (2)

Publication Number Publication Date
CN107656937A true CN107656937A (zh) 2018-02-02
CN107656937B CN107656937B (zh) 2021-05-25

Family

ID=61127500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610596678.XA Active CN107656937B (zh) 2016-07-26 2016-07-26 用于实现读写数据一致性的方法和装置

Country Status (1)

Country Link
CN (1) CN107656937B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829735A (zh) * 2018-05-21 2018-11-16 上海达梦数据库有限公司 并行执行计划的同步方法、装置、服务器及存储介质
CN108959405A (zh) * 2018-06-06 2018-12-07 深圳市远行科技股份有限公司 数据的强一致性读取方法及终端设备
CN109241110A (zh) * 2018-08-24 2019-01-18 北京京东尚科信息技术有限公司 订单管理方法及系统、电子设备、存储介质
CN110334145A (zh) * 2018-02-24 2019-10-15 北京京东尚科信息技术有限公司 数据处理的方法和装置
CN110727698A (zh) * 2019-09-09 2020-01-24 上海陆家嘴国际金融资产交易市场股份有限公司 数据库访问方法、装置、计算机设备和存储介质
CN111581238A (zh) * 2020-04-01 2020-08-25 北京奇艺世纪科技有限公司 信息查询方法及装置、电子设备、计算机可读存储介质
CN112835936A (zh) * 2021-02-05 2021-05-25 北京电解智科技有限公司 一种数据处理方法、装置和服务集群
CN113111087A (zh) * 2021-04-12 2021-07-13 北京房江湖科技有限公司 请求处理方法、装置、电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101765831A (zh) * 2007-06-06 2010-06-30 雅典娜电信实验有限公司 数据库不一致的处理方法
CN102591964A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 数据读写分离机制的实现方法和装置
US20130036092A1 (en) * 2011-08-03 2013-02-07 Amadeus S.A.S. Method and System to Maintain Strong Consistency of Distributed Replicated Contents in a Client/Server System
CN104156361A (zh) * 2013-05-13 2014-11-19 阿里巴巴集团控股有限公司 一种实现数据同步的方法及系统
CN105095254A (zh) * 2014-05-07 2015-11-25 深圳市中兴微电子技术有限公司 一种实现数据一致性的方法及装置
WO2016091069A1 (zh) * 2014-12-12 2016-06-16 北京奇虎科技有限公司 一种数据操作方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101765831A (zh) * 2007-06-06 2010-06-30 雅典娜电信实验有限公司 数据库不一致的处理方法
US20130036092A1 (en) * 2011-08-03 2013-02-07 Amadeus S.A.S. Method and System to Maintain Strong Consistency of Distributed Replicated Contents in a Client/Server System
CN102591964A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 数据读写分离机制的实现方法和装置
CN104156361A (zh) * 2013-05-13 2014-11-19 阿里巴巴集团控股有限公司 一种实现数据同步的方法及系统
CN105095254A (zh) * 2014-05-07 2015-11-25 深圳市中兴微电子技术有限公司 一种实现数据一致性的方法及装置
WO2016091069A1 (zh) * 2014-12-12 2016-06-16 北京奇虎科技有限公司 一种数据操作方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NORAZIAH AHMAD等: "《A Novel Algorithm of Managing Replication and Transaction through Read-one-Write-All Monitoring Synchronization Transaction System (ROWA-MSTS)》", 《IEEE》 *
李方超: "《基于NOSQL的数据最终一致性策略研究》", 《万方学位论文》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110334145A (zh) * 2018-02-24 2019-10-15 北京京东尚科信息技术有限公司 数据处理的方法和装置
CN108829735A (zh) * 2018-05-21 2018-11-16 上海达梦数据库有限公司 并行执行计划的同步方法、装置、服务器及存储介质
CN108829735B (zh) * 2018-05-21 2021-06-29 上海达梦数据库有限公司 并行执行计划的同步方法、装置、服务器及存储介质
CN108959405A (zh) * 2018-06-06 2018-12-07 深圳市远行科技股份有限公司 数据的强一致性读取方法及终端设备
CN108959405B (zh) * 2018-06-06 2021-08-17 深圳市远行科技股份有限公司 数据的强一致性读取方法及终端设备
CN109241110A (zh) * 2018-08-24 2019-01-18 北京京东尚科信息技术有限公司 订单管理方法及系统、电子设备、存储介质
CN110727698A (zh) * 2019-09-09 2020-01-24 上海陆家嘴国际金融资产交易市场股份有限公司 数据库访问方法、装置、计算机设备和存储介质
CN111581238A (zh) * 2020-04-01 2020-08-25 北京奇艺世纪科技有限公司 信息查询方法及装置、电子设备、计算机可读存储介质
CN111581238B (zh) * 2020-04-01 2023-10-24 北京奇艺世纪科技有限公司 信息查询方法及装置、电子设备、计算机可读存储介质
CN112835936A (zh) * 2021-02-05 2021-05-25 北京电解智科技有限公司 一种数据处理方法、装置和服务集群
CN113111087A (zh) * 2021-04-12 2021-07-13 北京房江湖科技有限公司 请求处理方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN107656937B (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN107656937A (zh) 用于实现读写数据一致性的方法和装置
US11233851B2 (en) System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
CN111091429B (zh) 电子票据标识分配方法及装置、电子票据生成系统
CN103636165B (zh) 用于透明故障转移的系统和方法
AU2014284461B2 (en) Syncing content clipboard
TW529277B (en) Use-sensitive distribution of data files between users
AU2017253679A1 (en) Providing access to a hybrid application offline
CA2831381C (en) Recovery of tenant data across tenant moves
CN105528408B (zh) 页面展示方法和装置
CN105723363B (zh) Erp系统中维持并升级承租者数据库的方法及其服务器
CN110417842A (zh) 用于网关服务器的故障处理方法和装置
CN105205174B (zh) 用于分布式系统的文件处理方法和装置
CN105631035B (zh) 数据存储方法和装置
CN105472045A (zh) 数据库迁移的方法和装置
US20050050142A1 (en) Method and framework for transaction synchronization
WO2012045154A1 (en) System and method of capturing point-of-sale data and providing real-time advertising content
US20090106398A1 (en) Web Service Architecture for Dynamic Rules Table Generation
CN109150929B (zh) 高并发场景下的数据请求处理方法和装置
US20180255134A1 (en) Supporting multiple clipboard items in a vdi environment
CN110795443A (zh) 数据同步的方法、装置、设备和计算机可读介质
CN107291769A (zh) 处理并发订单的方法和装置
CN105589631B (zh) 信息展示方法和装置
CN107844488A (zh) 数据查询方法和装置
US20160021089A1 (en) Content delivery subscription
US9053164B2 (en) Method, system, and program product for using analysis views to identify data synchronization problems between databases

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
GR01 Patent grant
GR01 Patent grant