CN104408086A - 数据全局处理系统和方法 - Google Patents
数据全局处理系统和方法 Download PDFInfo
- Publication number
- CN104408086A CN104408086A CN201410638336.0A CN201410638336A CN104408086A CN 104408086 A CN104408086 A CN 104408086A CN 201410638336 A CN201410638336 A CN 201410638336A CN 104408086 A CN104408086 A CN 104408086A
- Authority
- CN
- China
- Prior art keywords
- data
- cassandra
- cluster
- mapping relations
- center locator
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据全局处理系统和方法,该系统包括全局数据定位中心Center Locator,所述Center Locator耦接至多个分布式存储系统Cassandra集群,其中,每个Cassandra集群,适于将自身存储的数据与具体存储位置间的映射关系上传至所述Center Locator;所述Center Locator,适于接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信。本发明解决了相关技术中采用hash算法进行全局数据存储和定位而存在的扩展性差的问题。
Description
技术领域
本发明涉及计算机技术领域,特别是一种数据全局处理系统和方法。
背景技术
Cassandra是依赖DHT(Distributed Hash Table,分布式哈希表)技术实现的一种典型的无中心节点的环形结构的分布式存储系统。Cassandra数据存储空间可以抽象为一个环形结构,数据就是通过hash(哈希)分散在这个环形存储空间上。每个节点负责管理这个环形存储空间上的某一块连续的Range(范围),落在此Range空间上的数据就存储在这个节点上。
首先,由于Cassandra是一个无中心节点的分布式存储系统,因此没有任何一个中心节点集中管理集群的分布式信息。整个存储系统的分布式管理信息是由集群中的所有节点之间相互通过Gossip协议进行协商同步,即各节点最终均会保存一份完整的分布式管理信息以及节点的存活状态。正是由于这种节点之间的相互间的分布式信息同步,集群中所有节点间都是保持全相连的网络关系,这种网络连接结构决定了单个Cassandra集群无法扩展的很大(例如,上万台机器的集群规模,单个节点上的网络连接数就达到数万条,对系统资源的开销很大)。而为满足海量数据存储的需求,则需要搭建若干个一定节点规模的Cassandra存储集群,并在适当的时候新建新的Cassandra集群。
其次,由于考虑到数据存储效率的原因,存储服务也往往分布于全国各地,来实现用户数据的就近存储。同样作为存储系统,Cassandra集群也会分布在全国各地的数据中心之中。而如何将这些分散在各地的存储系统整合在一起,对外提供统一透明的存储服务是一项十分重要的工作。存储服务的接口无外乎是对数据的增、删、改、查操作,而所有这些操作都基于对数据的全局定位,即定位该数据存储在哪个数据集群中的哪个数据节点上。
目前,数据的全局存储与定位常用的技术方案是基于规则的定位,即通过简单的hash函数将数据直接分散到各Cassandra存储集群中,而具体存储在哪个数据节点上,则由该Cassandra集群内部存储机制实现。如图1所示,根据数据(data)的某一特征计算得到该data的hash值,进而根据hash值与集群的映射关系,将其定位到A、B、C、D中的某个集群中,然后再通过Cassandra存储集群的存储定位策略,确定其存储在该集群中的某个数据节点之上。然而,由于hash算法本身扩展性较差,当全局存储需要扩展新集群时,必然涉及各集群间数据的迁移,这个代价十分巨大的。其次,由于数据是通过hash算法进行存储,数据在上传或写入时该数据所在的目标集群已经由hash规则确定,因此无法保证实现数据的就近上传或写入,存在电信接入的数据有可能被存储到网通集群中去的情况,从而无法保证数据存储的效率。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据全局处理系统和方法。
依据本发明的一个方面,提供了一种数据全局处理系统,包括全局数据定位中心(Center Locator),所述Center Locator耦接至多个分布式存储系统(Cassandra)集群,其中,
每个Cassandra集群,适于将自身存储的数据与具体存储位置间的映射关系上传至所述Center Locator;
所述Center Locator,适于接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信。
可选地,每个Cassandra集群,还适于当自身存储的数据发生更新时,将更新部分的数据与具体存储位置间的映射关系上传至所述Center Locator。
可选地,所述更新部分的数据包括下列至少之一:
写入的数据;
删除的数据;
更改的数据。
可选地,所述Center Locator,还适于接收数据写入请求时,在其耦接的多个Cassandra集群中,查找与待写入数据的源地址距离最近的Cassandra集群地址作为目标地址,将所述待写入数据写入所述目标地址对应的Cassandra集群。
可选地,任意一个Cassandra集群,还适于接收读取指定数据的请求时,向所述Center Locator发起映射关系的查找请求;根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
可选地,所述Center Locator,还适于将更新部分的数据与具体存储位置间的映射关系同步至其耦接的所有Cassandra集群中;
任意一个Cassandra集群,还适于接收读取指定数据的请求时,根据自身存储的映射关系查找所述指定数据的具体存储位置,若查找到,则根据查找到所述指定数据的具体存储位置进行数据读取;若未查找到,则向所述CenterLocator发起映射关系的查找请求,并根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
可选地,所述Center Locator部署在一个双线互联网数据中心IDC中。
依据本发明的另一个方面,还提供了一种数据全局处理方法,应用于设置全局数据定位中心Center Locator耦接至多个分布式存储系统Cassandra集群情况,包括:接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系;存储所述上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信。
可选地,接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系,包括:接收每个Cassandra集群上传的、更新部分的数据与具体存储位置间的映射关系。
可选地,所述更新部分的数据包括下列至少之一:
写入的数据;
删除的数据;
更改的数据。
可选地,所述方法还包括:接收数据写入请求,在其耦接的多个Cassandra集群中,查找与待写入数据的源地址距离最近的Cassandra集群地址作为目标地址;将所述待写入数据写入所述目标地址对应的Cassandra集群。
可选地,根据存储的映射关系为各Cassandra集群提供全局数据定位服务,包括:接收来自任意一个Cassandra集群的查找指定数据的具体存储位置的查找请求;根据存储的映射关系,查找到所述指定数据的具体存储位置,并返回,以实现任意一个Cassandra集群根据查找到所述指定数据的具体存储位置进行数据读取。
可选地,接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系之后,还包括:将所述上传的映射关系同步至其耦接的所有Cassandra集群中。
依据本发明的又一个方面,还提供了一种数据全局处理方法,应用于设置全局数据定位中心Center Locator耦接至多个分布式存储系统Cassandra集群情况,包括:将自身存储的数据与具体存储位置间的映射关系上传至所述Center Locator;接收所述Center Locator下发的处理指令,进行相应处理。
可选地,将自身存储的数据与具体存储位置间的映射关系上传至所述Center Locator,包括:当自身存储的数据发生更新时,将更新部分的数据与具体存储位置间的映射关系上传至所述Center Locator。
可选地,所述更新部分的数据包括下列至少之一:
写入的数据;
删除的数据;
更改的数据。
可选地,所述方法还包括:接收读取指定数据的请求时,向所述CenterLocator发起映射关系的查找请求;根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
可选地,所述方法还包括:接收读取指定数据的请求时,根据自身存储的映射关系查找所述指定数据的具体存储位置,若查找到,则根据查找到所述指定数据的具体存储位置进行数据读取;若未查找到,则向所述Center Locator发起映射关系的查找请求,并根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
可选地,所述处理指令包括数据写入指令,接收所述Center Locator下发的处理指令,进行相应处理,包括:接收所述Center Locator下发的数据写入指令,进行数据的写入操作。
本发明提供了一种数据全局处理系统,包括Center Locator,该CenterLocator耦接至多个Cassandra集群,每个Cassandra集群将自身存储的数据与具体存储位置间的映射关系上传至Center Locator,Center Locator接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信,进而为各Cassandra集群提供全局数据定位服务。由此可见,本发明提供的技术方案由于Center Locator存储了每个Cassandra集群上存储的数据与具体存储位置间的映射关系,因而Center Locator可以根据该映射关系为各Cassandra集群提供全局数据定位服务,从而解决了相关技术中采用hash算法进行全局数据存储和定位而存在的扩展性差的问题。本发明在全局存储空间不足的时候,可以随时任意扩展一个或多个新集群补充到全局存储空间中,继续提供存储服务。
进一步地,在进行数据写入时,Center Locator可以在其耦接的多个Cassandra集群中,灵活地选择即将写入该数据的集群,例如可以实现该数据就近上传写入,还可以根据各Cassandra集群的负载情况选择写入该数据的集群等等。另外,在读取指定数据时,可以从Center Locator查找到该指定数据的具体存储位置,进而读取指定数据。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了相关技术中数据的全局存储与定位的示意图;
图2示出了根据本发明一个实施例的数据全局处理系统的结构示意图;
图3示出了根据本发明一个实施例的数据全局处理方法的第一种流程图;以及
图4示出了根据本发明一个实施例的数据全局处理方法的第二种流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种数据全局处理系统,图2示出了根据本发明一个实施例的数据全局处理系统的结构示意图。如图2所示,该系统包括全局数据定位中心(Center Locator),Center Locator耦接至多个分布式存储系统(Cassandra)集群,其中,
每个Cassandra集群,适于将自身存储的数据与具体存储位置间的映射关系上传至Center Locator;
Center Locator,适于接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信。
本发明提供了一种数据全局处理系统,包括Center Locator,该CenterLocator耦接至多个Cassandra集群,每个Cassandra集群将自身存储的数据与具体存储位置间的映射关系上传至Center Locator,Center Locator接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信,进而为各Cassandra集群提供全局数据定位服务。由此可见,本发明提供的技术方案由于Center Locator存储了每个Cassandra集群上存储的数据与具体存储位置间的映射关系,因而Center Locator可以根据该映射关系为各Cassandra集群提供全局数据定位服务,从而解决了相关技术中采用hash算法进行全局数据存储和定位而存在的扩展性差的问题。本发明在全局存储空间不足的时候,可以随时任意扩展一个或多个新集群补充到全局存储空间中,继续提供存储服务。
上文提及的Center Locator,可以部署在一个数据中心对外提供全局数据定位服务,例如可以部署在一个双线互联网数据中心IDC中。IDC双线路技术就是在互联网数据中心通过特殊的技术手段把不同的ISP(Internet ServiceProvider,互联网服务提供商)服务接入到一台服务器上或服务器集群,使服务器所提供的网络服务访问用户能够尽可能以同一个ISP或互访速度较快的ISP连接来进行访问,从而解决或者减轻跨ISP用户访问网站的缓慢延迟问题。进一步地,为了实现Center Locator对多个Cassandra集群的耦接以及与各Cassandra集群之间通信,进而为各Cassandra集群提供全局数据定位服务,在Center Locator上存储各Cassandra集群的相关信息。例如,在CenterLocator上存储了各Cassandra集群地址信息、各Cassandra集群自身存储的数据与具体存储位置间的映射关系、以及各Cassandra集群的负载信息等等,本发明不限于此。
如上文提及,每个Cassandra集群可以将自身存储的数据与具体存储位置间的映射关系上传至Center Locator。例如每个Cassandra集群在自身存储的数据发生更新时,将更新部分的数据与具体存储位置间的映射关系上传至Center Locator。这里的更新可以包括数据自身的更新或者引起数据的具体存储位置发生变化的更新,更新部分的数据例如写入的数据(即增加的数据)、删除的数据、以及更改的数据等等。举例来说,Center Locator耦接的Cassandra集群A中新写入了数据a,该数据a的具体存储位置为位置a,此时可以将数据a与其具体存储位置a之间的映射关系上传至Center Locator,以使得CenterLocator存储该映射关系提供数据全局定位服务。又例如,Cassandra集群A中删除了数据b,该数据b的具体存储位置为位置b,此时可以将数据b与其具体存储位置b之间的映射关系上传至Center Locator,以使得Center Locator删除该映射关系,实现映射关系的及时更新。进一步地,每个Cassandra集群可以通过消息队列(Message queue)将自身存储的数据与具体存储位置间的映射关系上传至Center Locator。消息队列是一种进程间通信或同一进程的不同线程间的通信方式。消息会保存在队列中,直到接收者取回它。消息队列本身是异步,和信号相比,消息队列能够传递更多的信息。目前,消息队列有很多开源的实现,例如分布式消息队列Kafka、Apache ActiveMQ、HTTPSQS(Hypertext transfer protocol Simple Queue Service,超文本传输协议简单消息队列服务)等等。当然,本发明并不限于通过消息队列实现映射关系的上传,还可以通过其他方式实现。
如上文提及,Center Locator接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信,进而为各Cassandra集群提供全局数据定位服务。这里,Center Locator提供全局数据定位服务,可以是在数据写入时为数据选择写入的Cassandra集群,也可以是在读取指定数据时从Center Locator查找该指定数据的在Cassandra集群中的具体存储位置,进而从查找到的具体存储位置处读取指定数据。下面详细介绍写入数据和读取数据时,Center Locator提供的全局数据定位服务。
首先介绍写入数据,即将数据写入某个Cassandra集群中。Center Locator可以在其耦接的多个Cassandra集群中,灵活地选择即将写入该数据的集群。例如将该数据就近写入集群中,本发明提供了一种优选的方案,在该方案中,Center Locator接收数据写入请求时,在其耦接的多个Cassandra集群中,查找与待写入数据的源地址距离最近的Cassandra集群地址作为目标地址,将待写入数据写入目标地址对应的Cassandra集群,该方案实现了数据的就近上传及存储,提高数据的存储效率。又例如,根据各Cassandra集群的负载情况选择写入该数据的集群,从而保证集群间的负载均衡。进一步地,当确定了即将写入数据的Cassandra集群后,可以根据Cassandra集群内部存储机制,将待写入数据写入到Cassandra集群的数据节点上。
其次介绍读取数据,即从某个Cassandra集群中读取指定数据。任意一个Cassandra集群接收读取指定数据的请求时,从Center Locator查找该指定数据的在Cassandra集群中的具体存储位置,进而从查找到的具体存储位置处读取指定数据。本发明提供了两种优选的查找方式,在方式一中,接收到读取指定数据请求的Cassandra集群,向Center Locator发起映射关系的查找请求,进而根据Center Locator返回的结果查找到指定数据的具体存储位置进行数据读取。在方式二中,由于Center Locator将更新部分的数据与具体存储位置间的映射关系同步至其耦接的所有Cassandra集群中,因而接收到读取指定数据请求的Cassandra集群,先根据自身存储的映射关系查找指定数据的具体存储位置,若查找到,则根据查找到指定数据的具体存储位置进行数据读取,若未查找到,则向Center Locator发起映射关系的查找请求,并根据Center Locator返回的结果查找到指定数据的具体存储位置进行数据读取。若Center Locator返回的结果为未查找到指定数据的具体存储位置,则说明该指定数据未存在于Center Locator耦接的多个Cassandra集群,则读取数据失败。
以上介绍了图2所示的实施例中各环节的多种实现方式,下面通过具体的优选实施例对本发明实施例提供的数据全局处理系统做进一步说明。
以Center Locator部署在一个双线IDC中,其耦接了A、B、C、D等多个Cassandra集群为例。每个Cassandra集群将自身存储的数据与具体存储位置间的映射关系上传至Center Locator,Center Locator接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系为各Cassandra集群提供全局数据定位服务。进一步地,为了实现对多个Cassandra集群的耦接以及与多个Cassandra集群之间通信,进而为多个Cassandra集群提供全局数据定位服务,Center Locator上还存储了各Cassandra集群地址信息以及各Cassandra集群的负载信息等等。此外,当某个集群的存储空间存满时,可以随时创建新的集群来补充到全局存储空间中。比如集群A、B、C、D存储空间写满后,可以随时部署新的集群E、F等,此时由Center Locator对新部署的集群E、F进行耦接。
当Center Locator接收到数据写入请求时,在其耦接的A、B、C、D等多个Cassandra集群中,查找与待写入数据P的源地址距离最近的Cassandra集群为集群A,将集群A的地址作为目标地址,将待写入数据P写入集群A,该方案实现了数据的就近上传及存储,提高数据的存储效率。进一步地,当确定将待写入数据P写入集群A后,可以根据集群A内部存储机制,将待写入数据P写入到集群A的数据节点上。
在待写入数据P写入集群A的数据节点后,集群A将待写入数据P与待写入数据P的具体存储位置间的映射关系记录在消息队列中,进而上传至Center Locator。由于其他集群(如B、C、D等集群)向Center Locator进行了存储位置信息的订阅,即是向Center Locator索取所有数据的具体存储位置,因而待写入数据P与待写入数据P的具体存储位置间的映射关系会同步到B、C、D等集群中。
当任意一个Cassandra集群接收读取指定数据的请求时,首先需要获取该指定数据所在集群位置,然后再跳转到该集群去读取真实数据,这就是一个全局数据定位和路由的过程。本发明实施例中Center Locator为各Cassandra集群提供全局数据定位服务,因而任意一个Cassandra集群可以从CenterLocator查找该指定数据的在Cassandra集群中的具体存储位置,进而从查找到的具体存储位置处读取指定数据。进一步地,本发明提供了两种优选的查找方式,在方式一中,接收到读取指定数据请求的Cassandra集群,向CenterLocator发起映射关系的查找请求,进而根据Center Locator返回的结果查找到指定数据的具体存储位置进行数据读取。在方式二中,由于Center Locator将更新部分的数据与具体存储位置间的映射关系同步至其耦接的所有Cassandra集群中,因而接收到读取指定数据请求的Cassandra集群,先根据自身存储的映射关系查找指定数据的具体存储位置,若查找到,则根据查找到指定数据的具体存储位置进行数据读取,若未查找到,则向Center Locator发起映射关系的查找请求,并根据Center Locator返回的结果查找到指定数据的具体存储位置进行数据读取。若Center Locator返回的结果为未查找到指定数据的具体存储位置,则说明该指定数据未存在于Center Locator耦接的多个Cassandra集群,则读取数据失败。
基于同一发明构思,本发明实施例提供了一种数据全局处理方法,应用于设置Center Locator耦接至多个Cassandra集群情况,图3示出了根据本发明一个实施例的数据全局处理方法的第一种流程图。如图3所示,该方法至少包括以下步骤S302至步骤S304。
步骤S302、接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系。
步骤S304、存储上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信。
本发明实施例中,Center Locator接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系,进而根据其存储的映射关系为各Cassandra集群提供全局数据定位服务,解决了相关技术中采用hash算法进行全局数据存储和定位而存在的扩展性差的问题。本发明在全局存储空间不足的时候,可以随时任意扩展一个或多个新集群补充到全局存储空间中,继续提供存储服务。
上文步骤S302还可以采用一种优选的方案来实现,在该方案中可以接收每个Cassandra集群上传的、更新部分的数据与具体存储位置间的映射关系。这里的更新可以包括数据自身的更新或者引起数据的具体存储位置发生变化的更新,更新部分的数据例如写入的数据(即增加的数据)、删除的数据、以及更改的数据等等。可以参见前文部分关于数据更新的介绍,此处不再赘述。
进一步地,在步骤S302之后,即Center Locator接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系之后,还可以将上传的映射关系同步至其耦接的所有Cassandra集群中。另外,各Cassandra集群还可以根据自身的需求向Center Locator进行存储位置信息的订阅,当其他Cassandra集群向Center Locator上传映射关系之后,Center Locator会将上传的映射关系同步至订阅了存储位置信息的Cassandra集群。
上文步骤S304中Center Locator根据存储的映射关系为各Cassandra集群提供全局数据定位服务,可以是在数据写入时为数据选择写入的Cassandra集群,也可以是在读取指定数据时从Center Locator查找该指定数据的在Cassandra集群中的具体存储位置,进而从查找到的具体存储位置处读取指定数据。关于写入数据和读取数据时,Center Locator提供的全局数据定位服务可以参见前文部分的说明,此处不再赘述。
相应的,本发明实施例还提供了一种数据全局处理方法,应用于设置Center Locator耦接至多个Cassandra集群情况,图4示出了根据本发明一个实施例的数据全局处理方法的第二种流程图。如图4所示,该方法至少包括以下步骤S402至步骤S404。
步骤S402、将自身存储的数据与具体存储位置间的映射关系上传至CenterLocator。
步骤S404、接收Center Locator下发的处理指令,进行相应处理。
本发明实施例中,各Cassandra集群将自身存储的数据与具体存储位置间的映射关系上传至Center Locator,Center Locator接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系,进而根据其存储的映射关系为各Cassandra集群提供全局数据定位服务。
上文步骤S402还可以采用一种优选的方案来实现,在该方案中各Cassandra集群当自身存储的数据发生更新时,将更新部分的数据与具体存储位置间的映射关系上传至Center Locator。这里的更新可以包括数据自身的更新或者引起数据的具体存储位置发生变化的更新,更新部分的数据例如写入的数据(即增加的数据)、删除的数据、以及更改的数据等等。可以参见前文部分关于数据更新的介绍,此处不再赘述。
上文步骤S404中处理指令可以为数据写入指令,此时各Cassandra集群接收Center Locator下发的数据写入指令,进行数据的写入操作。
进一步地,当任意一个Cassandra集群接收读取指定数据的请求时,可以从Center Locator查找该指定数据的在Cassandra集群中的具体存储位置,进而从查找到的具体存储位置处读取指定数据。本发明提供了两种优选的查找方式,在方式一中,接收到读取指定数据请求的Cassandra集群,向CenterLocator发起映射关系的查找请求,进而根据Center Locator返回的结果查找到指定数据的具体存储位置进行数据读取。在方式二中,由于Center Locator将更新部分的数据与具体存储位置间的映射关系同步至其耦接的所有Cassandra集群中,因而接收到读取指定数据请求的Cassandra集群,先根据自身存储的映射关系查找指定数据的具体存储位置,若查找到,则根据查找到指定数据的具体存储位置进行数据读取,若未查找到,则向Center Locator发起映射关系的查找请求,并根据Center Locator返回的结果查找到指定数据的具体存储位置进行数据读取。若Center Locator返回的结果为未查找到指定数据的具体存储位置,则说明该指定数据未存在于Center Locator耦接的多个Cassandra集群,则读取数据失败。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
本发明提供了一种数据全局处理系统,包括Center Locator,该CenterLocator耦接至多个Cassandra集群,每个Cassandra集群将自身存储的数据与具体存储位置间的映射关系上传至Center Locator,Center Locator接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信,进而为各Cassandra集群提供全局数据定位服务。由此可见,本发明提供的技术方案由于Center Locator存储了每个Cassandra集群上存储的数据与具体存储位置间的映射关系,因而Center Locator可以根据该映射关系为各Cassandra集群提供全局数据定位服务,从而解决了相关技术中采用hash算法进行全局数据存储和定位而存在的扩展性差的问题。本发明在全局存储空间不足的时候,可以随时任意扩展一个或多个新集群补充到全局存储空间中,继续提供存储服务。
进一步地,在进行数据写入时,Center Locator可以在其耦接的多个Cassandra集群中,灵活地选择即将写入该数据的集群,例如可以实现该数据就近上传写入,还可以根据各Cassandra集群的负载情况选择写入该数据的集群等等。另外,在读取指定数据时,可以从Center Locator查找到该指定数据的具体存储位置,进而读取指定数据。
本发明还公开了:
A1、一种数据全局处理系统,包括全局数据定位中心Center Locator,所述Center Locator耦接至多个分布式存储系统Cassandra集群,其中,
每个Cassandra集群,适于将自身存储的数据与具体存储位置间的映射关系上传至所述Center Locator;
所述Center Locator,适于接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信。
A2、根据A1所述的系统,其中,每个Cassandra集群,还适于当自身存储的数据发生更新时,将更新部分的数据与具体存储位置间的映射关系上传至所述Center Locator。
A3、根据A2所述的系统,其中,所述更新部分的数据包括下列至少之一:
写入的数据;
删除的数据;
更改的数据。
A4、根据A1所述的系统,其中,所述Center Locator,还适于接收数据写入请求时,在其耦接的多个Cassandra集群中,查找与待写入数据的源地址距离最近的Cassandra集群地址作为目标地址,将所述待写入数据写入所述目标地址对应的Cassandra集群。
A5、根据A1所述的系统,其中,任意一个Cassandra集群,还适于接收读取指定数据的请求时,向所述Center Locator发起映射关系的查找请求;根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
A6、根据A2所述的系统,其中,
所述Center Locator,还适于将更新部分的数据与具体存储位置间的映射关系同步至其耦接的所有Cassandra集群中;
任意一个Cassandra集群,还适于接收读取指定数据的请求时,根据自身存储的映射关系查找所述指定数据的具体存储位置,若查找到,则根据查找到所述指定数据的具体存储位置进行数据读取;若未查找到,则向所述CenterLocator发起映射关系的查找请求,并根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
A7、根据A1至A6任一项所述的系统,其中,所述Center Locator部署在一个双线互联网数据中心IDC中。
B8、一种数据全局处理方法,应用于设置全局数据定位中心Center Locator耦接至多个分布式存储系统Cassandra集群情况,包括:
接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系;
存储所述上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信。
B9、根据B8所述的方法,其中,接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系,包括:
接收每个Cassandra集群上传的、更新部分的数据与具体存储位置间的映射关系。
B10、根据B9所述的方法,其中,所述更新部分的数据包括下列至少之一:
写入的数据;
删除的数据;
更改的数据。
B11、根据B8所述的方法,其中,还包括:
接收数据写入请求,在其耦接的多个Cassandra集群中,查找与待写入数据的源地址距离最近的Cassandra集群地址作为目标地址;
将所述待写入数据写入所述目标地址对应的Cassandra集群。
B12、根据B8所述的方法,其中,根据存储的映射关系为各Cassandra集群提供全局数据定位服务,包括:
接收来自任意一个Cassandra集群的查找指定数据的具体存储位置的查找请求;
根据存储的映射关系,查找到所述指定数据的具体存储位置,并返回,以实现任意一个Cassandra集群根据查找到所述指定数据的具体存储位置进行数据读取。
B13、根据B8所述的方法,其中,接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系之后,还包括:
将所述上传的映射关系同步至其耦接的所有Cassandra集群中。
C14、一种数据全局处理方法,应用于设置全局数据定位中心CenterLocator耦接至多个分布式存储系统Cassandra集群情况,包括:
将自身存储的数据与具体存储位置间的映射关系上传至所述CenterLocator;
接收所述Center Locator下发的处理指令,进行相应处理。
C15、根据C14所述的方法,其中,将自身存储的数据与具体存储位置间的映射关系上传至所述Center Locator,包括:
当自身存储的数据发生更新时,将更新部分的数据与具体存储位置间的映射关系上传至所述Center Locator。
C16、根据C15所述的方法,其中,所述更新部分的数据包括下列至少之一:
写入的数据;
删除的数据;
更改的数据。
C17、根据C14所述的方法,其中,还包括:
接收读取指定数据的请求时,向所述Center Locator发起映射关系的查找请求;根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
C18、根据C14所述的方法,其中,还包括:
接收读取指定数据的请求时,根据自身存储的映射关系查找所述指定数据的具体存储位置,若查找到,则根据查找到所述指定数据的具体存储位置进行数据读取;若未查找到,则向所述Center Locator发起映射关系的查找请求,并根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
C19、根据C14所述的方法,其中,所述处理指令包括数据写入指令,接收所述Center Locator下发的处理指令,进行相应处理,包括:
接收所述Center Locator下发的数据写入指令,进行数据的写入操作。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据全局处理系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (10)
1.一种数据全局处理系统,包括全局数据定位中心Center Locator,所述Center Locator耦接至多个分布式存储系统Cassandra集群,其中,
每个Cassandra集群,适于将自身存储的数据与具体存储位置间的映射关系上传至所述Center Locator;
所述Center Locator,适于接收并存储每个Cassandra集群上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信。
2.根据权利要求1所述的系统,其中,每个Cassandra集群,还适于当自身存储的数据发生更新时,将更新部分的数据与具体存储位置间的映射关系上传至所述Center Locator。
3.根据权利要求2所述的系统,其中,所述更新部分的数据包括下列至少之一:
写入的数据;
删除的数据;
更改的数据。
4.根据权利要求1所述的系统,其中,所述Center Locator,还适于接收数据写入请求时,在其耦接的多个Cassandra集群中,查找与待写入数据的源地址距离最近的Cassandra集群地址作为目标地址,将所述待写入数据写入所述目标地址对应的Cassandra集群。
5.根据权利要求1所述的系统,其中,任意一个Cassandra集群,还适于接收读取指定数据的请求时,向所述Center Locator发起映射关系的查找请求;根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
6.根据权利要求2所述的系统,其中,
所述Center Locator,还适于将更新部分的数据与具体存储位置间的映射关系同步至其耦接的所有Cassandra集群中;
任意一个Cassandra集群,还适于接收读取指定数据的请求时,根据自身存储的映射关系查找所述指定数据的具体存储位置,若查找到,则根据查找到所述指定数据的具体存储位置进行数据读取;若未查找到,则向所述CenterLocator发起映射关系的查找请求,并根据所述Center Locator返回的结果查找到所述指定数据的具体存储位置进行数据读取。
7.根据权利要求1至6任一项所述的系统,其中,所述Center Locator部署在一个双线互联网数据中心IDC中。
8.一种数据全局处理方法,应用于设置全局数据定位中心Center Locator耦接至多个分布式存储系统Cassandra集群情况,包括:
接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系;
存储所述上传的映射关系,并根据存储的映射关系与各Cassandra集群之间通信。
9.根据权利要求8所述的方法,其中,接收每个Cassandra集群上传的、其自身存储的数据与具体存储位置间的映射关系,包括:
接收每个Cassandra集群上传的、更新部分的数据与具体存储位置间的映射关系。
10.一种数据全局处理方法,应用于设置全局数据定位中心Center Locator耦接至多个分布式存储系统Cassandra集群情况,包括:
将自身存储的数据与具体存储位置间的映射关系上传至所述CenterLocator;
接收所述Center Locator下发的处理指令,进行相应处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410638336.0A CN104408086B (zh) | 2014-11-07 | 2014-11-07 | 数据全局处理系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410638336.0A CN104408086B (zh) | 2014-11-07 | 2014-11-07 | 数据全局处理系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104408086A true CN104408086A (zh) | 2015-03-11 |
CN104408086B CN104408086B (zh) | 2018-02-06 |
Family
ID=52645717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410638336.0A Active CN104408086B (zh) | 2014-11-07 | 2014-11-07 | 数据全局处理系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104408086B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107817951A (zh) * | 2017-10-31 | 2018-03-20 | 新华三技术有限公司 | 一种实现Ceph集群融合的方法及装置 |
CN108494853A (zh) * | 2018-03-22 | 2018-09-04 | 广州视源电子科技股份有限公司 | 一种海量设备状态自维护方法及其装置和系统 |
CN109831473A (zh) * | 2017-11-23 | 2019-05-31 | 菜鸟智能物流控股有限公司 | 物流服务提供方法及设备 |
CN111258508A (zh) * | 2020-02-16 | 2020-06-09 | 西安奥卡云数据科技有限公司 | 一种分布式对象存储中的元数据管理方法 |
CN113656496A (zh) * | 2021-07-30 | 2021-11-16 | 星辰天合(北京)数据科技有限公司 | 数据处理方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1360782A (zh) * | 1999-05-10 | 2002-07-24 | 艾利森电话股份有限公司 | 在不同网络的匿名用户之间智能建立会话的分布式系统 |
CN1771477A (zh) * | 2003-04-07 | 2006-05-10 | 皇家飞利浦电子股份有限公司 | 带有集群式ilp处理器的数据处理系统 |
CN101076790A (zh) * | 2003-06-27 | 2007-11-21 | 新信息系统公司 | 动态多群集系统重新配置 |
US20120215876A1 (en) * | 2011-02-23 | 2012-08-23 | Nec Corporation | Information processing system |
CN102667761A (zh) * | 2009-06-19 | 2012-09-12 | 布雷克公司 | 可扩展的集群数据库 |
CN102866995A (zh) * | 2011-07-05 | 2013-01-09 | 中兴通讯股份有限公司 | 对等网络的文件访问方法、管理方法及分布式文件系统 |
CN103106249A (zh) * | 2013-01-08 | 2013-05-15 | 华中科技大学 | 一种基于Cassandra的数据并行处理系统 |
CN103235905A (zh) * | 2013-04-27 | 2013-08-07 | 成都菲普迪斯科技有限公司 | Dudp实时数据保护方法 |
-
2014
- 2014-11-07 CN CN201410638336.0A patent/CN104408086B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1360782A (zh) * | 1999-05-10 | 2002-07-24 | 艾利森电话股份有限公司 | 在不同网络的匿名用户之间智能建立会话的分布式系统 |
CN1771477A (zh) * | 2003-04-07 | 2006-05-10 | 皇家飞利浦电子股份有限公司 | 带有集群式ilp处理器的数据处理系统 |
CN101076790A (zh) * | 2003-06-27 | 2007-11-21 | 新信息系统公司 | 动态多群集系统重新配置 |
CN102667761A (zh) * | 2009-06-19 | 2012-09-12 | 布雷克公司 | 可扩展的集群数据库 |
US20120215876A1 (en) * | 2011-02-23 | 2012-08-23 | Nec Corporation | Information processing system |
CN102866995A (zh) * | 2011-07-05 | 2013-01-09 | 中兴通讯股份有限公司 | 对等网络的文件访问方法、管理方法及分布式文件系统 |
CN103106249A (zh) * | 2013-01-08 | 2013-05-15 | 华中科技大学 | 一种基于Cassandra的数据并行处理系统 |
CN103235905A (zh) * | 2013-04-27 | 2013-08-07 | 成都菲普迪斯科技有限公司 | Dudp实时数据保护方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107817951A (zh) * | 2017-10-31 | 2018-03-20 | 新华三技术有限公司 | 一种实现Ceph集群融合的方法及装置 |
CN109831473A (zh) * | 2017-11-23 | 2019-05-31 | 菜鸟智能物流控股有限公司 | 物流服务提供方法及设备 |
CN108494853A (zh) * | 2018-03-22 | 2018-09-04 | 广州视源电子科技股份有限公司 | 一种海量设备状态自维护方法及其装置和系统 |
CN108494853B (zh) * | 2018-03-22 | 2021-01-05 | 广州视源电子科技股份有限公司 | 一种海量设备状态自维护方法及其装置和系统 |
CN111258508A (zh) * | 2020-02-16 | 2020-06-09 | 西安奥卡云数据科技有限公司 | 一种分布式对象存储中的元数据管理方法 |
CN113656496A (zh) * | 2021-07-30 | 2021-11-16 | 星辰天合(北京)数据科技有限公司 | 数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104408086B (zh) | 2018-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10545914B2 (en) | Distributed object storage | |
CN104731516B (zh) | 一种存取文件的方法、装置及分布式存储系统 | |
US8495013B2 (en) | Distributed storage system and method for storing objects based on locations | |
CN104408086A (zh) | 数据全局处理系统和方法 | |
CN104011701A (zh) | 内容传送网络 | |
JP6880131B2 (ja) | データ処理用の方法、装置及びシステム | |
CN104378452B (zh) | 一种用于域名解析的方法、装置及系统 | |
CN111399756B (zh) | 一种数据存储方法、数据下载方法及装置 | |
CN103150394A (zh) | 面向高性能计算的分布式文件系统元数据管理方法 | |
US20090210426A1 (en) | System and method for efficient management of distributed spatial data | |
CN103034540B (zh) | 分布式消息系统及其设备和协调方法 | |
US8903972B2 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
CN108234639A (zh) | 一种基于内容分发网络cdn的数据访问方法和装置 | |
US20180139103A1 (en) | Management of multiple clusters of distributed file systems | |
CN105515872A (zh) | 配置信息的更新方法、装置及系统 | |
JPWO2013157042A1 (ja) | 情報処理システム、管理サーバ群、および、サーバ管理プログラム | |
CN102420863B (zh) | 一种快速分发文件系统和方法及装置 | |
US10911314B2 (en) | Systems and methods for determining entry points for mapping a network | |
KR102435498B1 (ko) | 계층형 엔진 프레임워크에 기반한 크로스 도메인 워크플로우 제어 시스템 및 방법 | |
US20130117293A1 (en) | File system directory attribute correction | |
CN103607424A (zh) | 一种服务器连接方法及服务器系统 | |
CN108173952A (zh) | 一种内容分发网络cdn的数据访问方法和装置 | |
CN107295030B (zh) | 一种数据写入方法、装置、数据处理方法、装置及系统 | |
CN108847952A (zh) | 请求链路上下文的处理方法、装置及系统 | |
CN105450585A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220718 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |