[发明专利]一种分布式服务系统及其数据查询的方法有效
申请号: | 201710451567.4 | 申请日: | 2014-04-14 |
公开(公告)号: | CN107291869B | 公开(公告)日: | 2020-04-24 |
发明(设计)人: | 李晓鹏;宋宇鹏 | 申请(专利权)人: | 五八同城信息技术有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/2455;G06F16/2458 |
代理公司: | 北京律恒立业知识产权代理事务所(特殊普通合伙) 11416 | 代理人: | 顾珊;庞立岩 |
地址: | 100015 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 服务 系统 及其 数据 查询 方法 | ||
本发明提供一种分布式服务系统数据查询的方法,所述系统包括主数据库、从数据库、缓存及标记单元,其中对主数据库的数据进行更新时,标记单元中存放有标记,在主数据库的数据同步至从数据库后,标记被删除,所述方法包括如下步骤:a)判断所述缓存中是否存在数据,是则进入步骤f;否则进入步骤b;b)判断所述标记单元中是否存在所述标记,是则进入步骤c;否则进入步骤d;c)在所述主数据库中查询数据,然后进入步骤e;d)在所述从数据库中查询数据;e)将查询到的数据写入所述缓存;f)将所述缓存中的数据作为查询结果返回。本发明保证了缓存中的数据与数据库的数据一致,消除了因高并发和主从同步延迟带来的数据不一致风险。
本申请是申请日为2014年04月14日,申请号为CN201410148256.7,发明名称为分布式服务系统及其数据更新、数据查询的方法的分案申请。
技术领域
本发明涉及计算机网络数据更新技术领域,特别是一种分布式服务系统及其数据查询的方法。
背景技术
在大型分布式web服务中,随着用户群的不断增多,对信息系统的访问也越来越多。用户的每次查询请求,信息系统都通过在数据库中进行相应的查找、数据计算等操作,然后将结果返回。查询量增加,信息系统的数据处理量也随之线性增加。为了减轻数据库服务器的访问压力,研发了数据库服务器数据缓存技术。该缓存技术的作用是临时存储用户经常访问的数据,缓存中的数据是数据存储源中数据的拷贝,当用户再次访问已经进行了临时存储的数据时便可以直接返回该数据,而无需再从数据库服务器中获取该数据,由此降低数据库服务器的负担。
主从同步模式是一种常见的解决方案,即设置两个存储内容完全一致的数据库,其中一个为主数据库一个为从数据库。所有写入和更新操作都在主数据库上进行,所有查询操作都在从数据库上进行,主数据库发生写入或更新后变化的内容在一定时间内被更新到从数据库。
目前,在这种主从同步模式下的数据更新方法为,在对数据进行更新操作时首先删除缓存,然后对数据库的主数据库进行更新。此时,当进行数据查询操作时首先查询缓存,如果缓存中有值则直接返回,如果缓存中没有值则查询数据库的从数据库,并将查询到的值放入缓存中。
然而,在这样的解决方案下,可能会导致缓存中的数据与数据库存储的数据不一致的情况,即缓存中的数据为更新前的旧数据的情况。例如,在准备更新操作时,缓存内的数据首先被删除,然后更新主数据库。若在主数据库更新完成前发生一次查询操作,此时按照查询操作的流程,首先会在缓存中进行查找,但由于缓存中数据已经被删除,所以将会在从数据库中查询。假定从数据库查到的数据是A(原数据),在查询结束后这条数据将被写入缓存,即缓存被写入A。而更新操作此时要把数据库更新为B(新数据)。那么将发生数据库中的数据(B)与缓存中的数据(A)不一致,即缓存中保存了错误数据。如果不再发生更新,缓存中的数据将无法更新为B,以后的查询操作所得到的数据都将为缓存中的错误数据A。
又例如,在主数据库完成更新操作后,例如已将数据A更新至B时,发生查询请求,将会首先查询缓存,此时因缓存中的数据已在准备更新操作时被删除,缓存中没有数据,因而将查询从数据库。由于新数据B由主数据库同步到从数据库存在延迟,因此在B还未更新到从数据库时,从数据库中的数据仍然为A,因此查询到的数据将为A,继而A将被写入缓存中。如此,即使之后从数据库的数据被同步为B但此后查询到的数据都将为从缓存中查询到数据A,造成结果错误。
缘此,需要一种新的分布式服务系统以及新的数据更新、数据查询的方法,来有效地避免在数据库更新后缓存中仍存有更新前的旧数据。
发明内容
本发明的目的是提供一种分布式服务系统数据查询的方法,所述系统包括主数据库、从数据库、缓存及标记单元,其中对所述主数据库的数据进行更新时,所述标记单元中存放有标记,在所述主数据库的数据同步至所述从数据库后,所述标记被删除,所述方法包括如下步骤:
a)判断所述缓存中是否存在数据,是则进入步骤f;否则进入步骤b;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于五八同城信息技术有限公司,未经五八同城信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710451567.4/2.html,转载请声明来源钻瓜专利网。