CN104917798A - 一种数据更新的方法和系统 - Google Patents

一种数据更新的方法和系统 Download PDF

Info

Publication number
CN104917798A
CN104917798A CN201410093941.4A CN201410093941A CN104917798A CN 104917798 A CN104917798 A CN 104917798A CN 201410093941 A CN201410093941 A CN 201410093941A CN 104917798 A CN104917798 A CN 104917798A
Authority
CN
China
Prior art keywords
burst
data
server
service device
device cluster
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.)
Pending
Application number
CN201410093941.4A
Other languages
English (en)
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 Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410093941.4A priority Critical patent/CN104917798A/zh
Priority to PCT/CN2014/095957 priority patent/WO2015135370A1/zh
Publication of CN104917798A publication Critical patent/CN104917798A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Abstract

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

Description

一种数据更新的方法和系统
技术领域
本发明涉及数据更新领域,更具体地涉及一种数据更新的方法、和系统。
背景技术
对线上服务来说,经常需要更新在线配置和数据。例如,索引词典是搜索引擎非常重要的数据文件,其主要特点是: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(内存)进行数据更新切换,具体做法:1)数据处理系统在内存中把数据加载为两份,将两份数据的序号分别设定为0和1;2)其中一份数据表用于提供线上服务,例如,cur_idx对应当前提供线上服务的数据,其当前序号为0,即表示当前0号数据提供线上服务;3)当系统发现有新的数据更新生成推送时,利用内存中的1-cur_idx号数据来加载该更新数据,待数据更新完毕后令cur_idx=1-cur_idx,从而使cur_idx数据提供线上服务。这种实现方式的缺点在于,由于系统需要把数据加载为两份,其中一份用于更新,另一份用于当前提供线上服务,更新时在两份数据之间进行切换,因此系统需要占用较多内存。
为了方便下文描述,首先介绍本申请的各个实施方式中所涉及的术语的解释。
数据热切换:指在不停掉线上服务的情况下,进行数据的更新。
分布式协作:指在分布式系统中,各个模块或节点机器协作共同完成一个任务。
分片服务器集群(SHARD SERVER):把数据文件的数据分为几份,将每一份数据存储在一个分片服务器集群中。所有的分片服务器集群的数据的总和即为全部数据。
分片复本服务器(REPLICA SERVER):在每个分片服务器集群中,把数据完全复制为若干份(一份以上)复本,将每一个分片复本的数据存储在一个分片复本服务器中。
Zookeeper是一个针对大型分布式系统的可靠的协调系统,其提供的功能包括:配置维护、名字服务、分布式同步、组服务等。Zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
在本发明中,为了对分布式协作的分片服务器集群进行协调管理,可以采用Zookeeper系统对各分片服务器集群中的分片复本服务器提供配置维护、名字服务、分布式同步、组服务等协调管理的服务,从而实现高效和可靠的协同工作。
Zookeeper系统的核心是一个精简的文件系统,每一个文件节点在Zookeeper系统中称之为节点(NODE),每个NODE节点上可以设置监听器(Watcher),用来监控NODE节点及其子节点的状态变化,同时,Watcher可以监控目录节点的状态变化以及其子目录的状态变化。一旦所监听的节点的状态发生变化,Zookeeper服务器就会通知所有设置在这个目录节点上的Watcher,从而相应的客户端都会很快知道它所关注的目录节点的状态发生变化,从而做出相应的反应。
下面将参考附图,详细描述本发明改进的技术方案。
参考图1,图1是根据本发明一个实施例的数据更新方法100的流程图。如图1所示,方法100开始于步骤110。
在步骤110,接收数据更新请求。
具体而言,首先将数据文件的数据划分成数据分块并分别存储到一个或多个分片服务器集群中,然后在每一个分片服务器集群中,将数据分块复制并存储至一个以上分片复本服务器。当提供数据处理服务时,汇总服务器可以对分片服务器集群的数据处理结果进行汇总,从而提供完整的数据处理结果。此外,汇总服务器可以通过访问所述一个或多个分片服务器集群获取正在提供数据处理服务的分片复本服务器。
本发明采用push的方式通知数据更新,即,负责更新数据的系统,在数据更新完毕之后,发送一个数据更新的消息通知给使用该数据的系统,使用该数据的系统得到通知后更新数据。
在本发明中,Zookeeper服务器接收到负责更新数据的系统发送的数据更新的消息后,通知相应的分片服务器集群中的所有分片复本服务器更新数据。
在步骤120,确定分片服务器集群中是否有可以更新数据的分片复本服务器。
具体而言,当分片服务器集群中的各分片复本服务器感知到有新的数据需要更新时,可以通过指定路径访问与该分片服务器集群相对应的更新标识文件(LOADING),确定当前正在更新数据的分片复本服务器情况,从而可以根据预先设定的在该分片服务器集群中可以并行进行数据更新的分片复本服务器数量,确定当前在该分片服务器集群中是否有可以更新数据的分片复本服务器。如果在该分片服务器集群中存在需要进行数据更新的分片复本服务器,并且当前在该分片服务器集群中正在更新数据的分片复本服务器数量小于该预先设定的阈值时,则当前在该分片服务器集群中有可以进行数据更新的分片复本服务器;如果在该分片服务器集群中存在需要进行数据更新的分片复本服务器,并且当前在该分片服务器集群中正在更新数据的分片复本服务器数量等于阈值;或者如果在该分片服务器集群中不存在需要进行数据更新的分片复本服务器,则在该分片服务器集群中当前没有可以进行数据更新的分片复本服务器。
在步骤130,当确定分片服务器集群中有可以更新数据的分片复本服务器时,对分片服务器集群中的至少一个可以更新数据的分片复本服务器的数据进行更新。
具体而言,当确定分片服务器集群中有可以更新数据的分片复本服务器时,可以根据预先设定的阈值,对分片服务器集群中的至少一个可以更新数据的分片复本服务器进行更新。例如,将分片服务器集群中可以并行更新的分片复本服务器数量阈值设定为2(即容许2台分片复本服务器并行更新),而当前正在更新数据的分片复本服务器数量为1,则可以对该分片服务器集群中另外1台未更新的分片复本服务器也进行更新。
当分片复本服务器确定没有可以更新数据的分片复本服务器时,暂时不对未更新的分片复本服务器进行数据的更新,此时它们继续保持提供数据处理服务,当有分片复本服务器更新完毕时,Zookeeper服务器监听到所更新的分片复本服务器的状态变化后,向所更新的分片复本服务器所属的分片服务器集群中分片复本服务器发送数据更新通知,剩余的未更新的分片复本服务器收到通知后执行步骤120和130,直至分片服务器集群中所有未更新的分片复本服务器更新数据完毕。
为了保证检索结果的一致性,更新中的分片复本服务器不提供数据处理服务。根据本发明的一个实施例,当对分片服务器集群中的至少一个可以更新数据的分片复本服务器进行更新时,可以将所更新的分片复本服务器的状态定义为更新状态并将其所述更新状态通知汇总服务器,从而使汇总服务器得知哪些分片复本服务器正在更新数据,即,不提供数据处理服务。
当至少一个未更新的分片复本服务器更新数据完毕后,所更新的分片复本服务器恢复提供数据处理服务,并且将其服务状态通知汇总服务器。
上述为了方便描述的目的,只描述了一个分片服务器集群的数据更新过程,在实际的系统中,每个分片服务器集群可以是并行执行上述步骤的,这种并行更新可以大大提高数据的更新效率。
需要指出的是,在分片服务器集群的更新过程中,每个分片服务器集群中始终至少有一个分片复本服务器提供数据处理服务,这样可以保证数据处理结果的完整性。
另外,根据本发明的数据更新方法的一个实施例,在搜索引擎检索集群中,通常将索引词典数据分为两部分分别存储在两个服务器集群中,即,基础信息服务器集群(BASIC_SERVERS)和展示信息服务器集群(DETAIL_SERVERS)。其中,基础信息服务器集群用于执行具体的搜索任务,倒排索引词典的加载,查询和更新等操作都在该集群内完成。展示信息服务器集群用于查询搜索结果的展示信息,比如标题,摘要和描述等展示信息。汇总服务器(MERGE_SERVER)用于合并基础信息服务器集群和展示信息服务器集群发送过来的搜索结果信息,并进行排序和过滤。
根据本发明的一个实施例,所述分片服务器集群可以是基础信息服务器集群或展示信息服务器集群。对各集群的检索词典更新过程的描述与上述方法100的步骤相同,在此不再赘述。
至此,描述了根据本发明一个实施例的数据更新方法100的流程图。其通过采用分布式多机协作热切换的方案,使数据更新切换完全由程序自动化完成,即,在不停掉线上服务的情况下,进行配置文件和数据更新等数据文件的自动切换并生效。与现有技术相比,由于数据的更新完全由程序自动化完成,减少了人工干预,从而减少了人工成本和人工操作的出错率;并且,由于本发明采用分布式多机协作热切换,而不是单机的热切换解决方案,因此单机只需要在内存中加载一份数据,占用内存量大大减少,从而节省了资源。另外,采用分布式多机协作热切换还能够大大降低线上数据处理服务的运维难度,也提高了线上服务的稳健性。
下面,参考Zookeeper的文件系统图,举例说明采用分布式协作系统Zookeeper来实现数据更新的分布式协作应用。
在以下的示例中,将数据文件的数据分为两部分分别存储在基础信息服务器集群(BASIC_SERVERS)和展示信息服务器集群(DETAIL_SERVERS)中。在Zookeeper的文件系统图中,BASIC_SERVERS、DETAIL_SERVERS、MERGE_SERVER可以分别建立各自的节点和它们下面的子节点。
图2a和图2b是根据本发明一个实施例的数据更新方法的Zookeeper文件系统图,其中,预先设定一个SHARD节点中仅容许一个REPLICA节点正在进行数据更新。
在图2a中,BASIC_SERVERS节点有2个SHARD节点,分别为BS_SHARD0和BS_SHARD1,其中BS_SHARD0中有2个REPLICA节点,分别为BS_SHARD0_NODE0和BS_SHARD0_NODE1,BS_SHARD1中有2个REPLICA节点,分别为BS_SHARD1_NODE0和BS_SHARD1_NODE1。
MERGE_SERVER通过访问BS_SERVERS下的子节点获取当前系统中的所有分片服务器集群(BS_SHARD0,BS_SHARD1),通过访问BS_SHARD0,BS_SHARD1下的子节点来获取正在提供服务的REPLICA节点。例如,对BS_SHARD0来说,其下的子节点为BS_SHARD0_NODE0和BS_SHARD0_NODE1,同时要除去节点LOADING下的所有子节点(正在更新中的节点),最终得到正在提供服务的REPLICA节点。
由图2a可知,MERGE_SERVER得到正在提供的节点为:BS_SHARD0_NODE0,BS_SHARD0_NODE1,BS_SHARD1_NODE0,BS_SHARD1_NODE1;无正在更新数据的节点。
在图2b中,当SHARD感知到有新的数据需要更新时,由于预先设定LOADING子节点下仅容许一个REPLICA节点正在进行数据更新,以BS_SHARD0为例,BS_SHARD0_NODE0通过指定路径访问其所属SHARD(BS_SHARD0)下的LOADING子节点,发现该子节点下为空,则在LOADING节点下建立标识自己的子节点BS_SHARD0_NODE0,即,进行数据的更新,同时把自己从SERVER子节点中删除,并且在MERGE_SERVER/LOADING节点下建立标识自己的节点。
由图2b可知,MERGE_SERVER得到正在提供的节点为:BS_SHARD0_NODE1,BS_SHARD1_NODE0,BS_SHARD1_NODE1;正在更新数据的节点为:BS_SHARD0_NODE0。
此时,LOADING节点下的子节点BS_SHARD0_NODE0已下线,进行数据的更新。BS_SHARD0_NODE0更新完毕之后,在SERVER节点下重新建立标识自己的子节点。MERGE_SERBER监听SERVER节点得到通知变化后把该节点从MERGE_SERVER/LOADING的子节点中删除。监听MERGE_SERVER/LOADING的BS_SHARD0_NODE0节点得到删除通知,知道MERGE_SERVER已经知道自己提供服务的通知,于是把自己从BS_SHARD0/LOADING节点中删除。当BS_SHARD0/LOADING的状态发生变化时,BS_SHARD0_SERVER节点下的剩余的未更新的REPLICA节点都到更新通知时,再次访问其所属BS_SHARD0下的LOADING子节点,如发现该子节点下为空,则在LOADING节点下建立标识自己的子节点BS_SHARD0_NODE0,即,进行索引词典的更新,其余步骤与上述描述相同。如此反复,直到BS_SHARD0下所有REPLICA节点的数据都更新完毕。
对DETAIL_SERVERS集群来说,其数据的更新情况与BASIC_SERVERS集群类似,这里不再赘述。
图3根据本发明另一个实施例的数据更新的Zookeeper文件系统图。
具体来说,如果一个SHARD中REPLICA数量很多,则会由于REPLICA排队更新时间过长而导致整个SHARD更新周期过长。在这种情况下,可以根据实际情况(REPLICA节点的数量,当前线上的负载情况),设定LOADING下子节点的容量,即一次容许多个节点(但不是全部)同时进行数据更新。并且,在实际的系统中,每个SHARD节点可以是并行执行更新程序的。
图3描述了预先设定在一个SHARD节点中可以容许2个REPLICA个节点并行进行数据更新的情形:
在图3中,MERGE_SERVER得到正在提供的节点为:BS_SHARD0_NODE1,BS_SHARD0_NODE3,BS_SHARD1_NODE0,BS_SHARD1_NODE2;正在更新数据的节点为BS_SHARD0_NODE0,BS_SHARD0_NODE2,BS_SHARD1_NODE1,BS_SHARD1_NODE3。
图4是根据本发明一个实施例的数据更新切换系统400的示意图。如图4所示,系统400包括:n个分片服务器集群和汇总服务器;每一个分片服务器集群包括m(m>1)个分片复本服务器。
当提供数据处理服务时,汇总服务器可以对所有分片服务器集群的数据处理结果进行汇总,从而提供完整的数据处理结果。此外,汇总服务器可以通过访问所述一个或多个分片服务器集群获取正在提供数据处理服务的分片复本服务器。
图5是根据本发明一个实施例的一个分片复本服务器的框图。
如图5所示,分片复本服务器500包括(如图5所示):接收模块510,用于接收数据更新请求;确定模块520,用于确定分片服务器集群中是否有可以更新数据的分片复本服务器;以及更新模块530,用于当确定分片服务器集群中有可以更新数据的分片复本服务器时,对分片服务器集群中的所述至少一个可以更新的分片复本服务器的数据进行更新。
根据本发明的一个实施例,所述更新模块进530一步包括(未示出):服务状态通知子模块,用于当所述至少一个可以更新数据的分片复本服务器更新数据完毕后,将所更新的分片复本服务器的状态定义为服务状态并将所述服务状态通知汇总服务器;并且更新完毕的分片复本服务器恢复提供数据处理服务。
根据本发明的一个实施例,所述更新模块530进一步包括(未示出):更新状态通知子模块,用于将所更新的分片复本服务器的状态定义为更新状态并将其所述更新状态通知汇总服务器。
根据本发明的一个实施例,属于不同分片服务器集群的可以更新数据的分片复本服务器被配置为并行更新数据。
根据本发明的一个实施例,在分片服务器集群的数据更新过程中,每个分片服务器集群被配置为至少有一个分片复本服务器提供数据处理服务。
根据本发明的一个实施例,在分片服务器集群的数据更新过程中,每个分片服务器集群被配置为有小于或等于预先设定的阈值的分片复本服务器并行更新数据。
根据本发明的一个实施例,在分片服务器集群的数据更新过程中,每个分片服务器集群被配置为仅有一个分片复本服务器正在更新数据。
根据本发明的一个实施例,所述分片服务器集群是基础信息服务器集或展示信息服务器集群。
由于本实施例的装置所实现的功能基本相应于前述图1所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的客户端中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个客户端中。可以把实施例中的模块组合成一个模块,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者客户端的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的加载有排序网址的客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明包括A10、一种数据更新系统,其特征在于,包括:一个或多个分片服务器集群、一个以上分片复本服务器以及汇总服务器;
每一个分片服务器集群包括一个或多个分片复本服务器;
所述分片复本服务器包括:接收模块,用于接收数据更新请求;
确定模块,用于确定分片服务器集群中是否有可以更新数据的分片复本服务器;以及
更新模块,用于当确定分片服务器集群中有可以更新数据的分片复本服务器时,对分片服务器集群中的所述至少一个可以更新的分片复本服务器的数据进行更新。
A11、根据权利要求10所述的系统,其特征在于,所述更新模块进一步包括:服务状态通知子模块,用于当所述至少一个可以更新数据的分片复本服务器更新数据完毕后,将所更新的分片复本服务器的状态定义为服务状态并将所述服务状态通知汇总服务器;并且更新完毕的分片复本服务器恢复提供数据处理服务。
A12、根据权利要求10所述的系统,其特征在于,所述更新模块进一步包括:更新状态通知子模块,用于将所更新的分片复本服务器的状态定义为更新状态并将其所述更新状态通知汇总服务器。
A13、根据权利要求10至12中任一项权利要求所述的系统,其特征在于,属于不同分片服务器集群的可以更新数据的分片复本服务器被配置为并行更新数据。
A14、根据权利要求10至12中任一项权利要求所述的系统,其特征在于,在分片服务器集群的数据更新过程中,每个分片服务器集群被配置为至少有一个分片复本服务器提供数据处理服务。
A15、根据权利要求10至12中任一项权利要求所述的系统,其特征在于,在分片服务器集群的数据更新过程中,每个分片服务器集群被配置为有小于或等于预先设定的阈值的分片复本服务器并行更新数据。
A16、根据权利要求10至12中任一项权利要求所述的系统,其特征在于,在分片服务器集群的数据更新过程中,每个分片服务器集群被配置为仅有一个分片复本服务器正在更新数据。
A17、根据权利要求10至12中任一项权利要求所述的系统,其特征在于,所述分片服务器集群是基础信息服务器集或展示信息服务器集群。

Claims (10)

1.一种数据更新方法,其特征在于,将数据文件的数据划分成数据分块并分别存储到一个或多个分片服务器集群中;在每一个分片服务器集群中,将数据分块复制并存储至一个以上分片复本服务器;汇总服务器对分片服务器集群的数据处理结果进行汇总,并通过访问所述一个或多个分片服务器集群获取正在提供数据处理服务的分片复本服务器,该方法包括:
步骤110:接收数据更新请求;
步骤120:确定分片服务器集群中是否有可以更新数据的分片复本服务器;
步骤130:当确定分片服务器集群中有可以更新数据的分片复本服务器时,对分片服务器集群中的至少一个可以更新数据的分片复本服务器的数据进行更新;以及
步骤140:当所述至少一个可以更新数据的分片复本服务器更新数据完毕后,针对剩余的未更新的分片复本服务器,执行步骤110至130,直至所有未更新的分片复本服务器更新数据完毕。
2.根据权利要求1所述的方法,其特征在于,还包括:
步骤150:当确定没有可以更新数据的分片复本服务器时,返回步骤101。
3.根据权利要求1所述的方法,其特征在于,所述步骤140进一步包括:当所述至少一个可以更新数据的分片复本服务器更新数据完毕后,将所更新的分片复本服务器的状态定义为服务状态并将所述服务状态通知汇总服务器;并且更新完毕的分片复本服务器恢复提供数据处理服务。
4.根据权利要求1所述的方法,其特征在于,所述步骤130进一步包括:将所更新的分片复本服务器的状态定义为更新状态并将其所述更新状态通知汇总服务器。
5.根据权利要求1至4中任一项权利要求所述的方法,其特征在于,属于不同分片服务器集群的可以更新数据的分片复本服务器并行更新数据。
6.根据权利要求1至4中任一项权利要求所述的方法,其特征在于,在分片服务器集群的数据更新过程中,每个分片服务器集群中至少有一个分片复本服务器提供数据处理服务。
7.根据权利要求1至4中任一项权利要求所述的方法,其特征在于,在分片服务器集群的数据更新过程中,每个分片服务器集群中有小于或等于预先设定的阈值的分片复本服务器并行更新数据。
8.根据权利要求1至4中任一项权利要求所述的方法,其特征在于,在分片服务器集群的数据更新过程中,每个分片服务器集群中仅有一个分片复本服务器正在更新数据。
9.根据权利要求1至4中任一项权利要求所述的方法,其特征在于,所述分片服务器集群是基础信息服务器集群或展示信息服务器集群。
10.一种数据更新系统,其特征在于,包括:一个或多个分片服务器集群、一个以上分片复本服务器以及汇总服务器;
每一个分片服务器集群包括一个或多个分片复本服务器;
所述分片复本服务器包括:接收模块,用于接收数据更新请求;
确定模块,用于确定分片服务器集群中是否有可以更新数据的分片复本服务器;以及
更新模块,用于当确定分片服务器集群中有可以更新数据的分片复本服务器时,对分片服务器集群中的所述至少一个可以更新的分片复本服务器的数据进行更新。
CN201410093941.4A 2014-03-13 2014-03-13 一种数据更新的方法和系统 Pending CN104917798A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410093941.4A CN104917798A (zh) 2014-03-13 2014-03-13 一种数据更新的方法和系统
PCT/CN2014/095957 WO2015135370A1 (zh) 2014-03-13 2014-12-31 一种数据更新的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410093941.4A CN104917798A (zh) 2014-03-13 2014-03-13 一种数据更新的方法和系统

Publications (1)

Publication Number Publication Date
CN104917798A true CN104917798A (zh) 2015-09-16

Family

ID=54070901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410093941.4A Pending CN104917798A (zh) 2014-03-13 2014-03-13 一种数据更新的方法和系统

Country Status (2)

Country Link
CN (1) CN104917798A (zh)
WO (1) WO2015135370A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871649A (zh) * 2016-06-21 2016-08-17 上海帝联信息科技股份有限公司 节点服务器、服务端及其配置文件更新、更新控制方法
CN106067886A (zh) * 2016-08-03 2016-11-02 广州唯品会信息科技有限公司 安全策略更新方法及系统
CN106790549A (zh) * 2016-12-23 2017-05-31 北京奇虎科技有限公司 一种数据更新方法及装置
CN108614713A (zh) * 2018-03-14 2018-10-02 挖财网络技术有限公司 一种自动化应用发布的方法、系统及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105516343B (zh) * 2015-12-31 2018-07-17 中国电子科技集团公司第五十四研究所 一种网络动态自组织的文件共享实现方法
CN112671905B (zh) * 2020-12-23 2023-04-28 广州三七互娱科技有限公司 服务调度方法、装置及系统
CN113760933B (zh) * 2021-08-25 2023-11-03 福建天泉教育科技有限公司 一种数据更新方法及终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753349A (zh) * 2008-12-09 2010-06-23 中国移动通信集团公司 数据节点的升级方法、升级调度节点及升级系统
US20110270887A1 (en) * 2007-04-11 2011-11-03 Emc Corporation Cluster storage using subsegmenting for efficient storage
US20130268486A1 (en) * 2009-04-21 2013-10-10 Google Inc. Asynchronous distributed object uploading for replicated content addressable storage clusters

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436355B (zh) * 2011-11-15 2014-06-25 华为技术有限公司 一种数据传输方法、设备及系统
CN102857554B (zh) * 2012-07-26 2016-07-06 福建网龙计算机网络信息技术有限公司 基于分布式存储系统进行数据冗余处理方法
CN102902746A (zh) * 2012-09-18 2013-01-30 杭州勒卡斯广告策划有限公司 一种海量数据处理方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110270887A1 (en) * 2007-04-11 2011-11-03 Emc Corporation Cluster storage using subsegmenting for efficient storage
CN101753349A (zh) * 2008-12-09 2010-06-23 中国移动通信集团公司 数据节点的升级方法、升级调度节点及升级系统
US20130268486A1 (en) * 2009-04-21 2013-10-10 Google Inc. Asynchronous distributed object uploading for replicated content addressable storage clusters

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
万川梅等: "《深入云计算 Hadoop应用开发实战详解》", 30 June 2013 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871649A (zh) * 2016-06-21 2016-08-17 上海帝联信息科技股份有限公司 节点服务器、服务端及其配置文件更新、更新控制方法
CN106067886A (zh) * 2016-08-03 2016-11-02 广州唯品会信息科技有限公司 安全策略更新方法及系统
CN106067886B (zh) * 2016-08-03 2019-06-14 广州品唯软件有限公司 安全策略更新方法及系统
CN106790549A (zh) * 2016-12-23 2017-05-31 北京奇虎科技有限公司 一种数据更新方法及装置
CN108614713A (zh) * 2018-03-14 2018-10-02 挖财网络技术有限公司 一种自动化应用发布的方法、系统及装置
CN108614713B (zh) * 2018-03-14 2021-07-27 挖财网络技术有限公司 一种自动化应用发布的方法、系统及装置

Also Published As

Publication number Publication date
WO2015135370A1 (zh) 2015-09-17

Similar Documents

Publication Publication Date Title
CN104917798A (zh) 一种数据更新的方法和系统
AU2019236685B2 (en) Distributed file system using consensus nodes
US8832234B1 (en) Distributed data storage controller
KR102547126B1 (ko) 블록 스토리지 시스템들을 위한 분산된 복제본
EP2998881B1 (en) A computer implemented method for dynamic sharding
US8918392B1 (en) Data storage mapping and management
US8935203B1 (en) Environment-sensitive distributed data management
CN108881477B (zh) 一种基于分布式的文件采集监控的方法
US8930364B1 (en) Intelligent data integration
US20120158662A1 (en) Backup and restore of data from any cluster node
CN111447248A (zh) 一种文件传输的方法及装置
CN105303456A (zh) 电力传输设备监控数据处理方法
CN104516966A (zh) 一种数据库集群的高可用解决方法和装置
CN105205143A (zh) 一种文件存储及处理方法、设备和系统
CN108694188B (zh) 一种索引数据更新的方法以及相关装置
US20190278757A1 (en) Distributed Database Management System with Dynamically Split B-Tree Indexes
CN104750757A (zh) 一种基于HBase的数据存储方法和设备
CN114722092A (zh) 时序数据处理方法、系统、存储介质和电子设备
US11409715B2 (en) Maintaining high-availability of a file system instance in a cluster of computing nodes
US11210212B2 (en) Conflict resolution and garbage collection in distributed databases
CN112069152B (zh) 一种数据库集群升级方法、装置、设备以及存储介质
WO2021257263A1 (en) Techniques for generating a consistent view of an eventually consistent database
US9311330B1 (en) Method and system for performing full backup in a failover cluster
US11079960B2 (en) Object storage system with priority meta object replication
CN112231399A (zh) 一种应用于图数据库的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150916

RJ01 Rejection of invention patent application after publication