CN113094430A - 一种数据处理方法、装置、设备以及存储介质 - Google Patents
一种数据处理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN113094430A CN113094430A CN202110322395.7A CN202110322395A CN113094430A CN 113094430 A CN113094430 A CN 113094430A CN 202110322395 A CN202110322395 A CN 202110322395A CN 113094430 A CN113094430 A CN 113094430A
- Authority
- CN
- China
- Prior art keywords
- service
- data
- cache
- target
- database
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于一种数据处理方法、装置、设备以及存储介质,涉及计算机领域。本公开实施例至少解决相关技术中,缓存中的数据与数据库中的数据不一致的时间过长的问题。该方法包括:确定主数据库开始同步至少一个从数据库中与业务标识对应的业务数据;在确定目标从数据库中业务标识对应的业务数据发生变更的情况下,删除缓存中业务标识对应的业务数据;目标从数据库为至少一个从数据库中最后一个执行数据同步操作的从数据库;在延迟时长之后,删除缓存中业务标识对应的业务数据。
Description
技术领域
本公开涉及计算机领域,尤其涉及一种数据处理方法、装置、设备以及存储介质。
背景技术
目前,为了解决因大量用户设备同时向数据库发起读请求,而导致数据库的高并发数导致的崩溃问题,在数据处理***中引入了缓存机制,利用缓存的高可靠性减少数据库的读取压力。
但是在实际应用过程中,由于数据库的数据同步存在同步时延,这就导致在数据库执行数据同步操作的过程中,若存在用户发起读请求,且缓存中不存在与读请求对应的数据,缓存在回源时,就有可能从未同步完数据的数据库中回源到旧数据并存储在缓存中,即使在数据库中的数据同步完成之后,缓存中存储的依然是更新前的旧数据,这就导致缓存中的数据与数据库中的数据长期不一致。
发明内容
本公开提供一种数据处理方法、装置、设备以及存储介质,以至少解决相关技术中,缓存中的数据与数据库中的数据不一致的时间过长的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据处理方法,包括:确定主数据库开始同步至少一个从数据库中与业务标识对应的业务数据;在确定目标从数据库中业务标识对应的业务数据发生变更的情况下,删除缓存中业务标识对应的业务数据;目标从数据库为至少一个从数据库中最后一个执行数据同步操作的从数据库;在延迟时长之后,删除缓存中业务标识对应的业务数据。
可选的,上述数据处理方法,还包括:接收目标从数据库所在的设备发送的目标日志变更消息,日志变更消息包括业务标识以及目标从数据库对应的设备标识;响应于目标日志变更消息,确定目标从数据库中业务标识对应的业务数据发生变更。
可选的,上述“在延迟时长之后,删除缓存中业务标识对应的业务数据”,可以包括:基于业务标识,生成删除任务,并将删除任务保存在任务队列中;删除任务包括删除指令,删除指令用于控制包括缓存的存储设备删除缓存中业务标识对应的业务数据;在延迟时长之后,从任务队列中获取删除任务,并执行删除任务。
可选的,上述“在延迟时长之后,删除缓存中业务标识对应的业务数据”,还可以包括:基于业务标识以及延迟时长,生成延迟删除任务,并执行延迟删除任务;延迟删除任务包括删除指令以及发送指令,删除指令用于控制包括缓存的存储设备删除缓存中业务标识对应的业务数据,发送指令用于在延迟时长之后,向存储设备发送删除指令。
可选的,上述数据处理方法,还可以包括:响应于读请求,在确定缓存中未存储有目标数据的情况下,获取缓存当前加载中的数据;读请求包括业务标识,读请求用于请求读取业务标识对应的目标数据;在缓存当前加载中的数据中包括目标数据的情况下,在目标数据加载完成之后,生成返回指令并向外发送返回指令;返回指令用于指示向外发送目标数据。
根据本公开实施例的第二方面,提供一种数据处理装置,包括:包括确定单元以及删除单元;确定单元,用于确定主数据库开始同步至少一个从数据库中与业务标识对应的业务数据;删除单元,用于在确定目标从数据库中业务标识对应的业务数据发生变更的情况下,删除缓存中业务标识对应的业务数据;目标从数据库为至少一个从数据库中最后一个执行数据同步操作的从数据库;删除单元,还用于在延迟时长之后,删除缓存中业务标识对应的业务数据。
可选的,上述确定单元,具体用于:接收目标从数据库所在的设备发送的目标日志变更消息,日志变更消息包括业务标识以及目标从数据库对应的设备标识;响应于目标日志变更消息,确定目标从数据库中业务标识对应的业务数据发生变更。
可选的,上述删除单元,具体用于:基于业务标识,生成删除任务,并将删除任务保存在任务队列中;删除任务包括删除指令,删除指令用于控制包括缓存的存储设备删除缓存中业务标识对应的业务数据;在延迟时长之后,从任务队列中获取删除任务,并执行删除任务。
可选的,上述删除单元,具体还用于:基于业务标识以及延迟时长,生成延迟删除任务并执行延迟删除任务;延迟删除任务包括删除指令以及发送指令,删除指令用于控制包括缓存的存储设备删除缓存中业务标识对应的业务数据,发送指令用于在延迟时长之后,向存储设备发送删除指令。
可选的,上述数据处理装置还包括获取单元、生成单元;获取单元,用于响应于读请求,在确定缓存中未存储有目标数据的情况下,获取缓存当前加载中的数据;读请求包括业务标识,读请求用于请求读取业务标识对应的目标数据;生成单元,用于在缓存当前加载中的数据中包括目标数据的情况下,在目标数据加载完成之后,生成返回指令;返回指令用于指示向外发送目标数据;发送单元,用于向外发送生成单元生成的返回指令。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器、用于存储数据处理处理器可执行的指令的存储器;其中,处理器被配置为执行指令,以实现如第一方面所提供的数据处理方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,包括指令,当数据处理指令由处理器执行时,使得处理器执行如第一方面所提供的数据处理方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括指令,当指令由处理器执行时,使得处理器执行如第一方面提供的数据处理方法。
本公开提供的技术方案至少带来以下有益效果:服务器在确定目标从数据库中的业务数据发生变更的情况下,删除缓存中的业务数据。这样,在目标从数据库执行数据同步操作的过程中,若用户设备请求读取业务数据,可以保证缓存执行后续的回源操作,并且可以很大概率从其他从数据库中读取到更新后的业务数据,可以有效减少缓存与数据库中数据不一致的时长。进一步的,服务器在预设时长之后,删除缓存中与业务标识对应的业务数据。这样一来,即使在目标从数据库的同步时延之内,存在用户设备请求读取业务数据,且缓存从目标从数据库中回源到了旧数据,也可以将缓存中存储的旧的业务数据删除。同时,由于目标从数据库为最后一个执行数据同步操作从数据库,在延迟时长之后,就意味着所有的从数据库都完成了数据同步操作,在这种情况下,所有的从数据库中都存储有更新后的业务数据,且缓存中也不存在旧的业务数据,用户设备在后续请求业务数据时,缓存可以回源到更新后的业务数据,有效减少了后续缓存的数据与数据库的数据不一致的时长。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据处理***结构示意图之一;
图2是根据一示例性实施例示出的一种数据处理***结构示意图之二;
图3是根据一示例性实施例示出的一种数据处理***结构示意图之三;
图4是根据一示例性实施例示出的一种数据处理方法的流程示意图之一;
图5是根据一示例性实施例示出的一种数据处理方法的流程示意图之二;
图6是根据一示例性实施例示出的一种数据处理方法的流程示意图之三;
图7是根据一示例性实施例示出的一种数据处理方法的流程示意图之四;
图8是根据一示例性实施例示出的一种数据处理方法的流程示意图之五;
图9是根据一示例性实施例示出的一种数据处理装置的结构示意图;
图10是根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
另外,在本公开实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本公开实施例的描述中,“多个”是指两个或多于两个。
在介绍本公开实施例之前,对本公开实施例涉及的一些名词进行解释:
数据库:可以存储数据,用于为用户设备提供读数据或者写数据的服务,主要搭载在服务器中。数据库能够提供高可靠性的存储服务,但是其提供读服务的性能有限,当大量用户设备发起读请求时,数据库就会因为无法支持高并发的读请求而崩溃。为了解决上述问题,目前采用读写分离结合缓存机制,解决上述问题。示例性的,上述数据库可以为MySQL。
读写分离:将数据库分为主数据库以及多个从数据库,其中,主数据库用于接收用户设备的写请求,并将用户设备请求写入的数据进行更新,并在更新数据之后,根据更新后的数据,向多个从数据库发送更新日志。从数据库用于接收主数据库发送的更新日志,并根据更新日志更新其存储的数据。这称之为主从同步,可以实现从数据库的数据与主数据的数据一致,可以用于灾害恢复等应用场景。
示例性的,上述更新日志可以为二进制日志文件(binary log,Binlog)。
需要说明的,本公开实施例中涉及主数据库以及从数据库中,可以位于同一台设备中,也可以位于不同的设备中。
示例性的,主数据库以及多个从数据库可以分别位于多个不同的服务器中,多个不同的服务器构成服务器集群。
缓存:一种基于内存的存储服务,应用于存储设备中,能够提高比较高的读操作。例如远程字典服务(Remote Dictionary Server,Redis)、Mecache等。设置有缓存的存储设备可以连接多个从数据库与多个用户设备,当存储设备接收到用户设备发送的读请求之后,会在缓存中查询是否存在用户设备请求读取的数据。若缓存中存在用户设备请求读取的数据,则存储设备会直接向用户设备发送用户设备请求读取的数据。若缓存中不存在用户设备请求读取的数据,则存储设备会从多个从数据库中的任一个从数据库中获取用户设备请求读取的数据,并将获取到的数据存储在缓存中,这称之为“回源”的过程。在存储设备存储用户设备请求读取的数据的同时,还向用户设备上述数据。以实现解决高并发数导致数据库崩溃的问题。
日志消费者:一种消费日志的服务,可以应用于日志消费者设备或者日志消费者装置,以上述日志消费者设备为例,日志消费者设备可以连接服务器与存储设备。日志消费者设备可以接收数据库发送的日志更新消息,日志更新消息用于指示数据库中的数据接收更新日志的情况,并向存储设备发送删除缓存中数据的指令。
以下,对本公开实施例提供的数据处理方法的发明原理进行介绍:
在数据库开始执行数据同步操作的过程中,若存在用户设备发起读请求,在一种情况下,此时缓存中存储有旧数据,则用户设备会直接从缓存中读取到旧数据。在另一种情况下,若缓存中不存在读请求对应的数据,此时缓存会从未更新完的数据库中读取数据,则有很大的可能性会回源到未更新完的旧数据,并将旧数据发送至用户设备,且该旧数据会时间的存储于缓存中,这就导致了缓存中的数据与数据库中的数据不一致的时间较长。
基于上述两种情况,本发明实施实例考虑到在数据库开始更新数据的时候,就删除一次缓存中的旧数据,可以保证第一种情况中,在数据库开始更新数据之后,用户设备发起读请求的情况下,避免用户设备直接从缓存中读取到旧数据,同时也可以由缓存很大概率的从已更新完数据的其他从数据库中读取到更新后的数据。对于上述第二种情况,本公开实施例在数据库更新数据完成之后,对缓存中的数据再一次进行删除,即删除了如第二种情况中,缓存可能回源到的旧数据。这样一来,数据库中全部为更新后的数据,缓存中不存在数据,可以保证后续用户设备再次发起读请求的时候,缓存可以从数据中回源到更新后的数据,并向用户设备发送更新后的数据。
本公开实施例提供的数据处理方法可以适用于数据处理***。图1示出了该数据处理***的一种结构示意图。如图1所示,数据处理***10用于向用户设备提供读写数据的服务,数据处理***10包括服务器11、包括缓存的存储设备12、日志消费者设备13以及用户设备(图1中仅示例性的给出了一个用户设备14,在实际应用场景中,可以存在更多数量的用户设备)。服务器11分别与存储设备12、日志消费者设备13以及用户设备14连接,日志消费者设备13还与存储设备12连接。上述各个设备、装置之间的连接方式,可以采用有线方式连接,也可以采用无线方式连接,本公开实施例对此不作限定。
需要说明的,上述服务器11可以为一个单独的服务器,也可以为多个服务器组成的服务集群。服务器11中包括有数据库,可以为一个单独的数据库,也可以为主数据库与多个从数据库的组合。
在上述服务器11包括主数据库与多个从数据库的应用场景下,主数据库与多个从数据库可以位于不同的服务器中。图2示出了本公开实施例提供的另外一种数据处理***。如图2所示,数据处理***20包括服务器111、服务器112以及服务器113(图2仅示例性的示出了三个服务器,其中,服务器111中包括主数据库,服务器112以及服务器113中分别包括有从数据库,在实际应用场景中,可能存在更多或更少的包括数据库的服务器)、包括缓存的存储设备12、日志消费者设备13以及用户设备14(图2中仅示例性的给出了一个用户设备14,在实际应用场景中,可以存在更多数量的用户设备)。
在图2示出的读写***中,用户设备14与包括主数据库的服务器111连接,用于向服务器111的主数据库中写数据。用户设备14还与存储设备12连接,用于向存储设备12发送读请求,并接收存储设备23发送的数据。存储设备12与包括从数据库的服务器112以及服务器113连接,用于从服务器112以及服务器113的从数据库中获取数据,进行存储并向用户设备14发送。服务器111、服务器112以及服务器113还分别与日志消费者设备13连接(图2仅示出了服务器113与日志消费者设备连接),用于向日志消费者设备13发送日志更新消息。日志消费者设备13还与存储设备12连接,用于向存储设备12发送删除数据的指令。
需要说明的,在图2示出的数据处理***中,图2示例性给出了服务器111、服务器112以及服务器113之间的连接关系,服务器111、服务器112以及服务器113之间采用串接方式,在实际应用场景中,服务器111、服务器112以及服务器113之间还可以采用星型连接或者树形连接的方式。
在图2示出的数据处理***中包括的上述各个设备、装置之间的连接方式,可以采用有线方式连接,也可以采用无线方式连接,本公开实施例对此不作限定。
图1或图2示出的服务器11、包括缓存的存储设备12、日志消费者设备13以及用户设备14还可以装置或模块的形式存在。当上述设备以装置或者模块的硬件形式存在时,结合图1以及图2,图3示出了本公开实施例提供的另外一种数据处理***的结构示意图。如图3所示,数据处理***30包括服务器31以及用户设备32。其中,服务器31包括内存311(包括缓存,对应于图1以及图2中的存储设备12)、存储装置312(包括数据库,对应与图1以及图2中的服务器11、服务器111、服务器112或者服务器113)以及数据处理装置313(对应于图1或者图2中的日志消费者设备)。服务器31与用户设备32连接。服务器31的内部个装置或模块的连接方式可以参照图1或图2中各设备之间的连接方式。服务器31与用户设备32之间,以及服务器31内部各装置、模块之间的连接方式可以采用有线方式连接,也可以采用无线方式连接,本公开实施例对此不作限定。
本公开实施例提供的数据处理方法还可以应用于一种数据处理装置,该数据处理装置可以应用与图1、图2以及图3示出的任意一种数据处理***,该数据处理装置可以包括上述任意一种数据处理***中的任意一个设备,也可以为上述任意一个设备中的一个装置或者模块。
以下,本公开实施例结合图2,以数据处理装置作为日志消费者设备为例,对本公开实施例提供的数据处理方法进行描述。在其他情况下,日志消费者设备可以为图1或图3示出的服务器中的一种装置或模块。
图4是根据一示例性实施例示出的一种数据处理方法的流程示意图。如图4所示,本公开实施例提供的数据处理方法可以包括如下技术。
S401、日志消费者设备确定主数据库开始同步至少一个从数据库中与业务标识对应的业务数据。
作为一种可能的实现方式,主数据库所在的服务器在接收到用户设备发送的写请求之后,对主数据库中的业务数据进行更新,并在更新完之后,开始同步更新至少一个从数据库中的业务数据。相应的,日志消费者在接收到至少一个从数据库中第一从数据库所在的服务器发送的日志变更消息之后,则确定主数据开始同步至少一个从数据库中与业务标识对应的业务数据。
需要说明的,业务标识可以为发起写请求的用户设备的标识,也可以为发起写请求的账户的标识。写请求用于请求变更数据库中的业务数据,包括请求变更的业务数据以及业务标识。业务数据可以为用户设备请求在主数据库中写入的用户数据。业务数据发生变更,可以包括数据库中数据的增加事件、修改事件,也可以包括数据库中数据的删除事件。
示例性的,如图2所示,服务器111接收到用户设备14发送的写请求,并响应于写请求,更新服务器111中主数据库中的业务数据。服务器111在主数据中的业务数据更新完之后,向服务器112发送写请求,以使得服务器112开始更新其从数据库中的业务数据。在服务器接112接收到写请求之后,开始更新其从数据库中的与业务数据,同时向日志消费者设备13发送日志变更消息。进一步的,当服务器112的从数据库中的业务数据更新完成之后,服务器112向服务器113发送写请求,以使得服务器113响应于写请求,更新其从数据库中的业务数据。
S402、日志消费者设备确定目标从数据库中业务标识对应的业务数据是否发生变更。
其中,目标从数据库为至少一个从数据库中最后一个执行数据同步操作的从数据库。
作为一种可能的实现方式,日志消费者设备对每个服务器的数据库执行监听程序,在监听目标从数据库所在的服务器接收到写请求或者更新日志的情况下,确定目标从数据库的业务数据发生变更。
例如,如图2所示,在主数据库与多个从数据库采用串行连接的情况下,日志消费者设备采用上述监听程序,确定服务器113的从数据库中的数据是否发生变更。
此步骤的监听程序,包括周期性的向每个服务器发送监听指令,当服务器收到用户设备的写请求或者其他服务器发送的更新日志时,则向日志消费者设备返回日志更新消息。
此步骤更为详尽的实现方式,具体也可以参照本公开实施例的后续描述,此处不再进行赘述。
S403、日志消费者设备在确定目标从数据库中业务标识对应的业务数据发生变更的情况下,删除缓存中业务标识对应的业务数据。
作为一种可能的实现方式,进一步的,日志消费者设备在确定目标从数据库中的业务数据发生变更的情况下,获取变更中业务数据的业务标识,并根据变更中业务数据的业务标识,生成删除指令,并向包括缓存的存储设备发送删除指令。
其中,删除指令包括变更中业务数据的业务标识,删除指令用于指示删除缓存中业务标识对应的业务数据。
相应的,存储设备在接收到删除指令之后,根据删除指令中更新中业务数据的业务标识,删除缓存中业务标识对应的业务数据。
S404、日志消费者设备在延迟时长之后,删除缓存中业务标识对应的业务数据。
作为一种可能的实现方式,日志消费者设备在确定目标从数据库中存在业务数据需要变更时,确定变更中业务数据的业务标识,并在延迟时长之后,根据变更中业务数据的业务标识,删除存储设备的缓存中业务标识对应的业务数据。
作为另外一种可能的实现方式,日志消费者设备在确定目标从数据库中存在业务数据需要变更时,在延迟时长之后,确定变更中业务数据的业务标识,并根据变更中业务数据的业务标识,删除存储设备的缓存中业务标识对应的业务数据。
需要说明的,延迟时长可以由数据处理***的运维人员预先在日志消费者设备中设置。缓存中业务标识对应的业务数据,可以包括缓存中与业务标识对应的变更前的业务数据,还可以包括缓存中业务标识对应的变更后的业务数据。
示例性的,延迟时长为1秒。
可以理解的,延迟时长可以大于数据库更新业务数据的时间,这样可以保证在数据库更新完业务数据之后,缓存中不会存在更新前的数据。
此步骤更为详尽的实现方式,具体也可以参照本公开实施例的后续描述,此处不再进行赘述。
本公开提供的技术方案至少带来以下有益效果:服务器在确定目标从数据库中的业务数据发生变更的情况下,删除缓存中的业务数据。这样,在目标从数据库执行数据同步操作的过程中,若用户设备请求读取业务数据,可以保证缓存执行后续的回源操作,并且可以很大概率从其他从数据库中读取到更新后的业务数据,可以有效减少缓存与数据库中数据不一致的时长。进一步的,服务器在预设时长之后,删除缓存中与业务标识对应的业务数据。这样一来,即使在目标从数据库的同步时延之内,存在用户设备请求读取业务数据,且缓存从目标从数据库中回源到了旧数据,也可以将缓存中存储的旧的业务数据删除。同时,由于目标从数据库为最后一个执行数据同步操作从数据库,在延迟时长之后,就意味着所有的从数据库都完成了数据同步操作,在这种情况下,所有的从数据库中都存储有更新后的业务数据,且缓存中也不存在旧的业务数据,用户设备在后续请求业务数据时,缓存可以回源到更新后的业务数据,有效减少了后续缓存的数据与数据库的数据不一致的时长。
在一种设计中,为了能够确定目标从数据库中存在业务数据需要变更,如图5所示,本公开实施例提供的S402,具体可以包括下述S4021-S4022。
S4021、日志消费者设备接收目标从数据库所在的设备发送的目标日志变更消息。
其中,目标日志变更消息包括业务标识以及目标从数据库对应的设备标识。
作为一种可能的实现方式,包括目标从数据库的服务器在接收到其他服务器发送的更新日志时,获取更新日志中待更新业务数据的业务标识,并根据上述业务标识以及目标从数据的服务器的设备标识,生成目标日志更新消息,并向日志消费者设备发送目标日志更新消息。
需要说明的,上述其他服务器包括与上述目标从数据库所在的服务器具有拓扑连接关系的服务器。
S4022、日志消费者设备响应于目标日志变更消息,确定目标从数据库中业务标识对应的业务数据发生变更。
作为一种可能的实现方式,日志消费者在接收到服务器发送的目标日志变更消息之后,基于目标日志变更消息中的业务标识以及设备标识,确定目标从数据库中与业务标识对应的业务数据发生变更。
本公开提供的技术方案至少带来以下有益效果:能够接收到目标从数据库所在的设备发送的目标日志变更消息,由于目标日志变更消息中包括业务标识以及数据库所在的服务器的设备标识,因此,日志消费者设备能够响应于该目标日志变更消息中的业务标识以及设备标识,确定目标从数据库中的业务标识对应的业务数据发生变更,提供了一种直接确定数据库中存在业务数据发生变更的实现方式。
在一种设计中,为了能够在延迟时长之后删除缓存中业务标识对应的业务数据,如图6所示,本公开实施例提供的S404,可以包括下述S4041-S4044。
S4041、日志消费者设备基于业务标识,生成删除任务。
其中,删除任务包括删除指令,删除指令用于控制包括缓存的存储设备删除缓存中业务标识对应的业务数据。
作为一种可能的实现方式,日志消费者设备在获取日志更新消息中的业务标识之后,根据业务标识,生成包括业务标识的删除指令,并根据生成的删除指令,生成包括删除指令的删除任务。
S4042、日志消费者设备将删除任务保存在任务队列中。
作为一种可能的实现方式,日志消费者设备将生成的删除任务存储于任务队列中。
需要说明的,任务队列包括多个任务进程,可以同时以多进程并发的方式接收或发送任务。
S4043、日志消费者设备在延迟时长之后,从任务队列中获取删除任务。
作为一种可能的实现方式,日志消费者设备中设置有定时器,在延迟时长之后,读取任务列队,并从任务列队中获取删除任务。
在一种情况下,日志消费者设备从任务列队中获取删除任务之后,并未删除该删除任务,以便于后续其他服务器在更新该删除任务对应的数据时,可以基于删除任务对应的业务标识,从任务队列中查询该删除任务并获取该删除任务。
S4044、日志消费者设备执行删除任务。
作为一种可能的实现方式,日志消费者在获取删除任务之后,解析删除任务,并获取其中的删除指令,并向包括缓存的存储设备发送该删除指令。
相应的,存储设备在接收到删除指令之后,根据删除指令中的业务标识,删除缓存中业务标识对应的业务数据。
本公开提供的技术方案至少带来以下有益效果:能够生成一个删除任务,并将该删除任务保存在任务列队中,并在延迟时长之后,从任务列队中提取该删除任务并执行该删除任务,这样一来,日志消费者设备就可以在在延迟时长之后,删除缓存中与业务标识对应的业务数据。
在一种设计中,为了能够在延迟时长之后删除缓存中业务标识对应的业务数据,如图7所示,本公开实施例提供的S404,可以包括下述S4045-S4046。
S4045、日志消费者设备基于业务标识以及延迟时长,生成延迟删除任务。
其中,延迟删除任务包括删除指令以及发送指令,删除指令用于控制包括缓存的存储设备删除缓存中业务标识对应的业务数据,发送指令用于在延迟时长之后,向存储设备发送删除指令。
作为一种可能的实现方式,日志消费者设备在获取业务标识之后,根据业务标识生成删除指令,以及,根据延迟时长,生成发送指令。
进一步的,日志消费者设备根据生成的删除指令以及发送指令,生成延迟删除任务。
S4046、日志消费者设备执行延迟删除任务。
作为一种可能的实现方式,日志消费者设备执行延迟删除任务,则在定时器指向延迟时长之后,基于延迟删除任务中的发送指令,向包括缓存的存储设备发送删除指令。
本公开提供的技术方案至少带来以下有益效果:能够生成一个延迟删除任务,由于该延迟删除任务中包括删除指令以及发发送指令,且删除指令用于控制包括缓存的存储设备删除缓存中业务标识对应的业务数据,发送指令用于在延迟时长之后,向存储设备发送删除指令,因此日志消费者设备能够实现在延迟时长之后删除缓存中与业务标识对应的业务数据的实现方式。
在一种设计中,为了能够实现在用户设备发送读请求之后,减少缓存中数据与数据库中数据不一致的时长,如图8所示,本公开实施例提供的数据处理方法,还包括下述S501-S505。
S501、日志消费者设备接收存储设备发送的读请求。
其中,读请求包括业务标识,读请求用于请求读取业务标识对应的目标数据。
作为一种可能的实现方式,用户设备在发送读请求之后,包括缓存的存储设备向日志消费者设备转发读请求,日志消费者设备接收存储设备发送的读请求。
S502、日志消费者设备响应于接收到的读请求,在确定缓存中未存储有目标数据的情况下,获取缓存当前加载中的数据。
作为一种可能的实现方式,日志消费者设备在接收到存储设备发送的读请求之后,获取读请求中的业务标识以及存储设备的缓存中存储的数据,并基于获取到的业务标识,判断缓存存储的数据中是否包括目标数据。
进一步的,日志消费者设备在确定缓存中不包括目标数据的情况下,从存储设备中获取缓存当前加载的数据。
在一种情况下,若日志消费者设备在确定缓存中包括目标数据的情况下,则向存储设备发送返回指令。
其中,返回指令用于指示向用户设备返回目标数据。
S503、日志消费者设备确定缓存当前加载中的数据中是否包括目标数据。
作为一种可能的实现方式,日志消费者设备在获取缓存当前加载中的数据之后,基于业务标识,判断缓存当前加载中的数据中是否包括与待业务标识对应的数据。
进一步的,若缓存当前加载的数据中包括与业务标识对应的数据,则日志消费者设备确定缓存当前加载的数据中包括目标数据。
在一种情况下,若缓存当前加载的数据中不包括与的业务标识对应的数据,则日志消费者设备生成并向存储设备发送回源指令。
其中,回源指令用于指示存储设备从数据库中回源目标数据,存储目标数据并向用户设备返回目标数据。
S504、日志消费者设备在缓存当前加载中的数据中包括目标数据的情况下,在目标数据加载完成之后,生成返回指令。
作为一种可能的实现方式,日志消费者设备若确定缓存当前加载的数据中包括目标数据,则监听缓存中当前加载的数据,在目标数据加载完成后,生成返回指令。
其中,返回指令用于指示向外发送目标数据。
示例性的,返回指令可以用于指示存储设备中的缓存向用户设备发送目标数据。
S505、日志消费者设备向外发送返回指令。
作为一种可能的实现方式,日志消费者设备向包括缓存的存储设备发送上述返回指令,以使得存储设备在接收到返回指令之后,向用户设备发送缓存中存储的目标数据。
本公开提供的技术方案至少带来以下有益效果:在用户设备请求读数据的过程中,针对读请求中的业务标识,在缓存中存在进程正在回源目标数据的情况下,等待目标数据回源完成之后,将缓存中的目标数据确定为待读取数据,能够保证在同一时间内,针对同一业务数据的业务标识,缓存中只有一个进程在回源该业务标识对应的数据,可以保证缓存中业务数据的唯一性。
另外,本公开还提供一种数据处理装置,可以为本公开实施例涉及的服务器,也可以为本公开实施例涉及的日志消费者设备,还可以为本公开实施例中的存储设备,参照图9所示,该数据处理装置60包括:确定单元601以及删除单元602。
确定单元601,用于确定主数据库开始同步至少一个从数据库中与业务标识对应的业务数据。例如,结合图4,确定单元601可以用于执行S401。
删除单元602,用于在确定目标从数据库中业务标识对应的业务数据发生变更的情况下,删除缓存中业务标识对应的业务数据。目标从数据库为至少一个从数据库中最后一个执行数据同步操作的从数据库。例如,结合图4,删除单元602可以用于执行S403。
删除单元602,还用于在延迟时长之后,删除缓存中业务标识对应的业务数据。例如,结合图4,删除单元602可以用于执行S404。
可选的,如图9所示,本公开实施例提供的确定单元601,具体用于:
接收目标从数据库所在的设备发送的目标日志变更消息,日志变更消息包括业务标识以及目标从数据库对应的设备标识。例如,结合图5,确定单元601可以用于执行S4021。
响应于日志变更消息,确定数据库中业务标识对应的业务数据发生变更。例如,结合图5,确定单元601可以用于执行S4022。
可选的,如图9所示,本公开实施例提供的删除单元602,具体用于:
基于业务标识,生成删除任务,并将删除任务保存在任务队列中。删除任务包括删除指令,删除指令用于控制包括缓存的存储设备删除缓存中业务标识对应的业务数据。例如,结合图6,删除单元602可以用于执行S4041-S4042。
在延迟时长之后,从任务队列中获取删除任务,并执行删除任务。例如,结合图6,删除单元602可以用于执行S4043-S4044。
可选的,如图9所示,本公开实施例提供的删除单元602,具体还可以用于:
基于业务标识以及延迟时长,生成延迟删除任务并执行延迟删除任务。延迟删除任务包括删除指令以及发送指令,删除指令用于控制包括缓存的存储设备删除缓存中业务标识对应的业务数据,发送指令用于在延迟时长之后,向存储设备发送删除指令。例如,结合图7,删除单元602可以用于执行S4055-S4056。
可选的,如图9所示,本公开实施例提供的数据处理装置还包括获取单元603、生成单元604以及发送单元605。
获取单元603,用于响应于接收到的读请求,在确定缓存中未存储有目标数据的情况下,获取缓存当前加载中的数据。读请求包括业务标识,读请求用于请求读取业务标识对应的目标数据。例如,结合图8,获取单元603可以用于执行S502。
生成单元604,用于在缓存当前加载中的数据中包括目标数据的情况下,在目标数据加载完成之后,生成返回指令。返回指令用于指示向外发送目标数据。例如,结合图8,生成单元604可以用于执行S504。
发送单元605,用于向外发送生成单元604生成的返回指令。例如,结合图8,发送单元可以用于执行S505。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图10是本公开提供的一种电子设备的结构示意图。该电子设备可以为上述日志消费者设备且该电子设备主要用于执行上述日志消费者设备执行的方法步骤。如图10,该电子设备70可以包括至少一个处理器701以及用于存储处理器可执行指令的存储器703。其中,处理器701被配置为执行存储器703中的指令,以实现上述实施例中的数据处理方法。
另外,电子设备70还可以包括通信总线702以及至少一个通信接口704。
处理器701可以是一个处理器(central processing units,CPU),微处理单元,ASIC,或一个或多个用于控制本公开方案程序执行的集成电路。
通信总线702可包括一通路,在上述组件之间传送信息。
通信接口704,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器703可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
其中,存储器703用于存储执行本公开方案的指令,并由处理器701来控制执行。处理器701用于执行存储器703中存储的指令,从而实现本公开方法中的功能。
在具体实现中,作为一种实施例,处理器701可以包括一个或多个CPU,例如图10中的CPU0和CPU1。
在具体实现中,作为一种实施例,电子设备70可以包括多个处理器,例如图10中的处理器701和处理器707。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,电子设备70还可以包括输出设备705和输入设备706。输出设备705和处理器701通信,可以以多种方式来显示信息。例如,输出设备705可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备706和处理器701通信,可以以多种方式接受用户的输入。例如,输入设备706可以是鼠标、键盘、触摸屏设备或传感设备等。
本领域技术人员可以理解,图10中示出的结构并不构成对电子设备70的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
另外,本公开还提供一种计算机可读存储介质,包括指令,当指令由处理器执行时,使得处理器执行如上述实施例所提供的数据处理方法。
另外,本公开还提供一种计算机程序产品,包括指令,当指令由处理器执行时,使得处理器执行如上述实施例所提供的数据处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
确定主数据库开始同步至少一个从数据库中与业务标识对应的业务数据;
在确定目标从数据库中所述业务标识对应的业务数据发生变更的情况下,删除缓存中所述业务标识对应的业务数据;所述目标从数据库为所述至少一个从数据库中最后一个执行数据同步操作的从数据库;
在延迟时长之后,删除所述缓存中所述业务标识对应的业务数据。
2.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括:
接收所述目标从数据库所在的设备发送的目标日志变更消息,所述日志变更消息包括所述业务标识以及所述目标从数据库对应的设备标识;
响应于所述目标日志变更消息,确定所述目标从数据库中所述业务标识对应的业务数据发生变更。
3.根据权利要求1所述的数据处理方法,其特征在于,所述在延迟时长之后,删除缓存中所述业务标识对应的业务数据,包括:
基于所述业务标识,生成删除任务,并将所述删除任务保存在任务队列中;所述删除任务包括删除指令,所述删除指令用于控制包括所述缓存的存储设备删除所述缓存中所述业务标识对应的业务数据;
在所述延迟时长之后,从所述任务队列中获取所述删除任务,并执行所述删除任务。
4.根据权利要求1所述的数据处理方法,其特征在于,所述在延迟时长之后,删除缓存中所述业务标识对应的业务数据,包括:
基于所述业务标识以及所述延迟时长,生成延迟删除任务,并执行所述延迟删除任务;所述延迟删除任务包括删除指令以及发送指令,所述删除指令用于控制包括所述缓存的存储设备删除所述缓存中所述业务标识对应的业务数据,所述发送指令用于在所述延迟时长之后,向所述存储设备发送所述删除指令。
5.根据权利要求1-4中任一项所述的数据处理方法,其特征在于,所述方法还包括:
响应于接收到的读请求,在确定所述缓存中未存储有目标数据的情况下,获取所述缓存当前加载中的数据;所述读请求包括业务标识,所述读请求用于请求读取所述业务标识对应的所述目标数据;
在所述缓存当前加载中的数据中包括目标数据的情况下,在所述目标数据加载完成之后,生成返回指令并向外发送所述返回指令;所述返回指令用于指示向外发送所述目标数据。
6.一种数据处理装置,其特征在于,包括确定单元以及删除单元;
所述确定单元,用于确定主数据库开始同步至少一个从数据库中与业务标识对应的业务数据;
所述删除单元,用于在确定目标从数据库中业务标识对应的业务数据发生变更的情况下,删除缓存中所述业务标识对应的业务数据;所述目标从数据库为所述至少一个从数据库中最后一个执行数据同步操作的从数据库;
所述删除单元,还用于在延迟时长之后,删除所述缓存中所述业务标识对应的业务数据。
7.根据权利要求6所述的数据处理装置,其特征在于,所述确定单元,具体用于:
接收所述目标从数据库所在的设备发送的目标日志变更消息,所述日志变更消息包括所述业务标识以及所述目标从数据库对应的设备标识;
响应于所述目标日志变更消息,确定所述目标从数据库中所述业务标识对应的业务数据发生变更。
8.一种电子设备,包括:处理器、用于存储所述处理器可执行的指令的存储器;其中,所述处理器被配置为执行指令,以实现所述权利要求1-5中任一项所提供的数据处理方法。
9.一种计算机可读存储介质,其特征在于,包括指令,当所述指令由处理器执行时,使得所述处理器执行如权利要求1-5中任一项所提供的数据处理方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-5中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322395.7A CN113094430B (zh) | 2021-03-25 | 2021-03-25 | 一种数据处理方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322395.7A CN113094430B (zh) | 2021-03-25 | 2021-03-25 | 一种数据处理方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094430A true CN113094430A (zh) | 2021-07-09 |
CN113094430B CN113094430B (zh) | 2023-10-03 |
Family
ID=76669800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110322395.7A Active CN113094430B (zh) | 2021-03-25 | 2021-03-25 | 一种数据处理方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094430B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468195A (zh) * | 2021-07-15 | 2021-10-01 | 南方电网数字电网研究院有限公司 | 服务器数据缓存更新方法、***和主数据库服务器 |
CN114168233A (zh) * | 2021-11-16 | 2022-03-11 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
WO2023245940A1 (zh) * | 2022-06-24 | 2023-12-28 | 深圳前海微众银行股份有限公司 | 缓存中数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955486A (zh) * | 2014-04-14 | 2014-07-30 | 五八同城信息技术有限公司 | 分布式服务***及其数据更新、数据查询的方法 |
CN110008224A (zh) * | 2019-03-08 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据库事务处理方法及装置 |
WO2019179235A1 (zh) * | 2018-03-23 | 2019-09-26 | 阿里巴巴集团控股有限公司 | 一种数据缓存方法、装置及*** |
-
2021
- 2021-03-25 CN CN202110322395.7A patent/CN113094430B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955486A (zh) * | 2014-04-14 | 2014-07-30 | 五八同城信息技术有限公司 | 分布式服务***及其数据更新、数据查询的方法 |
WO2019179235A1 (zh) * | 2018-03-23 | 2019-09-26 | 阿里巴巴集团控股有限公司 | 一种数据缓存方法、装置及*** |
CN110008224A (zh) * | 2019-03-08 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据库事务处理方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468195A (zh) * | 2021-07-15 | 2021-10-01 | 南方电网数字电网研究院有限公司 | 服务器数据缓存更新方法、***和主数据库服务器 |
CN113468195B (zh) * | 2021-07-15 | 2023-10-03 | 南方电网数字平台科技(广东)有限公司 | 服务器数据缓存更新方法、***和主数据库服务器 |
CN114168233A (zh) * | 2021-11-16 | 2022-03-11 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
CN114168233B (zh) * | 2021-11-16 | 2022-12-27 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
WO2023245940A1 (zh) * | 2022-06-24 | 2023-12-28 | 深圳前海微众银行股份有限公司 | 缓存中数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113094430B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943594B (zh) | 数据获取方法和装置 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
US8712961B2 (en) | Database caching utilizing asynchronous log-based replication | |
US9110807B2 (en) | Cache conflict detection | |
US10114848B2 (en) | Ensuring the same completion status for transactions after recovery in a synchronous replication environment | |
US10489378B2 (en) | Detection and resolution of conflicts in data synchronization | |
CN110597910A (zh) | 一种异地数据同步方法、装置和*** | |
CN109388626B (zh) | 用于向业务分配编号的方法和装置 | |
JP2010061559A (ja) | 情報処理システム、データ更新方法およびデータ更新プログラム | |
EP2988220A1 (en) | Computer system, computer-system management method, and program | |
CN110807062B (zh) | 一种数据同步的方法、装置和数据库主机 | |
CN111221469B (zh) | 同步缓存数据的方法、装置和*** | |
EP4216061A1 (en) | Transaction processing method, system, apparatus, device, storage medium, and program product | |
CN112307119A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN113010549A (zh) | 基于异地多活***的数据处理方法、相关设备及存储介质 | |
US10579604B2 (en) | Database system, information processing device, method and medium | |
US9311379B2 (en) | Utilization of data structures to synchronize copies of a resource | |
CN111338834A (zh) | 数据存储方法和装置 | |
CN110502584B (zh) | 数据同步的方法和装置 | |
US10572503B2 (en) | Database system, information processing device, method and medium | |
CN110119388B (zh) | 文件读写方法、装置、***、设备及计算机可读存储介质 | |
US8874682B2 (en) | Composite graph cache management | |
CN114925078A (zh) | 数据更新方法、***、电子设备及存储介质 | |
CN114706923A (zh) | 数据同步方法、装置、电子设备和存储介质 | |
CN113191136A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |