一种数据更新的方法和系统技术方案

技术编号:12061779 阅读:69 留言:0更新日期:2015-09-17 12:28
本发明专利技术涉及一种数据更新的方法和系统,该方法包括:步骤110:接收数据更新请求;步骤120:确定分片服务器集群中是否有可以更新数据的分片复本服务器;步骤130:当确定分片服务器集群中有可以更新数据的分片复本服务器时,对分片服务器集群中的至少一个可以更新数据的分片复本服务器的数据进行更新;以及步骤140:当所述至少一个可以更新数据的分片复本服务器更新数据完毕后,针对剩余的未更新的分片复本服务器,执行步骤110至130,直至所有未更新的分片复本服务器更新数据完毕。根据本发明专利技术的方法,能够在不停掉线上服务的情况下,进行配置文件和检索词典等数据文件的自动切换并生效。

【技术实现步骤摘要】

本专利技术涉及数据更新领域,更具体地涉及一种数据更新的方法、和系统。
技术介绍
对线上服务来说,经常需要更新在线配置和数据。例如,索引词典是搜索引擎非常重要的数据文件,其主要特点是:1)数据规模非常庞大;2)访问和更新都非常频繁。一般来说,对搜索引擎的数据更新就是指对索引词典的更新。随着现代搜索技术的发展,所需要处理的数据量越来越大,而且数据更新的次数也更加频繁。但是,对数据的更新,例如对索引词典的更新往往需要模块的重启才能生效,而且需要较多的人工参与。因此,这种数据更新方式给线上的数据处理的运行和运维都带来了较大的压力。因此,在本领域中,需要一种能够在不停掉线上服务的情况下更新数据的方式,本专利技术提出利用一种创新的方式来实现对数据的更新,从而大大降低线上数据处理的运维难度,并且提高了线上数据处理的稳健性。
技术实现思路
鉴于上述问题,本专利技术提供一种数据更新技术,以在不停掉线上服务的情况下更新数据。为了解决上述技术问题,本专利技术的目的是通过以下技术方案实现:本专利技术提供了一种数据更新方法,其包括:将数据文件的数据划分成数据分块并分别存储到一个或多个分片服务器集群中;在每一个分片服务器集群中,将数据分块复制并存储至一个以上分片复本服务器;汇总服务器对分片服务器集群的数据处理结果进行汇总,并通过访问所述一个或多个分片服务器集群获取正在提供数据处理服务的分片复本服务器,该方法包括:步骤110:接收数据更新请求;步骤120:确定分片服务器集群中是否有可以更新数据的分片复本服务器;步骤130:当确定分片服务器集群中有可以更新数据的分片复本服务器时,对分片服务器集群中的至少一个可以更新数据的分片复本服务器的数据进行更新;以及步骤140:当所述至少一个可以更新数据的分片复本服务器更新数据完毕后,针对剩余的未更新的分片复本服务器,执行步骤110至130,直至所有未更新的分片复本服务器更新数据完毕。其中,还包括:步骤150:当确定没有可以更新数据的分片复本服务器时,返回步骤 110。其中,所述步骤140进一步包括:当所述至少一个可以更新数据的分片复本服务器更新数据完毕后,将所更新的分片复本服务器的状态定义为服务状态并将所述服务状态通知汇总服务器;并且更新完毕的分片复本服务器恢复提供数据处理服务。其中,所述步骤130进一步包括:将所更新的分片复本服务器的状态定义为更新状态并将其所述更新状态通知汇总服务器。其中,属于不同分片服务器集群的可以更新数据的分片复本服务器并行更新数据。其中,在分片服务器集群的数据更新过程中,每个分片服务器集群中至少有一个分片复本服务器提供数据处理服务。其中,在分片服务器集群的数据更新过程中,每个分片服务器集群中有小于或等于预先设定的阈值的分片复本服务器并行更新数据。其中,在分片服务器集群的数据更新过程中,每个分片服务器集群中仅有一个分片复本服务器正在更新数据。其中,所述分片服务器集群是基础信息服务器集群或展示信息服务器集群。本专利技术还提供了一种数据更新系统,其包括:一个或多个分片服务器集群、一个以上分片复本服务器以及汇总服务器;每一个分片服务器集群包括一个或多个分片复本服务器;所述分片复本服务器包括:接收模块,用于接收数据更新请求;确定模块,用于确定分片服务器集群中是否有可以更新数据的分片复本服务器;以及更新模块,用于当确定分片服务器集群中有可以更新数据的分片复本服务器时,对分片服务器集群中的所述至少一个可以更新的分片复本服务器的数据进行更新。其中,所述更新模块进一步包括:服务状态通知子模块,用于当所述至少一个可以更新数据的分片复本服务器更新数据完毕后,将所更新的分片复本服务器的状态定义为服务状态并将所述服务状态通知汇总服务器;并且更新完毕的分片复本服务器恢复提供数据处理服务。其中,所述更新模块进一步包括:更新状态通知子模块,用于将所更新的分片复本服务器的状态定义为更新状态并将其所述更新状态通知汇总服务器。其中,属于不同分片服务器集群的可以更新数据的分片复本服务器被配置为并行更新数据。其中,在分片服务器集群的数据更新过程中,每个分片服务器集群被配置为至少有一个分片复本服务器提供数据处理服务。其中,在分片服务器集群的数据更新过程中,每个分片服务器集群被配置为有小于或等于预先设定的阈值的分片复本服务器并行更新数据。其中,在分片服务器集群的数据更新过程中,每个分片服务器集群被配置为仅有一个分片复本服务器正在更新数据。其中,所述分片服务器集群是基础信息服务器集或展示信息服务器集群。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的【具体实施方式】。【附图说明】通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1是根据本专利技术一个实施例的数据更新方法的流程图;图2a和图2b是根据本专利技术一个实施例的数据更新方法的Zookeeper文件系统图;图3根据本专利技术另一个实施例的数据更新方法的Zookeeper文件系统图;图4是根据本专利技术一个实施例的数据更新系统的示意图;以及图5是根据本专利技术一个实施例的一个分片复本服务器的框图。【具体实施方式】下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术的主要思想在于,通过采用分布式多机协作热切换的方案,使数据更新完全由程序自动化完成,即,在不停掉线上服务的情况下,进行配置文件和检索词典等数据文件的自动切换并生效。为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术具体实施例及相应的附图对本专利技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在一个实现方式中,通过专业的系统运维人员进行数据更新切换,具体做法:1)为线上服务提供一个备用集群,这个备用集群相当于线上服务集群的一个镜像;2)每次数据更新时,先在线上更新好备用集群,待备用集群更新完毕准备好之后,将线上访问请求流量转移到备用集群上,这样备用集群就成了线上服务集群;3)将原来的线上服务集群变成备用集群。这种实现方式的缺点:1)需要较多的人工参与,更新速度缓慢,而且容易造成线上故障频发,系统的稳定性难以保障;2)由于需要提供备用集群,导致需要更多的机器来满足日常的线上服务,但是大部分情况下备用集群都处于闲置状态,资源浪费严重。在另一个实现方式中,通过采用双buffer (内存)进行数据更新切换,具体做法:I)数据处理系统在内存中把数据加载为两份,将两份数据的序号分别设定为O和I ;2)其中一份数据表用于提供线上服务,例如,cur_idx对应当前提供线上服务本文档来自技高网...

【技术保护点】
一种数据更新方法,其特征在于,将数据文件的数据划分成数据分块并分别存储到一个或多个分片服务器集群中;在每一个分片服务器集群中,将数据分块复制并存储至一个以上分片复本服务器;汇总服务器对分片服务器集群的数据处理结果进行汇总,并通过访问所述一个或多个分片服务器集群获取正在提供数据处理服务的分片复本服务器,该方法包括:步骤110:接收数据更新请求;步骤120:确定分片服务器集群中是否有可以更新数据的分片复本服务器;步骤130:当确定分片服务器集群中有可以更新数据的分片复本服务器时,对分片服务器集群中的至少一个可以更新数据的分片复本服务器的数据进行更新;以及步骤140:当所述至少一个可以更新数据的分片复本服务器更新数据完毕后,针对剩余的未更新的分片复本服务器,执行步骤110至130,直至所有未更新的分片复本服务器更新数据完毕。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈华清
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

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

1