CN104978371A - 用于集群系统的数据加载方法、装置和集群系统 - Google Patents

用于集群系统的数据加载方法、装置和集群系统 Download PDF

Info

Publication number
CN104978371A
CN104978371A CN201410149156.6A CN201410149156A CN104978371A CN 104978371 A CN104978371 A CN 104978371A CN 201410149156 A CN201410149156 A CN 201410149156A CN 104978371 A CN104978371 A CN 104978371A
Authority
CN
China
Prior art keywords
server
data
reading
group system
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.)
Pending
Application number
CN201410149156.6A
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410149156.6A priority Critical patent/CN104978371A/zh
Publication of CN104978371A publication Critical patent/CN104978371A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种用于集群系统的数据加载方法、装置和集群系统。其中,用于集群系统的数据加载方法包括:集群系统中的第一服务器读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据;集群系统中的第二服务器读取缓存数据;以及集群系统中的第二服务器加载读取到的缓存数据。通过本申请,达到了减低数据库运行压力进而延长数据库使用寿命的效果。

Description

用于集群系统的数据加载方法、装置和集群系统
技术领域
本申请涉及集群系统领域,具体而言,涉及一种用于集群系统的数据加载方法、装置和集群系统。
背景技术
随着互联网、电子商务行业的快速发展,互联网中的服务器系统通常会进行大规模的数据运算,最典型的场景就是一些诸如规则引擎、分类算法等需要大量计算的应用。为了提高数据运算的速度,通常采用集群系统作为服务器系统,其中,集群系统常常是单一主控机(single master)+多工作机(many workers)模式,worker实现数据的存储、读写、分析处理等,master保存部分或全部元数据、实现worker的任务分配、状态监控、负载平衡、故障监测和故障恢复等。Master常常使用heartbeat+lease或类似机制监控worker的状态,向worker定期交换信息以监控集群系统状态和发送控制命令。
在集群系统进行数据计算过程中,如果用于计算的规则信息数据分布在数据库,则集群系统在计算过程中需要从该数据库中实时读取,数据读取效率低,从而导致严重的性能问题。目前采用的方案就是使用分布式缓存解决集群系统中读取数据库(例如DB数据库)数据的效率问题。
分布式缓存是在分布式环境中使用的缓存技术,常用的缓存主要是各服务器本地缓存,缓存的工作原理是当服务器系统需要读取一个数据时,首先从服务器的缓存中查找,如果找到,则立即读取;如果没有找到,就用相对慢的速度从数据库或者其他地区读取数据后放入到缓存中,正是这样的读取机制使得应用对数据的读取效率大大提高。分布式缓存为提高效能而设计,和单个系统的缓存不同的是,在集群系统中,分布式缓存分布于多台机器,多台机器在逻辑上使用相同的缓存数据。
如图1所示,一个集群系统中包括一个处于主控的主控机、多个服务器和数据库,主控机作为集群系统的管理者进行着集群系统中各个服务器的管理和控制。当需要进行数据计算时,主控机发出指令,控制各服务器更新缓存,以从数据库中进行数据读取缓存。
发明人发现,在高并发的场景下,集群服务器中多个服务器分别加载数据库中的数据会带来瞬间大量的数据库查询。另外,如果从缓存未查询到数据,在将数据缓存到服务器本地时,同样会带来大规模数据库的读写,这对集群系统的稳定性带来极大的挑战。在高并发的场景下,无论是从数据库中查询数据还是从数据库中加载数据,都会给数据库带来巨大的运行压力,降低数据库的使用寿命。
针对现有技术中数据库的运行压力大导致使用寿命短的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种用于集群系统的数据加载方法、装置和集群系统,以解决数据库的运行压力大导致使用寿命短问题。
为了实现上述目的,根据本申请的一个方面,提供了一种用于集群系统的数据加载方法。根据本申请的用于集群系统的数据加载方法包括:集群系统中的第一服务器读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据;集群系统中的第二服务器读取缓存数据;以及集群系统中的第二服务器加载读取到的缓存数据。
进一步地,集群系统中的第一服务器对读取的数据进行缓存包括:集群系统中的第一服务器将读取的数据缓存到集群系统中的第一服务器本地;或者集群系统中的第一服务器将读取的数据缓存到缓存系统,缓存系统为用于缓存数据的系统。
进一步地,集群系统中的第二服务器为多个服务器,其中,集群系统中的第二服务器读取缓存数据包括:多个服务器从集群系统中的第一服务器读取缓存数据;或者多个服务器从缓存系统读取缓存数据。
进一步地,缓存系统为nosql集群缓存系统,其中,集群系统中的第一服务器将读取的数据缓存到缓存系统包括:集群系统中的第一服务器将读取的数据保存到nosql集群缓存系统中,集群系统中的第二服务器读取缓存数据包括:多个服务器从nosql集群缓存系统读取缓存数据。
为了实现上述目的,根据本申请的一个方面,提供了一种用于集群系统的数据加载装置。根据本申请的用于集群系统的数据加载装置包括:缓存单元,用于使得集群系统中的第一服务器读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据;读取单元,用于使得集群系统中的第二服务器读取缓存数据;以及加载单元,用于使得集群系统中的第二服务器加载读取到的缓存数据。
进一步地,缓存单元包括:第一缓存模块,用于使得集群系统中的第一服务器将读取的数据缓存到集群系统中的第一服务器本地;或者第二缓存模块,用于使得集群系统中的第一服务器将读取的数据缓存到缓存系统,缓存系统为用于缓存数据的系统。
进一步地,集群系统中的第二服务器为多个服务器,其中,读取单元包括:第一读取模块,用于使得多个服务器从集群系统中的第一服务器读取缓存数据;或者第二读取模块,用于使得多个服务器从缓存系统读取缓存数据。
进一步地,缓存系统为nosql集群缓存系统,其中,第二缓存模块还用于使得集群系统中的第一服务器将读取的数据保存到nosql集群缓存系统中,读取单元还用于使得多个服务器从nosql集群缓存系统读取缓存数据。
为了实现上述目的,根据本申请的另一方面,提供了一种集群系统。根据本申请的集群系统包括:第一服务器,用于读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据;以及第二服务器,用于读取缓存数据,并加载读取到的缓存数据。
进一步地,集群系统还包括缓存系统,第一服务器海用于将从数据库中读取的数据缓存到缓存系统中,其中,第二服务器还用于从缓存系统中读取缓存数据,并将读取的缓存数据加载到第二服务器本地。
进一步地,缓存系统为nosql集群缓存系统,第二服务器为多个服务器,其中,第一服务器还用于将读取的数据保存到nosql集群缓存系统中,多个服务器从nosql集群缓存系统读取缓存数据,并将读取的缓存数据加载到多个服务器本地。
通过本申请实施例,第一服务器读取数据库的数据,并对读取的数据进行缓存,得到缓存数据,第二服务器读取该缓存数据,并加载该缓存数据,第二服务器无需从数据库中读取数据,从而减少集群系统中服务器向数据库发出的数据请求和读取,通过第一服务器来读取数据库的数据,并进行缓存,解决了数据库的运行压力大导致使用寿命短的问题,达到了减低数据库运行压力进而延长数据库使用寿命的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据现有技术的集群系统的示意图;
图2是根据本申请实施例的集群系统的示意图;
图3是根据本申请实施例的集群系统的工作时序图;
图4是根据本申请实施例的用于集群系统的数据加载方法的流程图;以及
图5是根据本申请实施例的用于集群系统的数据加载装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供了一种集群系统。该集群系统包括第一服务器和第二服务器。
第一服务器用于读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据。
集群系统可以是多个服务器组成的分布式集群服务器系统,第一服务器可以是集群系统中任一个服务器,该第一服务器可以有集群系统的主控机指示和确定。主控机可以根据其内部逻辑从多个服务器中选择一个服务器作为第一服务器,读取数据库中的数据。数据库为集群系统中用于存储数据的数据库,该数据库可以是集群系统中用于存储数据的服务器上的数据库。第一服务器从数据库中读取的数据可以是集群系统用于进行计算的数据。第一服务器可以先向数据库发起数据查询请求,用于从数据库中查询需要的数据,如果查询到相应的数据,则第一服务器读取数据库的数据,读取到数据之后,对读取的数据进行缓存,得到缓存数据。其中,对读取的数据进行缓存可以是将读取的数据缓存到第一服务器本地,也可以是将读取的数据缓存到缓存系统。相应的缓存数据可以是第一服务器中的缓存数据,也可以是缓存系统中的缓存数据。缓存系统可以是用于缓存数据的系统,将第一服务器本地缓存或者缓存系统作为数据缓存的中间件,以便于其他的服务器从该中间件中读取缓存数据。
本申请实施例中,当集群系统进行数据计算时,主控机发出控制指令,用于控制各服务器更新缓存,以将用于进行计算的数据缓存到各服务器本地。主控机从多个服务器中指示一个服务器即第一服务器从数据库中查询数据,如果查询到需要的数据,则从数据库中读取数据,并将读取的数据缓存到第一服务器本地,得到缓存数据,以便于其他服务器可以从第一服务器上读取该缓存数据。在将读取的数据缓存到第一服务器本地之后,第一服务器也可以将读取的数据缓存到缓存系统中,得到缓存数据,以便于其他服务器从缓存系统中读取缓存数据。
第二服务器用于读取缓存数据,并加载读取到的缓存数据。
第二服务器可以是集群系统中第一服务器之外的其他任意服务器,在第一服务器对读取的数据进行缓存,得到缓存数据之后,第二服务器读取该缓存数据。第二服务器可以为多个服务器,第一服务器从数据库中读取到数据,并将读取的数据缓存到第一服务器本地时,第二服务器可以从第一服务器本地缓存中读取缓存数据;当第一服务器从数据库中读取到数据,将读取的数据缓存到缓存系统时,第二服务器可以从缓存系统中读取缓存数据。第二服务器无需从数据库中读取数据,当第二服务器为多个服务器时,该多个服务器均无需从数据库读取数据,以便于降低数据库的运行压力。
集群系统的第二服务器读取到缓存数据之后,加载读取到的缓存数据。具体地,当第二服务器从第一服务器读取缓存数据时,第二服务器从第一服务器中加载该缓存数据到第二服务器本地;当第二服务器从缓存系统读取缓存数据时,第二服务器从缓存系统中加载该缓存数据到第二服务器本地。本申请实施例中,可以通过集群系统的主控机输出控制命令,控制第二服务器从第一服务器或者缓存系统中读取缓存数据,再加载读取的缓存数据。
根据本申请实施例,第一服务器读取数据库的数据,并对读取的数据进行缓存,得到缓存数据,第二服务器读取该缓存数据,并加载该缓存数据,第二服务器无需从数据库中读取数据,从而减少集群系统中服务器向数据库发出的数据请求和读取,通过第一服务器来读取数据库的数据,并进行缓存,解决了数据库的运行压力大导致使用寿命短的问题,达到了减低数据库运行压力进而延长数据库使用寿命的效果。
本申请实施例中,由于集群系统中各服务器在运行过程中,需要随不同的数据业务进行计算处理,对于不同的数据业务的计算处理,其加载的数据也不相同。对于不同的数据业务,主控机可以选择不同的服务器作为第一服务器,从数据库读取数据,并进行缓存。例如,对于数据业务A,进行数据计算时,集群系统的主控机可以指示服务器A-1作为第一服务器,从数据库中读取数据业务A相关的数据,并对读取的数据进行缓存得到缓存数据,集群服务器中其他服务器可以读取并加载该缓存数据到本地。对于数据业务B,进行数据计算时,集群系统的主控机可以指示服务器B-1作为第一服务器,其他处理方式同上。
优选地,集群系统还包括缓存系统,第一服务器还用于将从数据库中读取的数据缓存到缓存系统中,其中,第二服务器还用于从缓存系统中读取缓存数据,并将读取的缓存数据加载到第二服务器本地。
当将读取的数据缓存到缓存系统时,其他服务器从缓存系统读取缓存数据并进行缓存的加载,将缓存数据缓存到各服务器本地。具体地,第一服务器在读取数据库中的数据之后,可以将读取的数据加载到第一服务器进行缓存,然后通过第一服务器将数据存入缓存系统,得到缓存数据,第二服务器从缓存系统中读取该缓存数据。通过将数据缓存到缓存系统中,能够提高服务器读取和加载数据的效率。
进一步优选地,本申请实施例中的缓存系统为nosql集群缓存系统,例如tair缓存系统等。缓存系统为nosql集群缓存系统,第二服务器为多个服务器,其中,第一服务器还用于将读取的数据保存到nosql集群缓存系统中,多个服务器从nosql集群缓存系统读取缓存数据,并将读取的缓存数据加载到多个服务器本地。nosql集群缓存系统具有高速缓存的能力,进一步提高服务器从缓存系统中读取和加载数据的效率。
图2是根据本申请实施例的集群系统的示意图。如图2所示,在集群系统采用了一个nosql集群缓存系统作为缓存,降低对数据库大量读写的主要工具。在该集群系统中,当需要进行数据计算时,集群系统的主控机向服务器发送控制指令,用于控制各服务器更新缓存,以进行数据加载。集群系统会将原本从数据库(DB)中加载的数据改成主控机首先指示一台机器即第一服务器进行缓存加载,然后将加载的数据放入到高速的nosql集群缓存系统中。集群系统中第二服务器会首先从nosql集群缓存系统中进行读取数据,然后会进行缓存的加载,这样在高并发和多集群环境下系统对数据库的读写只会在单台机器(第一服务器)下进行,降低数据库的运行压力,对数据库具有很大的保护作用。在集群系统读取数据库数据进行集群缓存的过程中,主控机对服务器发送命令,单个服务器读取缓存的数据并进行缓存以达到缓存的加载和同步。
图3是根据本申请实施例的集群系统的工作时序图。如图3所示,首先,主控机向第一服务器发送缓存初始化命令,单台服务器(第一服务器)缓存初始化,第一服务器接收命令后,从数据库中读取数据,数据库返回数据给第一服务器。然后第一服务器保存数据到系统,即将读取的数据保存到缓存系统,缓存系统缓存数据,并返回信息给第一服务器,以告知第一服务器数据已经缓存。第一服务器在收到返回信息之后,也返回信息给主控机,以告知主控机数据已经缓存。最后,主控机向第二服务器发送缓存更新的指令,以进行集群缓存数据信息加载。第二服务器接收到命令后,从缓存系统中进行数据的加载缓存,缓存系统返回该数据。第二服务器缓存数据完成之后,返回信息给主控机,告知第二服务器中的数据缓存完成。
本申请实施例还提供了一种用于集群系统的数据加载方法。该方法可以运行在本申请实施例的集群系统上。本申请实施例的集群系统也可以用于执行本申请实施例的数据加载方法。
图4是根据本申请实施例的用于集群系统的数据加载方法的流程图。如图4所示,该用于集群系统的数据加载方法包括步骤如下:
步骤S402,集群系统中的第一服务器读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据。
集群系统可以是多个服务器组成的分布式集群服务器系统,第一服务器可以是集群系统中任一个服务器,该第一服务器可以有集群系统的主控机指示和确定。主控机可以根据其内部逻辑从多个服务器中选择一个服务器作为第一服务器,读取数据库中的数据。数据库为集群系统中用于存储数据的数据库,该数据库可以是集群系统中用于存储数据的服务器上的数据库。第一服务器从数据库中读取的数据可以是集群系统用于进行计算的数据。第一服务器可以先向数据库发起数据查询请求,用于从数据库中查询需要的数据,如果查询到相应的数据,则第一服务器读取数据库的数据,读取到数据之后,对读取的数据进行缓存,得到缓存数据。其中,对读取的数据进行缓存可以是将读取的数据缓存到第一服务器本地,也可以是将读取的数据缓存到缓存系统。相应的缓存数据可以是第一服务器中的缓存数据,也可以是缓存系统中的缓存数据。缓存系统可以是用于缓存数据的系统,将第一服务器本地缓存或者缓存系统作为数据缓存的中间件,以便于其他的服务器从该中间件中读取缓存数据。
本申请实施例中,当集群系统进行数据计算时,主控机发出控制指令,用于控制各服务器更新缓存,以将用于进行计算的数据缓存到各服务器本地。主控机从多个服务器中指示一个服务器即第一服务器从数据库中查询数据,如果查询到需要的数据,则从数据库中读取数据,并将读取的数据缓存到第一服务器本地,得到缓存数据,以便于其他服务器可以从第一服务器上读取该缓存数据。在将读取的数据缓存到第一服务器本地之后,第一服务器也可以将读取的数据缓存到缓存系统中,得到缓存数据,以便于其他服务器从缓存系统中读取缓存数据。
步骤S404,集群系统中的第二服务器读取缓存数据。
第二服务器可以是集群系统中第一服务器之外的其他任意服务器,在第一服务器对读取的数据进行缓存,得到缓存数据之后,第二服务器读取该缓存数据。第二服务器可以为多个服务器,第一服务器从数据库中读取到数据,并将读取的数据缓存到第一服务器本地时,第二服务器可以从第一服务器本地缓存中读取缓存数据;当第一服务器从数据库中读取到数据,将读取的数据缓存到缓存系统时,第二服务器可以从缓存系统中读取缓存数据。第二服务器无需从数据库中读取数据,当第二服务器为多个服务器时,该多个服务器均无需从数据库读取数据,以便于降低数据库的运行压力。
步骤S406,集群系统中的第二服务器加载读取到的缓存数据。
集群系统的第二服务器读取到缓存数据之后,加载读取到的缓存数据。具体地,当第二服务器从第一服务器读取缓存数据时,第二服务器从第一服务器中加载该缓存数据到第二服务器本地;当第二服务器从缓存系统读取缓存数据时,第二服务器从缓存系统中加载该缓存数据到第二服务器本地。本申请实施例中,可以通过集群系统的主控机输出控制命令,控制第二服务器从第一服务器或者缓存系统中读取缓存数据,再加载读取的缓存数据。
根据本申请实施例,第一服务器读取数据库的数据,并对读取的数据进行缓存,得到缓存数据,第二服务器读取该缓存数据,并加载该缓存数据,第二服务器无需从数据库中读取数据,从而减少集群系统中服务器向数据库发出的数据请求和读取,通过第一服务器来读取数据库的数据,并进行缓存,解决了数据库的运行压力大导致使用寿命短的问题,达到了减低数据库运行压力进而延长数据库使用寿命的效果。
本申请实施例中,由于集群系统中各服务器在运行过程中,需要随不同的数据业务进行计算处理,对于不同的数据业务的计算处理,其加载的数据也不相同。对于不同的数据业务,主控机可以选择不同的服务器作为第一服务器,从数据库读取数据,并进行缓存。例如,对于数据业务A,进行数据计算时,集群系统的主控机可以指示服务器A-1作为第一服务器,从数据库中读取数据业务A相关的数据,并对读取的数据进行缓存得到缓存数据,集群服务器中其他服务器可以读取并加载该缓存数据到本地。对于数据业务B,进行数据计算时,集群系统的主控机可以指示服务器B-1作为第一服务器,其他处理方式同上。
优选地,集群系统中的第一服务器对读取的数据进行缓存包括:集群系统中的第一服务器将读取的数据缓存到集群系统中的第一服务器本地;或者集群系统中的第一服务器将读取的数据缓存到缓存系统,缓存系统为用于缓存数据的系统。
第一服务器读取数据库中的数据之后,将读取的数据缓存到第一服务器本地,或者将读取的数据缓存到缓存系统,该缓存系统为用于缓存数据的系统。
当将读取的数据缓存到第一服务器本地时,可以将第一服务器作为数据中间件,其他服务器从第一服务器读取缓存数据并进行缓存的加载,将缓存数据缓存到各服务器本地。
当将读取的数据缓存到缓存系统时,其他服务器从缓存系统读取缓存数据并进行缓存的加载,将缓存数据缓存到各服务器本地。具体地,第一服务器在读取数据库中的数据之后,可以将读取的数据加载到第一服务器进行缓存,然后通过第一服务器将数据存入缓存系统,得到缓存数据,第二服务器从缓存系统中读取该缓存数据。
根据本申请实施例,第一服务器将读取的数据缓存到第一服务器本地或者缓存系统中,提高了数据缓存的灵活性。其中,如果缓存到缓存系统中,还能够提高服务器读取和加载数据的效率。
进一步优选地,本申请实施例中的缓存系统为nosql集群缓存系统,例如tair缓存系统等。集群系统中的第二服务器为多个服务器。集群系统中的第一服务器将读取的数据缓存到缓存系统包括:集群系统中的第一服务器将读取的数据保存到nosql集群缓存系统中,集群系统中的第二服务器读取缓存数据包括:多个服务器从nosql集群缓存系统读取缓存数据。nosql集群缓存系统具有高速缓存的能力,进一步提高服务器从缓存系统中读取和加载数据的效率。
本申请实施例中,集群系统中的第二服务器为多个服务器,其中,集群系统中的第二服务器读取缓存数据包括:多个服务器从集群系统中的第一服务器读取缓存数据;或者多个服务器从缓存系统读取缓存数据。
如果第一服务器将从数据库读取的数据缓存到第一服务器本地,多个服务器可以从第一服务器本地缓存中读取并加载数据;如果第一服务器将从数据库读取的数据缓存到缓存系统如nosql集群缓存系统,多个服务器可以从缓存系统中读取并加载数据。
如图2所示,在集群系统采用了一个nosql集群缓存系统作为缓存,降低对数据库大量读写的主要工具。在该集群系统中,当需要进行数据计算时,集群系统的主控机向服务器发送控制指令,用于控制各服务器更新缓存,以进行数据加载。集群系统会将原本从数据库(DB)中加载的数据改成主控机首先指示一台机器即第一服务器进行缓存加载,然后将加载的数据放入到高速的nosql集群缓存系统中。集群系统中第二服务器会首先从nosql集群缓存系统中进行读取数据,然后会进行缓存的加载,这样在高并发和多集群环境下系统对数据库的读写只会在单台机器(第一服务器)下进行,降低数据库的运行压力,对数据库具有很大的保护作用。在集群系统读取数据库数据进行集群缓存的过程中,主控机对服务器发送命令,单个服务器读取缓存的数据并进行缓存以达到缓存的加载和同步。
如图3所示,首先,主控机向第一服务器发送缓存初始化命令,单台服务器(第一服务器)缓存初始化,第一服务器接收命令后,从数据库中读取数据,数据库返回数据给第一服务器。然后第一服务器保存数据到系统,即将读取的数据保存到缓存系统,缓存系统缓存数据,并返回信息给第一服务器,以告知第一服务器数据已经缓存。第一服务器在收到返回信息之后,也返回信息给主控机,以告知主控机数据已经缓存。最后,主控机向第二服务器发送缓存更新的指令,以进行集群缓存数据信息加载。第二服务器接收到命令后,从缓存系统中进行数据的加载缓存,缓存系统返回该数据。第二服务器缓存数据完成之后,返回信息给主控机,告知第二服务器中的数据缓存完成。
本申请实施例还提供了一种用于集群系统的数据加载装置,该装置可以通过本申请实施例的集群系统的服务器实现其功能。需要说明的是,本申请实施例的用于集群系统的数据加载装置可以用于执行本申请实施例所提供的用于集群系统的数据加载方法,本申请实施例的用于集群系统的数据加载方法也可以通过本申请实施例所提供的用于集群系统的数据加载装置来实现。
图5是根据本申请实施例的用于集群系统的数据加载装置的示意图。如图5所示,该用于集群系统的数据加载装置包括缓存单元10、读取单元30和加载单元50。
缓存单元10用于使得集群系统中的第一服务器读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据。
集群系统可以是多个服务器组成的分布式集群服务器系统,第一服务器可以是集群系统中任一个服务器,该第一服务器可以有集群系统的主控机指示和确定。主控机可以根据其内部逻辑从多个服务器中选择一个服务器作为第一服务器,读取数据库中的数据。数据库为集群系统中用于存储数据的数据库,该数据库可以是集群系统中用于存储数据的服务器上的数据库。第一服务器从数据库中读取的数据可以是集群系统用于进行计算的数据。第一服务器可以先向数据库发起数据查询请求,用于从数据库中查询需要的数据,如果查询到相应的数据,则第一服务器读取数据库的数据,读取到数据之后,对读取的数据进行缓存,得到缓存数据。其中,对读取的数据进行缓存可以是将读取的数据缓存到第一服务器本地,也可以是将读取的数据缓存到缓存系统。相应的缓存数据可以是第一服务器中的缓存数据,也可以是缓存系统中的缓存数据。缓存系统可以是用于缓存数据的系统,将第一服务器本地缓存或者缓存系统作为数据缓存的中间件,以便于其他的服务器从该中间件中读取缓存数据。
本申请实施例中,当集群系统进行数据计算时,主控机发出控制指令,用于控制各服务器更新缓存,以将用于进行计算的数据缓存到各服务器本地。主控机从多个服务器中指示一个服务器即第一服务器从数据库中查询数据,如果查询到需要的数据,则从数据库中读取数据,并将读取的数据缓存到第一服务器本地,得到缓存数据,以便于其他服务器可以从第一服务器上读取该缓存数据。在将读取的数据缓存到第一服务器本地之后,第一服务器也可以将读取的数据缓存到缓存系统中,得到缓存数据,以便于其他服务器从缓存系统中读取缓存数据。
读取单元30用于使得集群系统中的第二服务器读取缓存数据。
第二服务器可以是集群系统中第一服务器之外的其他任意服务器,在第一服务器对读取的数据进行缓存,得到缓存数据之后,第二服务器读取该缓存数据。第二服务器可以为多个服务器,第一服务器从数据库中读取到数据,并将读取的数据缓存到第一服务器本地时,第二服务器可以从第一服务器本地缓存中读取缓存数据;当第一服务器从数据库中读取到数据,将读取的数据缓存到缓存系统时,第二服务器可以从缓存系统中读取缓存数据。第二服务器无需从数据库中读取数据,当第二服务器为多个服务器时,该多个服务器均无需从数据库读取数据,以便于降低数据库的运行压力。
加载单元50用于使得集群系统中的第二服务器加载读取到的缓存数据。
集群系统的第二服务器读取到缓存数据之后,加载读取到的缓存数据。具体地,当第二服务器从第一服务器读取缓存数据时,第二服务器从第一服务器中加载该缓存数据到第二服务器本地;当第二服务器从缓存系统读取缓存数据时,第二服务器从缓存系统中加载该缓存数据到第二服务器本地。本申请实施例中,可以通过集群系统的主控机输出控制命令,控制第二服务器从第一服务器或者缓存系统中读取缓存数据,再加载读取的缓存数据。
根据本申请实施例,第一服务器读取数据库的数据,并对读取的数据进行缓存,得到缓存数据,第二服务器读取该缓存数据,并加载该缓存数据,第二服务器无需从数据库中读取数据,从而减少集群系统中服务器向数据库发出的数据请求和读取,通过第一服务器来读取数据库的数据,并进行缓存,解决了数据库的运行压力大导致使用寿命短的问题,达到了减低数据库运行压力进而延长数据库使用寿命的效果。
本申请实施例中,由于集群系统中各服务器在运行过程中,需要随不同的数据业务进行计算处理,对于不同的数据业务的计算处理,其加载的数据也不相同。对于不同的数据业务,主控机可以选择不同的服务器作为第一服务器,从数据库读取数据,并进行缓存。例如,对于数据业务A,进行数据计算时,集群系统的主控机可以指示服务器A-1作为第一服务器,从数据库中读取数据业务A相关的数据,并对读取的数据进行缓存得到缓存数据,集群服务器中其他服务器可以读取并加载该缓存数据到本地。对于数据业务B,进行数据计算时,集群系统的主控机可以指示服务器B-1作为第一服务器,其他处理方式同上。
优选地,缓存单元10包括:第一缓存模块,用于使得集群系统中的第一服务器将读取的数据缓存到集群系统中的第一服务器本地;或者第二缓存模块,用于使得集群系统中的第一服务器将读取的数据缓存到缓存系统,缓存系统为用于缓存数据的系统。
第一服务器读取数据库中的数据之后,将读取的数据缓存到第一服务器本地,或者将读取的数据缓存到缓存系统,该缓存系统为用于缓存数据的系统。
当将读取的数据缓存到第一服务器本地时,可以将第一服务器作为数据中间件,其他服务器从第一服务器读取缓存数据并进行缓存的加载,将缓存数据缓存到各服务器本地。
当将读取的数据缓存到缓存系统时,其他服务器从缓存系统读取缓存数据并进行缓存的加载,将缓存数据缓存到各服务器本地。具体地,第一服务器在读取数据库中的数据之后,可以将读取的数据加载到第一服务器进行缓存,然后通过第一服务器将数据存入缓存系统,得到缓存数据,第二服务器从缓存系统中读取该缓存数据。
根据本申请实施例,第一服务器将读取的数据缓存到第一服务器本地或者缓存系统中,提高了数据缓存的灵活性。其中,如果缓存到缓存系统中,还能够提高服务器读取和加载数据的效率。
进一步优选地,本申请实施例中的缓存系统为nosql集群缓存系统,例如tair缓存系统等。集群系统中的第二服务器为多个服务器。第二缓存模块还用于使得集群系统中的第一服务器将读取的数据保存到nosql集群缓存系统中,读取单元还用于使得多个服务器从nosql集群缓存系统读取缓存数据。nosql集群缓存系统具有高速缓存的能力,进一步提高服务器从缓存系统中读取和加载数据的效率。
优选地,集群系统中的第二服务器为多个服务器,其中,读取单元30包括:第一读取模块,用于使得多个服务器从集群系统中的第一服务器读取缓存数据;或者第二读取模块,用于使得多个服务器从缓存系统读取缓存数据。
如果第一服务器将从数据库读取的数据缓存到第一服务器本地,多个服务器可以从第一服务器本地缓存中读取并加载数据;如果第一服务器将从数据库读取的数据缓存到缓存系统如nosql集群缓存系统,多个服务器可以从缓存系统中读取并加载数据。
如图2所示,在集群系统采用了一个nosql集群缓存系统作为缓存,降低对数据库大量读写的主要工具。在该集群系统中,当需要进行数据计算时,集群系统的主控机向服务器发送控制指令,用于控制各服务器更新缓存,以进行数据加载。集群系统会将原本从数据库(DB)中加载的数据改成主控机首先指示一台机器即第一服务器进行缓存加载,然后将加载的数据放入到高速的nosql集群缓存系统中。集群系统中第二服务器会首先从nosql集群缓存系统中进行读取数据,然后会进行缓存的加载,这样在高并发和多集群环境下系统对数据库的读写只会在单台机器(第一服务器)下进行,降低数据库的运行压力,对数据库具有很大的保护作用。在集群系统读取数据库数据进行集群缓存的过程中,主控机对服务器发送命令,单个服务器读取缓存的数据并进行缓存以达到缓存的加载和同步。
如图3所示,首先,主控机向第一服务器发送缓存初始化命令,单台服务器(第一服务器)缓存初始化,第一服务器接收命令后,从数据库中读取数据,数据库返回数据给第一服务器。然后第一服务器保存数据到系统,即将读取的数据保存到缓存系统,缓存系统缓存数据,并返回信息给第一服务器,以告知第一服务器数据已经缓存。第一服务器在收到返回信息之后,也返回信息给主控机,以告知主控机数据已经缓存。最后,主控机向第二服务器发送缓存更新的指令,以进行集群缓存数据信息加载。第二服务器接收到命令后,从缓存系统中进行数据的加载缓存,缓存系统返回该数据。第二服务器缓存数据完成之后,返回信息给主控机,告知第二服务器中的数据缓存完成。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的儿个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种用于集群系统的数据加载方法,其特征在于,包括:
集群系统中的第一服务器读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据;
所述集群系统中的第二服务器读取所述缓存数据;以及
所述集群系统中的第二服务器加载读取到的缓存数据。
2.根据权利要求1所述的数据加载方法,其特征在于,所述集群系统中的第一服务器对读取的数据进行缓存包括:
所述集群系统中的第一服务器将所述读取的数据缓存到所述集群系统中的第一服务器本地;或者
所述集群系统中的第一服务器将所述读取的数据缓存到缓存系统,所述缓存系统为用于缓存数据的系统。
3.根据权利要求2所述的数据加载方法,其特征在于,所述集群系统中的第二服务器为多个服务器,其中,所述集群系统中的第二服务器读取所述缓存数据包括:
所述多个服务器从所述集群系统中的第一服务器读取所述缓存数据;或者
所述多个服务器从所述缓存系统读取所述缓存数据。
4.根据权利要求3所述的数据加载方法,其特征在于,所述缓存系统为nosql集群缓存系统,其中,
所述集群系统中的第一服务器将所述读取的数据缓存到缓存系统包括:所述集群系统中的第一服务器将所述读取的数据保存到所述nosql集群缓存系统中,
所述集群系统中的第二服务器读取所述缓存数据包括:所述多个服务器从所述nosql集群缓存系统读取所述缓存数据。
5.一种用于集群系统的数据加载装置,其特征在于,包括:
缓存单元,用于使得集群系统中的第一服务器读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据;
读取单元,用于使得所述集群系统中的第二服务器读取所述缓存数据;以及
加载单元,用于使得所述集群系统中的第二服务器加载读取到的缓存数据。
6.根据权利要求5所述的数据加载装置,其特征在于,所述缓存单元包括:
第一缓存模块,用于使得所述集群系统中的第一服务器将所述读取的数据缓存到所述集群系统中的第一服务器本地;或者
第二缓存模块,用于使得所述集群系统中的第一服务器将所述读取的数据缓存到缓存系统,所述缓存系统为用于缓存数据的系统。
7.根据权利要求6所述的数据加载装置,其特征在于,所述集群系统中的第二服务器为多个服务器,其中,所述读取单元包括:
第一读取模块,用于使得所述多个服务器从所述集群系统中的第一服务器读取所述缓存数据;或者
第二读取模块,用于使得所述多个服务器从所述缓存系统读取所述缓存数据。
8.根据权利要求7所述的数据加载装置,其特征在于,所述缓存系统为nosql集群缓存系统,其中,
所述第二缓存模块还用于使得所述集群系统中的第一服务器将所述读取的数据保存到所述nosql集群缓存系统中,
所述读取单元还用于使得所述多个服务器从所述nosql集群缓存系统读取所述缓存数据。
9.一种集群系统,其特征在于,包括:
第一服务器,用于读取数据库中的数据,并对读取的数据进行缓存,得到缓存数据;以及
第二服务器,用于读取所述缓存数据,并加载读取到的缓存数据。
10.根据权利要求9所述的集群系统,其特征在于,所述集群系统还包括缓存系统,所述第一服务器海用于将从所述数据库中读取的数据缓存到所述缓存系统中,其中,所述第二服务器还用于从所述缓存系统中读取所述缓存数据,并将读取的缓存数据加载到所述第二服务器本地。
11.根据权利要求10所述的集群系统,其特征在于,所述缓存系统为nosql集群缓存系统,所述第二服务器为多个服务器,其中,
所述第一服务器还用于将所述读取的数据保存到所述nosql集群缓存系统中,所述多个服务器从所述nosql集群缓存系统读取所述缓存数据,并将读取的缓存数据加载到所述多个服务器本地。
CN201410149156.6A 2014-04-14 2014-04-14 用于集群系统的数据加载方法、装置和集群系统 Pending CN104978371A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410149156.6A CN104978371A (zh) 2014-04-14 2014-04-14 用于集群系统的数据加载方法、装置和集群系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410149156.6A CN104978371A (zh) 2014-04-14 2014-04-14 用于集群系统的数据加载方法、装置和集群系统

Publications (1)

Publication Number Publication Date
CN104978371A true CN104978371A (zh) 2015-10-14

Family

ID=54274884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410149156.6A Pending CN104978371A (zh) 2014-04-14 2014-04-14 用于集群系统的数据加载方法、装置和集群系统

Country Status (1)

Country Link
CN (1) CN104978371A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808670A (zh) * 2016-02-29 2016-07-27 武汉颂大教育科技股份有限公司 一种基于NoSQL实现电子阅卷的任务分配方法
CN107124469A (zh) * 2017-06-07 2017-09-01 郑州云海信息技术有限公司 一种集群节点通信方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7107409B2 (en) * 2002-03-22 2006-09-12 Newisys, Inc. Methods and apparatus for speculative probing at a request cluster
CN101969468A (zh) * 2010-10-14 2011-02-09 广州从兴电子开发有限公司 查询服务器集群系统及查询方法
CN102523234A (zh) * 2011-12-29 2012-06-27 山东中创软件工程股份有限公司 一种应用服务器集群实现方法及系统
CN102662993A (zh) * 2012-03-14 2012-09-12 北京神州数码思特奇信息技术股份有限公司 一种页面数据提供方法
CN102779308A (zh) * 2012-01-09 2012-11-14 合一网络技术(北京)有限公司 一种广告投放方法及系统
CN103023863A (zh) * 2011-09-27 2013-04-03 广州明朝网络科技有限公司 服务器集群、服务器系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7107409B2 (en) * 2002-03-22 2006-09-12 Newisys, Inc. Methods and apparatus for speculative probing at a request cluster
CN101969468A (zh) * 2010-10-14 2011-02-09 广州从兴电子开发有限公司 查询服务器集群系统及查询方法
CN103023863A (zh) * 2011-09-27 2013-04-03 广州明朝网络科技有限公司 服务器集群、服务器系统
CN102523234A (zh) * 2011-12-29 2012-06-27 山东中创软件工程股份有限公司 一种应用服务器集群实现方法及系统
CN102779308A (zh) * 2012-01-09 2012-11-14 合一网络技术(北京)有限公司 一种广告投放方法及系统
CN102662993A (zh) * 2012-03-14 2012-09-12 北京神州数码思特奇信息技术股份有限公司 一种页面数据提供方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
聂良刚 等: "《商务网站设计实用教程》", 30 September 2005 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808670A (zh) * 2016-02-29 2016-07-27 武汉颂大教育科技股份有限公司 一种基于NoSQL实现电子阅卷的任务分配方法
CN107124469A (zh) * 2017-06-07 2017-09-01 郑州云海信息技术有限公司 一种集群节点通信方法及系统
CN107124469B (zh) * 2017-06-07 2020-07-24 苏州浪潮智能科技有限公司 一种集群节点通信方法及系统

Similar Documents

Publication Publication Date Title
CA2843922C (en) Data processing method and apparatus in cluster system
CN103019960B (zh) 分布式缓存方法及系统
CN103106249B (zh) 一种基于Cassandra的数据并行处理系统
CN101604337B (zh) 一种哈希表项存储、查找装置及方法
CN103020255B (zh) 分级存储方法和装置
CN102542054B (zh) 一种利用缓存表来提高数据库数据插入性能的方法
CN103019884B (zh) 基于虚拟机快照的内存页去重方法及装置
CN102968498A (zh) 数据处理方法及装置
KR102646619B1 (ko) 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법
CN107450855B (zh) 一种用于分布式存储的模型可变的数据分布方法及系统
CN104809179A (zh) 访问哈希表的装置和方法
CN105224444A (zh) 日志生成方法及装置
CN103329105A (zh) 文件系统中的应用恢复
CN104461777A (zh) 一种存储阵列中数据镜像方法及存储阵列
CN104346458A (zh) 数据存储方法和存储设备
CN105447151A (zh) 访问分布式数据库的方法、数据源代理装置及应用服务器
CN103069396A (zh) 对象布置设备及其方法,计算机程序
CN104205780A (zh) 一种存储数据的方法和装置
JP2012008854A (ja) ストレージ仮想化装置
CN104978371A (zh) 用于集群系统的数据加载方法、装置和集群系统
CN105487928A (zh) 一种控制方法、装置及Hadoop系统
CN106156049A (zh) 一种数据读取的方法和系统
CN104077241A (zh) 缓存淘汰算法切换处理方法及装置
CN107145306B (zh) 分布式数据存储方法及系统
CN110297836B (zh) 基于压缩位图方式的用户标签存储方法和检索方法

Legal Events

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

Application publication date: 20151014

RJ01 Rejection of invention patent application after publication