发明内容
本说明书提供一种数据更新方法,所述方法应用于分布式业务系统;所述分布式业务系统包括业务子系统、数据管理子系统和云端缓存子系统;所述数据管理子系统用于对业务数据库中的业务数据进行管理;所述云端缓存子系统用于在云端缓存基于所述业务数据库中的业务数据构建的业务数据集合;所述业务子系统用于基于所述业务数据集合进行业务处理;所述方法包括:
所述数据管理子系统在对所述业务数据库中的目标业务数据进行更新后,对所述目标业务数据所属的目标业务数据集合的版本信息进行更新,并分别向所述云端缓存子系统和所述业务子系统发送数据更新通知;其中,所述数据更新通知包括所述目标业务数据集合更新后的版本信息;
所述云端缓存子系统响应于所述数据更新通知,检测本地缓存的所述目标业务数据集合的版本信息,与所述数据更新通知中的版本信息是否一致,如果不一致,则从所述业务数据库中读取与所述目标业务数据集合对应的业务数据,并基于读取到的业务数据对本地缓存的所述目标业务数据集合进行更新;
所述业务子系统响应于所述数据更新通知,检测本地缓存的所述目标业务数据集合的版本信息,与所述数据更新通知中的版本信息是否一致,如果不一致,则获取所述云端缓存子系统中缓存的所述目标业务数据集合,对本地缓存的所述目标业务数据集合进行更新。
可选地,所述数据更新通知还包括基于更新后的所述目标业务数据集合中的业务数据计算出的完整性校验信息;其中,所述完整性校验信息用于对所述目标业务数据集合中的业务数据进行完整性校验;
所述方法还包括:
所述云端缓存子系统在从所述业务数据库中读取到与所述目标业务数据集合对应的业务数据时,基于读取到的业务数据计算完整性校验信息,并确认计算出的完整性校验信息与所述数据更新通知中的完整性校验信息是否一致,如果不一致,则从所述业务数据库中重新读取与所述目标业务数据集合对应的业务数据,直到计算出的所述完整性校验信息与所述数据更新通知中的完整性校验信息一致时停止。
可选地,所述方法还包括:
所述业务子系统在获取到所述云端缓存子系统中缓存的所述目标业务数据集合时,基于所述目标业务数据集合中的业务数据计算完整性校验信息,并确认计算出的完整性校验信息与所述数据更新通知中的完整性校验信息是否一致,如果不一致,则重新获取所述云端缓存子系统中缓存的所述目标业务数据集合,直到计算出的所述完整性校验信息与所述数据更新通知中的完整性校验信息一致时停止。
可选地,所述完整性校验信息包括基于所述目标业务数据集合中的业务数据进行hash计算得到的hash值。
可选地,所述业务子系统为基于多台服务设备搭建的服务集群;
所述业务子系统获取所述云端缓存子系统中缓存的所述目标业务数据集合,包括:
所述业务子系统获取所述云端缓存子系统中缓存的所述目标业务数据集合,并将获取到的所述目标业务数据集合分别在所述服务集群的各台服务设备上缓存。
可选地,在将所述目标业务数据集合成功缓存至各台业务服务设备时,各台服务设备在本地保存所述数据更新通知;
所述方法还包括:
所述数据管理子系统周期性确认各台服务设备上保存的数据更新通知,与发送的数据更新通知是否匹配,如果各台服务设备上保存的数据更新通知,与发送的数据更新通知均匹配,则向用户输出所述业务子系统数据更新完成的提示消息,如果各台服务设备中的至少一台服务设备上保存的数据更新通知,与发送的数据更新通知不匹配,则在不匹配的持续时长达到预设阈值时,向用户输出告警提示。
本说明书还提供一种数据更新系统,所述系统包括:
数据管理子系统,用于在对所述业务数据库中的目标业务数据进行更新后,对所述目标业务数据所属的目标业务数据集合的版本信息进行更新,并分别向所述云端缓存子系统和所述业务子系统发送数据更新通知;其中,所述数据更新通知包括所述目标业务数据集合更新后的版本信息;
云端缓存子系统,用于响应于所述数据更新通知,检测本地缓存的所述目标业务数据集合的版本信息,与所述数据更新通知中的版本信息是否一致,如果不一致,则从所述业务数据库中读取与所述目标业务数据集合对应的业务数据,并基于读取到的业务数据对本地缓存的所述目标业务数据集合进行更新;
业务子系统,用于响应于所述数据更新通知,检测本地缓存的所述目标业务数据集合的版本信息,与所述数据更新通知中的版本信息是否一致,如果不一致,则获取所述云端缓存子系统中缓存的所述目标业务数据集合,对本地缓存的所述目标业务数据集合进行更新。
可选地,所述数据更新通知还包括基于更新后的所述目标业务数据集合中的业务数据计算出的完整性校验信息;其中,所述完整性校验信息用于对所述目标业务数据集合中的业务数据进行完整性校验;
所述云端缓存子系统还用于在从所述业务数据库中读取到与所述目标业务数据集合对应的业务数据时,基于读取到的业务数据计算完整性校验信息,并确认计算出的完整性校验信息与所述数据更新通知中的完整性校验信息是否一致,如果不一致,则从所述业务数据库中重新读取与所述目标业务数据集合对应的业务数据,直到计算出的所述完整性校验信息与所述数据更新通知中的完整性校验信息一致时停止。
可选地,所述业务子系统还用于在获取到所述云端缓存子系统中缓存的所述目标业务数据集合时,基于所述目标业务数据集合中的业务数据计算完整性校验信息,并确认计算出的完整性校验信息与所述数据更新通知中的完整性校验信息是否一致,如果不一致,则重新获取所述云端缓存子系统中缓存的所述目标业务数据集合,直到计算出的所述完整性校验信息与所述数据更新通知中的完整性校验信息一致时停止。
可选地,所述完整性校验信息包括基于所述目标业务数据集合中的业务数据进行hash计算得到的hash值。
可选地,所述业务子系统为基于多台服务设备搭建的服务集群;
所述业务子系统具体用于:
获取所述云端缓存子系统中缓存的所述目标业务数据集合,并将获取到的所述目标业务数据集合分别在所述服务集群的各台服务设备上缓存。
可选地,在将所述目标业务数据集合成功缓存至各台业务服务设备时,各台服务设备在本地保存所述数据更新通知;
所述数据管理子系统具体用于:
周期性确认各台服务设备上保存的数据更新通知,与发送的数据更新通知是否匹配,如果各台服务设备上保存的数据更新通知,与发送的数据更新通知均匹配,则向用户输出所述业务子系统数据更新完成的提示消息,如果各台服务设备中的至少一台服务设备上保存的数据更新通知,与发送的数据更新通知不匹配,则在不匹配的持续时长达到预设阈值时,向用户输出告警提示。
在上述技术方案中,无需将全部业务数据集合发送给业务子系统,由业务子系统自行将接收到的业务数据集合与本地缓存的业务数据集合进行比较,而是可以由数据管理子系统将发生更新的业务数据所属的业务数据集合的版本信息发送给业务子系统,由业务子系统在检测到该版本信息与本地缓存的该业务数据集合的版本信息不一致时,对该业务数据集合进行更新。这样,由于业务子系统可以基于各个业务数据集合的版本信息检测该业务数据集合是否发生更新,并仅对检测到发生更新的业务数据集合进行后续更新,因此可以减少设备性能资源的消耗,提高数据更新的效率。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本说明书旨在提供一种针对包括业务子系统、数据管理子系统和云端缓存子系统的分布式系统,由数据管理子系统在对业务数据库中的业务数据进行更新后,对该业务数据所属的业务数据集合的版本信息进行更新,并基于更新后的版本信息通知云端缓存子系统和业务子系统,以由云端缓存子系统和业务子系统在检测到本地缓存的版本信息与数据管理子系统通知的版本信息不一致时,对本地缓存的该业务数据集合进行更新的技术方案。
在上述技术方案中,无需将全部业务数据集合发送给业务子系统,由业务子系统自行将接收到的业务数据集合与本地缓存的业务数据集合进行比较,而是可以由数据管理子系统将发生更新的业务数据所属的业务数据集合的版本信息发送给业务子系统,由业务子系统在检测到该版本信息与本地缓存的该业务数据集合的版本信息不一致时,对该业务数据集合进行更新。这样,由于业务子系统可以基于各个业务数据集合的版本信息检测该业务数据集合是否发生更新,并仅对检测到发生更新的业务数据集合进行后续更新,因此可以减少设备性能资源的消耗,提高数据更新的效率。
相关技术中,一方面,通常需要将全部业务数据发送给业务系统,由业务系统自行将接收到的业务数据与本地缓存的业务数据进行比较,以检测出发生更新的部分业务数据,并对这部分业务数据进行更新;另一方面,对于对数据一致性的要求较高的业务系统来说,通常需要该业务系统实时检测业务数据是否发生更新,以便于及时对本地缓存的业务数据进行更新,避免业务数据更新不及时导致的后续业务处理问题。然而采用这样的方式,不仅需要消耗大量的设备性能资源,而且数据更新的效率也较低。
为了解决上述问题,本说明书提供一种数据更新方法和装置、电子设备。
请参考图1,图1是本说明书一示例性实施例示出的一种分布式业务系统的架构示意图。
如图1所示,在该分布式业务系统中,可以包括数据管理子系统、云端缓存子系统和业务子系统。其中,数据管理子系统、云端缓存子系统和业务子系统这三者之间两两进行对接,数据管理子系统和云端缓存子系统还分别与业务数据库进行对接。在实际应用中,业务数据库可以是搭载在数据管理子系统中的数据库,也可以是数据管理子系统外接的数据库。
需要说明的是,图1所示的分布式业务系统中的业务子系统可以仅包括一台服务设备,也可以是基于多台服务设备搭建的服务集群,本说明书对此不作限制,其中,各台服务设备可以分别与该分布式业务系统中的数据管理子系统和云端缓存子系统进行对接;业务数据库可以包括写库和读库,其中,可以通过写库将数据写入业务数据库,由写库将数据同步至读库,从而可以通过读库读取业务数据库中的数据。
在图1所示的分布式业务系统中,数据管理子系统可以通过业务数据库对业务数据进行管理。举例来说,用户可以通过数据管理子系统提供的用户界面,对该分布式业务系统进行业务处理时所需要的业务数据进行更新,例如:对业务数据进行增加、删除、修改等。数据管理子系统在检测到用户的业务数据更新操作时,可以对业务数据库中相应的目标业务数据进行更新。
云端缓存子系统则可以基于业务子系统所处理的业务的特点,将业务数据库中的业务数据组装成业务数据集合,该业务数据集合通常具有特定的数据结构和特定的业务含义,从而使业务子系统可以基于该业务数据集合处理相应的业务。
请参考图2,图2是本说明书一示例性实施例示出的一种数据更新方法的流程图。该方法可以应用于图1所示的分布式业务系统,包括如下步骤:
步骤202,所述数据管理子系统在对所述业务数据库中的目标业务数据进行更新后,对所述目标业务数据所属的目标业务数据集合的版本信息进行更新,并分别向所述云端缓存子系统和所述业务子系统发送数据更新通知;其中,所述数据更新通知包括所述目标业务数据集合更新后的版本信息;
步骤204,所述云端缓存子系统响应于所述数据更新通知,检测本地缓存的所述目标业务数据集合的版本信息,与所述数据更新通知中的版本信息是否一致,如果不一致,则从所述业务数据库中读取与所述目标业务数据集合对应的业务数据,并基于读取到的业务数据对本地缓存的所述目标业务数据集合进行更新;
步骤206,所述业务子系统响应于所述数据更新通知,检测本地缓存的所述目标业务数据集合的版本信息,与所述数据更新通知中的版本信息是否一致,如果不一致,则获取所述云端缓存子系统中缓存的所述目标业务数据集合,对本地缓存的所述目标业务数据集合进行更新。
需要说明的是,步骤204和206之间没有明确的时序关系。
在本实施例中,可以为各个业务数据集合设置对应的版本信息,但需要说明的是,每次在对某个业务数据集合包含的业务数据进行更新后,都需要更新该业务数据集合的版本信息。举例来说,假设某个业务数据集合当前的版本信息为版本1.1,则在对该业务数据集合包含的业务数据进行更新后,可以将该业务数据集合的版本信息更新为版本1.2。
另一方面,为了便于对包含不同的业务数据的业务数据集合进行区分,可以分别为各个业务数据集合设置对应的标识信息,即通过一个标识信息可以唯一确定一个业务数据集合。
在实际应用中,也可以采用存储地址或业务特点等方式对包含不同的业务数据的业务数据集合进行区分,本说明书对此不作限制。
结合图1所示的分布式业务系统,数据管理子系统在检测到用户的业务数据更新操作时,可以对业务数据库中相应的目标业务数据进行更新。
在示出的一种实施方式中,业务数据库可以采用如下表1所示的方式存储业务数据:
标识信息 |
版本信息 |
业务数据 |
标识1 |
版本1.1 |
业务数据1 |
标识2 |
版本2.1 |
业务数据2 |
…… |
…… |
…… |
表1
如表1所示,云端缓存子系统可以将业务数据1组装成业务数据集合1,业务数据集合1的标识信息即为标识1,业务数据集合1的版本信息即为版本1.1;云端缓存子系统可以将业务数据2组装成业务数据集合2,业务数据集合2的标识信息即为标识2,业务数据集合2的版本信息即为版本2.1;以此类推。
数据管理子系统在对业务数据库中的目标业务数据进行更新的同时,还可以通过业务数据库确定该目标业务数据所属的目标业务数据集合的标识信息和版本信息。
另一方面,数据管理子系统在完成对该目标业务数据的更新后,可以对该目标业务数据集合的版本信息进行更新。
数据管理子系统在完成对该目标业务数据集合的版本信息的更新后,可以向云端缓存子系统发送数据更新通知。其中,该数据更新通知可以包括该目标业务数据集合更新后的版本信息。
当然,为了便于对业务数据集合进行区分,该数据更新通知还可以包括该目标业务数据集合的标识信息。
云端缓存子系统在接收到数据管理子系统发送的该数据更新通知时,可以先根据该数据更新通知中的标识信息在本地缓存的所有业务数据集合中确定对应的该目标业务数据集合,再检测本地缓存的该目标业务数据集合的版本信息与该数据更新通知中的版本信息是否一致。
如果本地缓存的该目标业务数据集合的版本信息与该数据更新通知中的版本信息一致,则云端缓存子系统可以不对本地缓存的该目标业务数据集合进行更新。
如果本地缓存的该目标业务数据集合的版本信息,与该数据更新通知中的版本信息不一致,则云端缓存子系统可以从业务数据库中读取与该目标业务数据集合对应的业务数据,并基于读取到的该业务数据对本地缓存的该目标业务数据集合进行更新。
在实际应用中,云端缓存子系统可以从业务数据库中读取与该数据更新通知中的标识信息和版本信息对应的业务数据,即读取与该目标业务数据集合对应的业务数据,并将读取到的该业务数据组装成业务数据集合,以实现对本地缓存的该目标业务数据集合的更新。
以表1所示的业务数据库为例,假设数据管理子系统检测到用户对业务数据1进行了更新,则可以对业务数据库中存储的业务数据1进行更新,并确定业务数据1所属的业务数据集合的标识信息为标识1,该业务数据集合的版本信息为版本1.1。
后续,数据管理子系统在完成对业务数据1的更新后,可以将该业务数据集合的版本信息由版本1.1更新为版本1.2。
数据管理子系统在将业务数据1所属的业务数据集合的版本信息由版本1.1更新为版本1.2后,可以向云端缓存子系统发送数据更新通知。此时,该数据更新通知中的版本信息即为版本1.2,该数据更新通知中的标识信息即为标识1。
云端缓存子系统在接收到数据管理子系统发送的该数据更新通知时,可以先根据标识1在本地缓存的所有业务数据集合中确定对应的业务数据集合(称为业务数据集合1),再检测业务数据集合1的版本信息是否为版本1.2。
假设云端缓存子系统中存储的业务数据集合如下表2所示:
标识信息 |
版本信息 |
业务数据集合 |
标识1 |
版本1.1 |
业务数据集合1 |
…… |
…… |
…… |
表2
由于业务数据集合1的版本信息为版本1.1,而不为版本1.2,因此云端缓存子系统可以从业务数据库中读取与标识1和版本1.2对应的业务数据1(即更新后的业务数据1),并将读取到的更新后的业务数据1组装成新的业务数据集合,以将业务数据集合1更新为该新的业务数据集合,从而实现对本地缓存的业务数据集合1的更新。
在示出的一种实施方式中,云端缓存子系统可以在本地缓存的上述业务数据集合的版本信息与该数据更新通知中的版本信息不一致时,向业务数据库发送数据读取通知,该数据读取通知可以包括该数据更新通知中的标识信息和版本信息。业务数据库可以在接收到云端缓存子系统发送的该数据读取通知时,向云端缓存子系统返回与该数据读取通知中的标识信息和该版本信息对应的业务数据,从而使云端缓存子系统可以将业务数据库返回的该业务数据组装成业务数据集合。这样,可以实现由云端缓存子系统从业务数据库中读取与该业务数据集合对应的业务数据,并基于读取到的该业务数据对本地缓存的该业务数据集合进行更新。
在示出的一种实施方式中,为了保证数据传输过程中的数据完整性,可以基于各个业务数据集合中的业务数据计算对应的完整性校验信息,从而可以基于完整性校验信息对业务数据集合中的业务数据进行完整性校验,确定对应的业务数据集合中的业务数据是否完整。
具体地,数据管理子系统在完成对上述目标业务数据的更新后,除了可以对上述目标业务数据集合的版本信息进行更新之外,还可以基于更新后的该目标业务数据计算对应的完整性校验信息。
在示出的一种实施方式中,完整性校验信息可以是基于业务数据集合中的业务数据进行hash计算得到的hash值。
数据管理子系统在完成对上述目标业务数据的更新后,可以基于更新后的该目标业务数据进行hash计算,从而可以将计算得到的hash值作为完整性校验信息,用于对该目标业务数据集合中的业务数据进行完整性校验。
在这种情况下,数据管理子系统发送给云端缓存子系统的数据更新通知还可以包括计算得到的该完整性校验信息。
请参考图3,云端缓存子系统在接收到该数据更新通知时,可以采用如下步骤实现从业务数据库中读取与该目标业务数据集合对应的业务数据,并基于读取到的该业务数据对该目标业务数据集合进行更新:
步骤302,从业务数据库中读取与该目标业务数据集合对应的业务数据;
步骤304,基于读取到的业务数据计算完整性校验信息;
步骤306,确认计算出的完整性校验信息与该数据更新通知中的完整性校验信息是否一致;如果一致,则执行步骤308;如果不一致,则跳转执行步骤302。
步骤308,基于读取到的该业务数据对该目标业务数据集合进行更新。
云端缓存子系统在从业务数据库中读取到与该目标业务数据集合对应的业务数据后,可以先基于读取到的该业务数据计算对应的完整性校验信息,再检测计算得到的完整性校验信息与该数据更新通知中的完整性校验信息是否一致。
如果计算得到的完整性校验信息与该数据更新通知中的完整性校验信息一致,则云端缓存子系统可以基于读取到的该业务数据对本地缓存的该目标业务数据集合进行更新。
如果计算得到的完整性校验信息与该数据更新通知中的完整性校验信息不一致,则云端缓存子系统可以重新从业务数据库中重新读取与该目标业务数据集合对应的业务数据,并再次基于读取到的该业务数据计算对应的完整性校验信息,以检测计算得到的完整性校验信息与该数据更新通知中的完整性校验信息是否一致;以此类推,直至基于读取到的该业务数据计算得到的完整性校验信息与该数据更新通知中的完整性校验信息一致,则云端缓存子系统可以基于该业务数据对本地缓存的该目标业务数据集合进行更新。
同样地,数据管理子系统在完成对该目标业务数据集合的版本信息的更新后,还可以向业务子系统发送数据更新通知。其中,该数据更新通知可以包括该目标业务数据集合更新后的版本信息。
当然,为了便于对业务数据集合进行区分,该数据更新通知还可以包括该目标业务数据集合的标识信息。
业务子系统在接收到数据管理子系统发送的该数据更新通知时,可以先根据该数据更新通知中的标识信息在本地缓存的所有业务数据集合中确定对应的该目标业务数据集合,再检测本地缓存的该目标业务数据集合的版本信息与该数据更新通知中的版本信息是否一致。
如果本地缓存的该目标业务数据集合的版本信息与该数据更新通知中的版本信息一致,则业务子系统可以不对本地缓存的该目标业务数据集合进行更新。
如果本地缓存的该目标业务数据集合的版本信息,与该数据更新通知中的版本信息不一致,则业务子系统可以获取云端缓存子系统中缓存的该目标业务数据集合,并基于获取到的该目标业务数据集合对本地缓存的该目标业务数据集合进行更新。
在示出的一种实施方式中,数据管理子系统发送给云端缓存子系统的数据更新通知还可以包括计算得到的该完整性校验信息。
请参考图4,业务子系统在接收到该数据更新通知时,可以采用如下步骤实现获取云端缓存子系统中缓存的该目标业务数据集合,并基于获取到的该目标业务数据集合对本地缓存的该目标业务数据集合进行更新:
步骤402,获取云端缓存子系统中缓存的该目标业务数据集合;
步骤404,基于该目标业务数据集合中的业务数据计算完整性校验信息;
步骤406,确认计算出的完整性校验信息与该数据更新通知中的完整性校验信息是否一致;如果一致,则执行步骤408;如果不一致,则跳转执行步骤402;
步骤408,基于获取到的该目标业务数据集合对本地缓存的该目标业务数据集合进行更新。
业务子系统在获取云端缓存子系统中缓存的该目标业务数据集合后,可以先基于该目标业务数据集合中业务数据计算对应的完整性校验信息,再检测计算得到的完整性校验信息与该数据更新通知中的完整性校验信息是否一致。
如果计算得到的完整性校验信息与该数据更新通知中的完整性校验信息一致,则业务子系统可以基于获取到的该目标业务数据集合对本地缓存的该目标业务数据集合进行更新。
如果计算得到的完整性校验信息与该数据更新通知中的完整性校验信息不一致,则业务子系统可以重新获取云端缓存子系统中缓存的该目标业务数据集合,并再次基于该目标业务数据集合中业务数据计算对应的完整性校验信息,以检测计算得到的完整性校验信息与该数据更新通知中的完整性校验信息是否一致;以此类推,直至基于该目标业务数据集合中业务数据计算得到的完整性校验信息与该数据更新通知中的完整性校验信息一致,则业务子系统可以基于该目标业务数据集合对本地缓存的该目标业务数据集合进行更新。
在示出的一种实施方式中,如果业务子系统为基于多台服务设备搭建的服务集群,则业务子系统在接收到数据管理子系统发送的上述数据更新通知后,可以获取云端缓存子系统中缓存的上述目标业务数据集合,并将获取到的该目标业务数据集合分别在该服务集群的各台服务设备上缓存。
基于此,对于该服务集群的各台服务器而言,业务子系统在将该目标业务数据集合成功缓存至该服务设备时,还可以将该数据更新通知缓存至该服务设备,即该服务集群的各台服务设备可以在本地保存该数据更新通知。
数据管理子系统可以周期性地确认该服务设备上保存的数据更新通知,与由数据管理子系统发送的数据更新通知是否匹配。
具体地,可以比较这两个数据更新通知分别对应的业务数据集合以及该业务数据集合的版本信息是否一致。如果都一致,则可以确定该服务设备上保存的数据更新通知,与由数据管理子系统发送的数据更新通知匹配;否则,可以确定该服务设备上保存的数据更新通知,与由数据管理子系统发送的数据更新通知不匹配。
如果该服务集群的各台服务设备上保存的数据更新通知,都与由数据管理子系统发送的数据更新通知匹配,则数据管理子系统可以向用户输出业务子系统数据更新完成的提示消息,以提示用户业务子系统上保存的数据已完成更新。
然而,如果该服务集群的各台服务设备中,至少一台服务设备上保存的数据更新通知,与由数据管理子系统发送的数据更新通知不匹配,则数据管理子系统可以在确认不匹配的持续时长达到预设阈值时,向用户输出告警提示,以提示用户业务子系统上保存的数据更新失败。
其中,预设阈值可以由用户预先设置,也可以是默认的缺省值,本说明书对此不作限制。
在上述技术方案中,无需将全部业务数据集合发送给业务子系统,由业务子系统自行将接收到的业务数据集合与本地缓存的业务数据集合进行比较,而是可以由数据管理子系统将发生更新的业务数据所属的业务数据集合的版本信息发送给业务子系统,由业务子系统在检测到该版本信息与本地缓存的该业务数据集合的版本信息不一致时,对该业务数据集合进行更新。这样,由于业务子系统可以基于各个业务数据集合的版本信息检测该业务数据集合是否发生更新,并仅对检测到发生更新的业务数据集合进行后续更新,因此可以减少设备性能资源的消耗,提高数据更新的效率。
与前述数据更新方法的实施例相对应,本说明书还提供了数据更新系统的实施例。
请参考图5,图5是本说明书一示例性实施例示出的一种数据更新系统的框图。该数据更新系统50可以包括:
数据管理子系统501,用于在对所述业务数据库中的目标业务数据进行更新后,对所述目标业务数据所属的目标业务数据集合的版本信息进行更新,并分别向所述云端缓存子系统和所述业务子系统发送数据更新通知;其中,所述数据更新通知包括所述目标业务数据集合更新后的版本信息;
云端缓存子系统502,用于响应于所述数据更新通知,检测本地缓存的所述目标业务数据集合的版本信息,与所述数据更新通知中的版本信息是否一致,如果不一致,则从所述业务数据库中读取与所述目标业务数据集合对应的业务数据,并基于读取到的业务数据对本地缓存的所述目标业务数据集合进行更新;
业务子系统503,用于响应于所述数据更新通知,检测本地缓存的所述目标业务数据集合的版本信息,与所述数据更新通知中的版本信息是否一致,如果不一致,则获取所述云端缓存子系统中缓存的所述目标业务数据集合,对本地缓存的所述目标业务数据集合进行更新。
在本实施例中,所述数据更新通知还可以包括基于更新后的所述目标业务数据集合中的业务数据计算出的完整性校验信息;其中,所述完整性校验信息用于对所述目标业务数据集合中的业务数据进行完整性校验;
所述云端缓存子系统502还可以用于在从所述业务数据库中读取到与所述目标业务数据集合对应的业务数据时,基于读取到的业务数据计算完整性校验信息,并确认计算出的完整性校验信息与所述数据更新通知中的完整性校验信息是否一致,如果不一致,则从所述业务数据库中重新读取与所述目标业务数据集合对应的业务数据,直到计算出的所述完整性校验信息与所述数据更新通知中的完整性校验信息一致时停止。
在本实施例中,所述业务子系统503还可以用于在获取到所述云端缓存子系统中缓存的所述目标业务数据集合时,基于所述目标业务数据集合中的业务数据计算完整性校验信息,并确认计算出的完整性校验信息与所述数据更新通知中的完整性校验信息是否一致,如果不一致,则重新获取所述云端缓存子系统中缓存的所述目标业务数据集合,直到计算出的所述完整性校验信息与所述数据更新通知中的完整性校验信息一致时停止。
在本实施例中,所述完整性校验信息可以包括基于所述目标业务数据集合中的业务数据进行hash计算得到的hash值。
在本实施例中,所述业务子系统503为基于多台服务设备搭建的服务集群;
所述业务子系统503具体可以用于:
获取所述云端缓存子系统中缓存的所述目标业务数据集合,并将获取到的所述目标业务数据集合分别在所述服务集群的各台服务设备上缓存。
在本实施例中,在将所述目标业务数据集合成功缓存至各台业务服务设备时,各台服务设备在本地保存所述数据更新通知;
所述数据管理子系统501具体可以用于:
周期性确认各台服务设备上保存的数据更新通知,与发送的数据更新通知是否匹配,如果各台服务设备上保存的数据更新通知,与发送的数据更新通知均匹配,则向用户输出所述业务子系统数据更新完成的提示消息,如果各台服务设备中的至少一台服务设备上保存的数据更新通知,与发送的数据更新通知不匹配,则在不匹配的持续时长达到预设阈值时,向用户输出告警提示。
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部分说明的子系统可以是或者也可以不是物理上分开的,作为子系统显示的部分可以位于一个电子设备上,或者也可以分布到多个电子设备上。可以根据实际的需要选择其中的部分或者全部子系统来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。