CN102511148B - 关键字/值存储系统中的子表部署方法及设备、系统 - Google Patents
关键字/值存储系统中的子表部署方法及设备、系统 Download PDFInfo
- Publication number
- CN102511148B CN102511148B CN201180003284.4A CN201180003284A CN102511148B CN 102511148 B CN102511148 B CN 102511148B CN 201180003284 A CN201180003284 A CN 201180003284A CN 102511148 B CN102511148 B CN 102511148B
- Authority
- CN
- China
- Prior art keywords
- sublist
- node device
- node
- value
- specified scope
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例涉及一种Key/Value存储系统中的子表部署方法及设备、系统,通过获得待部署子表的Key值范围所属的预先设置的指定范围,并将上述待部署子表部署在Key/Value存储系统中的一个节点设备上,能够使得上述至少两个节点设备上部署的上述指定范围内的子表部署均衡,能够避免由于某一指定范围内的子表都集中到某一个或几个节点设备上而导致的其他节点设备上没有该指定范围内的子表,从而使得节点设备得到充分利用,提高了Key/Value存储系统中节点设备的利用率。
Description
技术领域
本发明实施例涉及信息存储技术,尤其涉及一种关键字/值(Key/Value)存储系统中的子表部署方法及设备、系统。
背景技术
分布式关键字/值(Key/Value)存储系统可以由部署在至少两个节点设备上的一个子表或者多个子表组成,每个子表都具有开始Key值(StartKey)和结束Key值(EndKey)。当节点设备上部署的一个子表增大到一定程度之后,会自动分裂为两个子表。
然而,在子表创建(即分裂)过程或子表移动过程中,如果某一指定范围(例如:时间范围、地域范围等)内的子表都集中到某一个或几个节点设备上,使得其他节点设备上则没有该指定范围内的子表,导致了节点设备没有得到充分利用,从而降低了Key/Value存储系统中节点设备的利用率。
发明内容
本发明实施例提供一种Key/Value存储系统中的子表部署方法及设备、系统,用以提高Key/Value存储系统中节点设备的利用率。
一方面提供了一种Key/Value存储系统中的子表部署方法,所述Key/Value存储系统包括至少两个节点设备,所述子表部署方法包括:
获得待部署子表的Key值范围所属的指定范围,所述指定范围为根据时间信息和地域信息中的至少一项预先设置的子表范围;
将所述待部署子表部署在所述至少两个节点设备中的一个节点设备上,以使得所述至少两个节点设备上部署的所述指定范围内的子表部署均衡;
所述待部署子表部署到的一个节点设备上部署的,所述指定范围内的 子表的个数为第一均衡数值,所述第一均衡数值为所述指定范围内的子表的个数除以所述至少两个节点设备的个数取模运算得到的第一数值,或者所述第一数值加1得到的第二数值。
另一方面提供了一种Key/Value存储系统中的子表部署设备,所述Key/Value存储系统包括至少两个节点设备,所述子表部署设备包括:
获得单元,用于获得待部署子表的Key值范围所属的指定范围,所述指定范围为根据时间信息和地域信息中的至少一项预先设置的子表范围;
部署单元,用于将所述待部署子表部署在所述至少两个节点设备中的一个节点设备上,以使得所述至少两个节点设备上部署的所述指定范围内的子表部署均衡;
所述部署单元将所述待部署子表部署到的,一个节点设备上部署的所述指定范围内的子表的个数为第一均衡数值,所述第一均衡数值为所述指定范围内的子表的个数除以所述至少两个节点设备的个数取模运算得到的第一数值,或者所述第一数值加1得到的第二数值。
另一方面提供了一种Key/Value存储系统中的子表部署系统,包括至少两个节点设备和上述Key/Value存储系统中的子表部署设备。
由上述技术方案可知,本发明实施例通过获得待部署子表的Key值范围所属的预先设置的指定范围,并将上述待部署子表部署在Key/Value存储系统中的一个节点设备上,能够使得上述至少两个节点设备上部署的上述指定范围内的子表部署均衡,能够避免由于某一指定范围内的子表都集中到某一个或几个节点设备上而导致的其他节点设备上没有该指定范围内的子表,从而使得节点设备得到充分利用,提高了Key/Nalue存储系统中节点设备的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的Key/Value存储系统中的子表部署方法
的流程示意图;
图2为本发明另一实施例提供的Key/Value存储系统中的子表部署方法的流程示意图;
图3为本发明另一实施例提供的Key/Value存储系统中的子表部署设备的结构示意图;
图4为本发明另一实施例提供的Key/Value存储系统中的子表部署系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的Key/Value存储系统中的子表部署方法的流程示意图,本实施例中的上述Key/Value存储系统可以包括至少两个节点设备。如图1所示,本实施例的子表部署方法可以包括:
101、获得待部署子表的Key值范围所属的指定范围,上述指定范围为根据时间信息和地域信息中的至少一项预先设置的子表范围;
其中,上述指定范围可以为任意可以可划分的范围,例如:时间范围、地域范围等,本实施例对此不进行限定。
其中,上述待部署子表可以为初始创建阶段创建的空的子表,或者还可以为运行分裂阶段分裂的子表,本实施例对此不进行限定。
102、将上述待部署子表部署在上述至少两个节点设备中的一个节点设备上,以使得上述至少两个节点设备上部署的上述指定范围内的子表部署均衡。
上述101~102的执行主体可以为网络中的一个具有子表部署功能的服务器。
具体地,上述待部署子表部署的一个节点设备上部署到的,上述指定范围内的子表的个数可以为第一均衡数值,上述第一均衡数值为上述指定范围内的子表的个数除以上述至少两个节点设备的个数取模运算得到的第一数值,或者还可以为上述第一数值加1得到的第二数值。
例如:假设上述指定范围内的子表数目为K,节点设备数据为L,如果K是L的整数倍,则每个节点设备上部署的子表数目可以为K/L;如果K不是L的整数倍,则每个节点设备上部署的子表数目可以为floor(K/L),或者还可以为floor(K/L)+1。其中,函数floor(K/L)表示对K/L进行取模运算。
可选地,在102之后,若出现新增节点设备,则还可以进一步将上述 至少两个节点设备上部署的上述指定范围内的至少一个子表移动到上述新增节点设备上,以使得上述新增节点设备和上述至少两个节点设备上部署的上述指定范围内的子表部署均衡。
具体地,上述至少两个节点设备或者上述新增节点设备上部署的上述指定范围内的子表的个数可以为第二均衡数值,上述第二均衡数值为上述指定范围内的子表的个数除以上述至少两个节点设备与上述新增节点设备的个数之和的值取模运算得到的第三数值,或者还可以为上述第三数值加1得到的第四数值。
可选地,在102之后,若上述至少两个节点设备中的一个节点设备故障,则还可以进一步将上述一个节点设备上部署的上述指定范围内的子表移动到上述至少两个节点设备中的其他节点设备上,以使得上述至少两个节点设备中的其他节点设备上部署的上述指定范围内的子表部署均衡。
具体地,上述至少两个节点设备中的其他节点设备上部署的上述指定范围内的子表的个数可以为第三均衡数值,上述第三均衡数值为上述指定范围内的子表的个数除以上述至少两个节点设备中的其他节点设备的个数取模运算得到的第五数值,或者还可以为上述第五数值加1得到的第六数值。
需要说明的是:本发明实施例中所涉及的节点设备包括但不限于基站、移动交换中心或移动管理设备。
本实施例中,通过获得待部署子表的Key值范围所属的预先设置的指定范围,并将上述待部署子表部署在Key/Value存储系统中的一个节点设备上,能够使得上述至少两个节点设备上部署的上述指定范围内的子表部署均衡,能够避免由于某一指定范围内的子表都集中到某一个或几个节点设备上而导致的其他节点设备上没有该指定范围内的子表,从而使得节点设备得到充分利用,提高了Key/Value存储系统中节点设备的利用率。
为使得本发明实施例提供的方法更加清楚,下面将以时间范围作为指定范围作为举例。可以假设Key/Value存储系统包括五个节点设备,并将预先设置的指定范围内的子表划分到对应的子表群中。例如:Key值的设计格式可以为D#HH#随机数字#MMSS,其中,#为分隔符号,用于分开两个数据;D表示天,共一位数字;H H表示小时,共两位数字;随机数字共十一位数字;MM表示分,共两位数字;SS表示秒,共两位数字, 具体可以参见表1所示,则Key/Value存储系统的子表的下限为0#00#00000000000#0000,上限为T#23#99999999999#5959。
表1 Key值的设计格式
由于Key/Value存储系统中所创建的子表中的数据具有一定的时间周期,即达到时间周期后,数据就会老化,然后被清理。假设这个时间周期为5天,则Key/Value存储系统在运行到第6天时,第1天的数据就会被清理掉了,则原先存储第1天数据的子表中所存储的第1天数据在被清理掉之后,该子表则成了空子表,继续存储第6天数据。
图2为本发明另一实施例提供的Key/Value存储系统中的子表部署方法的流程示意图。如图2所示,本实施例的子表部署方法可以包括:
201、创建子表,将所创建的预先设置的指定范围内的子表划分到对应的子表群;
可以理解的是:指定范围可以理解为根据Key/Value存储系统所将要存储的数据来预先设置的一个范围。例如:假设一个小时内的子表属于一个子表群。可以首先创建存储5天(即指定范围)数据的空的子表,根据实际应用中可能生成的总数据量,为每小时预先创建40个子表,每个子表的时间范围是1分钟30秒,总共需要创建40×24×5=4800个子表。
202、将创建的每个子表群中子表部署在节点设备上,以使得五个节 点设备上部署的每个子表群中子表部署均衡;
例如:如果第M天(M<=5)第N小时(N<=24)的子表群的标识可以记为:D(M-1)H(N-1)。可以根据第X天第N小时生成的数据对应的Key值所属的子表群,将该数据存储到标识为D(X%5)H(N-1)的子表群的子表中,其中,X%5中X的取值可以为大于0的任何整数,该值可以对应等于M-1,即大于5天的数据可以循环利用五天之中的第M天的子表。例如:根据第8天第4小时生成的数据对应的Key值所属的子表群,将该数据存储到标识为D3H3的子表群的对应子表中,例如:由于每个子表时间范围是1分30秒,所以可以将第8天第4小时的第1分钟(在第一个子表的1分30秒范围之内)生成的数据存储到标识为D3H3的子表群的第一个子表中。
例如:可以采用轮循分配法,或者还可以根据上述五个节点设备上部署的每个子表群中子表的部署情况,将待部署子表部署在其中的一个节点设备上,用以实现五个节点设备上部署的每个子表群中子表部署均衡。
其中,上述轮循分配的原理为:遍历各个子表群,将子表群中的第i个子表(0<=i<=39),部署到第j个(0=<j<=4)节点设备,其中,j=i%5。针对一个子表群,下面举例进行详细说明。
将要部署第0个子表时,根据五个节点设备上该子表群中子表的部署情况,即还未部署该子表群中的子表,将第0个子表,部署到第0个节点设备;例如:可以向第0个节点设备发送远程通信请求,该远程通信请求中包含第0个子表的开始Key值(StartKey)和结束Key值(EndKey),以使第0个节点设备实现对第0个子表进行访问,从而实现了将创建的每个子表群中子表部署在该节点设备上。下面的第1个子表~第39个子表可以采用类似的方法进行部署,后续不再一一赘述。
将要部署第1个子表时,根据五个节点设备上该子表群中子表的部署情况,即第0个子表部署到第0个节点设备,将第1个子表,部署到第1个节点设备;
将要部署第2个子表时,根据五个节点设备上该子表群中子表的部署情况,即第0个子表部署到第0个节点设备、第1个子表部署到第1个节点设备,将第2个子表,部署到第2个节点设备;
将要部署第3个子表时,根据五个节点设备上该子表群中子表的部署 情况,即第0个子表部署到第0个节点设备、第1个子表部署到第1个节点设备、第2个子表部署到第2个节点设备,将第3个子表,部署到第3个节点设备;
将要部署第4个子表时,根据五个节点设备上该子表群中子表的部署情况,即第0个子表部署到第0个节点设备、第1个子表部署到第1个节点设备、第2个子表部署到第2个节点设备、第3个子表部署到第3个节点设备,将第4个子表,部署到第4个节点设备;
将要部署第5个子表时,根据五个节点设备上该子表群中子表的部署情况,即第0个子表部署到第0个节点设备、第1个子表部署到第1个节点设备、第2个子表部署到第2个节点设备、第3个子表部署到第3个节点设备、第4个子表部署到第4个节点设备,将第5个子表,部署到第0个节点设备;
将要部署第6个子表时,根据五个节点设备上该子表群中子表的部署情况,即第0个子表部署到第0个节点设备、第1个子表部署到第1个节点设备、第2个子表部署到第2个节点设备、第3个子表部署到第3个节点设备、第4个子表部署到第4个节点设备、第5个子表部署到第0个节点设备,将第6个子表,部署到第1个节点设备;
依此类推,将要部署第39个子表时,根据五个节点设备上该子表群中子表的部署情况,即第0个子表部署到第0个节点设备、第1个子表部署到第1个节点设备、第2个子表部署到第2个节点设备、第3个子表部署到第3个节点设备、第4个子表部署到第4个节点设备、第5个子表部署到第0个节点设备、……第38个子表部署到第3个节点设备,将第39个子表,部署到第4个节点设备。
至此,子表已经在该Key/Value存储系统中的五个节点设备上部署完毕,使得能够将每天生成的数据存储到对应的子表上。
可以理解的是:Key/Value存储系统运行期间,当一个子表群中的一个子表增大到一定程度之后,可以自动分裂为两个子表,新分裂出的子表仍然属于该子表群,具体可以根据上述五个节点设备上部署的该子表群中子表的部署情况,将上述新分裂的子表部署在其中的一个节点设备上,用以实现五个节点设备上部署的该子表群中子表部署均衡。例如:可以向其 中的一个节点设备发送远程通信请求,该远程通信请求中包含新分裂的子表的开始Key值(StartKey)和结束Key值(EndKey),以使该节点设备实现对该新分裂的子表进行访问。
例如:子表1的开始Key值(StartKey)为1#10#13400000000#0000,结束Key值(EndKey)为1#10#13425000000#0000,假设在子表1中已经有很多的数据,并且假设这些数据中位于子表的中间位置的数据的Key值为1#10#13412821549#0000,那么分裂后产生两个子表11和子表12,即
子表11的开始Key值(StartKey)为1#10#13400000000#0000,结束Key值(End Key)为1#10#13412821549#0000;
子表12的开始Key值(StartKey)为1#10#13412821549#0000,结束Key值(EndKey)为1#10#13425000000#0000。
203、若上述五个节点设备中的一个节点设备故障,则将故障的节点设备上部署的每个子表群中的子表移动到其他四个节点设备上;
例如:节点设备A、节点设备B、节点设备C、节点设备D和节点设备E这五个节点设备中,节点设备E故障,此时,由于该节点设备E上一共部署了(40×24×5)/5=960个子表,其中,包含各个子表群的子表数目为8,所以可以将节点设备E上部署的每个子表群中的2个子表转移到节点设备A、节点设备B、节点设备C和节点设备D上,从而可以实现节点设备A、节点设备B、节点设备C和节点设备D上部署的每个子表群中子表部署均衡。
下面以将节点设备E上部署的每个子表群中的1个子表转移到节点设备A上为例,说明如何实现子表转移。例如:可以向节点设备A发送远程通信请求,该远程通信请求中包含待转移的子表的开始Key值(StartKey)和结束Key值(EndKey),以使该节点设备A实现对该待转移的子表的访问。
例如:子表1的开始Key值(StartKey)为1#10#13400000000#0000,结束Key值(EndKey)为1#10#13425000000#0000,假设在子表1需要从节点设备E上转移到节点设备A上,可以向节点设备A发送远程通信请求,该远程通信请求中包含子表1的开始Key值(StartKey)为1#10#13400000000#0000和结束Key值(EndKey)为 1#10#13425000000#0000,以使该节点设备A实现对子表1进行访问。
204、若出现一个新增节点设备,将五个节点设备上部署的每个子表群中的部分子表移动到上述新增节点设备上。
可以理解的是:203和204的执行没有固定顺序。
例如:节点设备A、节点设备B、节点设备C、节点设备D和节点设备E这五个节点设备之外,新增加了一个节点设备F,此时,由于节点设备A、节点设备B、节点设备C、节点设备D和节点设备E上一共部署了40×24×5=4800个子表,每个节点设备上部署的子表数目为(40×24×5)/5=960,其中,包含各个子表群的子表数目为40/5=8,所以可以将节点设备A、节点设备B、节点设备C、节点设备D和节点设备E上部署的每个子表群中的部分子表移动到上述新增节点设备上,以使得每个节点设备上部署的每个子表群中子表数目为floor(40/6)或floor(40/6)+1。例如:可以将节点设备A、节点设备B、节点设备C、节点设备D和节点设备E上部署的每个子表群中的1个子表转移到节点设备F上,然后再将节点设备A、节点设备B、节点设备C、节点设备D和节点设备E中的任一节点设备(例如:节点设备E)上部署的该子表群中的另1个子表转移到节点设备F上,从而可以实现节点设备A、节点设备B、节点设备C、节点设备D、节点设备E和节点设备F上部署的每个子表群中子表部署均衡,即对于每一个子表群,节点设备A上部署子表数目为7、节点设备B上部署子表数目为7、节点设备C上部署子表数目为7、节点设备D上部署子表数目为7、节点设备E上部署子表数目为6和节点设备F上部署子表数目为6;再例如:还可以将节点设备A、节点设备B、节点设备C、节点设备D和节点设备E上部署的每个子表群中的1个子表转移到节点设备F上,然后再将节点设备A、节点设备B、节点设备C、节点设备D和节点设备E中的任两节点设备(例如:节点设备D和节点设备E)上部署的该子表群中的1个子表转移到节点设备F上,从而可以实现节点设备A、节点设备B、节点设备C、节点设备D、节点设备E和节点设备F上部署的每个子表群中子表部署均衡,即对于每一个子表群,节点设备A上部署子表数目为7、节点设备B上部署子表数目为7、节点设备C上部署子表数目为7、节点设备D上部署子表数目为6、节点设备E上部署子表数目为6和节点设备F上部署子表数目为7。
下面以将节点设备A上部署的每个子表群中的1个子表转移到节点设备F上为例,说明如何实现子表转移。例如:可以先向节点设备A发送远程通信请求,该远程通信请求中包含待转移的子表的开始Key值(StartKey)和结束Key值(EndKey),以使该节点设备A删除对于该子表的访问;然后,可以向节点设备F发送远程通信请求,该远程通信请求中包含待转移的子表的开始Key值(StartKey)和结束Key值(EndKey),以使该节点设备F实现对该子表的访问。
上述201~204的执行主体可以为网络中的一个具有子表部署功能的服务器。
本实施例中,通过获得待部署子表的Key值范围所属的预先设置的时间范围即子表群,并将上述待部署子表部署在Key/Value存储系统中的一个节点设备上,能够使得上述至少两个节点设备上部署的上述指定范围内的子表部署均衡,能够避免由于某一指定范围内的子表都集中到某一个或几个节点设备上而导致的其他节点设备上没有该指定范围内的子表,从而使得节点设备得到充分利用,提高了Key/Value存储系统中节点设备的利用率。
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3为本发明另一实施例提供的Key/Value存储系统中的子表部署设备的结构示意图,其中,上述Key/Value存储系统可以包括至少两个节点设备。如图3所示,本实施例的Key/Value存储系统中的子表部署设备可以包括获得单元31和部署单元32。其中,获得单元31用于获得待部署子表的Key值范围所属的指定范围,上述指定范围为根据时间信息和地域信息中的至少一项预先设置的子表范围;部署单元32用于将上述待部署 子表部署在上述至少两个节点设备中的一个节点设备上,以使得上述至少两个节点设备上部署的上述指定范围内的子表部署均衡。
上述图1和图2对应的实施例中方法均可以由本实施例提供的Key/Value存储系统中的子表部署设备实现。
具体地,本实施例中的部署单元32具体可以向所述至少两个节点设备中的一个节点设备发送远程通信请求,所述远程通信请求中包含所述待部署子表的Key值,以使所述至少两个节点设备中的一个节点设备实现对所述待部署子表进行访问。
具体地,本实施例中的部署单元32具体可以将上述待部署子表部署到的,一个节点设备上部署的上述指定范围内的子表的个数为第一均衡数值,上述第一均衡数值为上述指定范围内的子表的个数除以上述至少两个节点设备的个数取模运算得到的第一数值,或者上述第一数值加1得到的第二数值。
可选地,本实施例中的部署单元32还可以进一步用于若出现新增节点设备,将上述至少两个节点设备上部署的上述指定范围内的至少一个子表移动到上述新增节点设备上,以使得上述新增节点设备和上述至少两个节点设备上部署的上述指定范围内的子表部署均衡。
具体地,部署单元32在上述新增节点设备上部署的上述指定范围内的子表的个数可以为第二均衡数值,上述第二均衡数值为上述指定范围内的子表的个数除以上述至少两个节点设备与上述新增节点设备的个数之和的值取模运算得到的第三数值,或者还可以为上述第三数值加1得到的第四数值。
可选地,本实施例中的部署单元32还可以进一步用于若上述至少两个节点设备中的一个节点设备故障,将上述一个节点设备上部署的上述指定范围内的子表移动到上述至少两个节点设备中的其他节点设备上,以使得上述至少两个节点设备中的其他节点设备上部署的上述指定范围内的子表部署均衡。
具体地,部署单元32在上述至少两个节点设备中的其他节点设备上部署的上述指定范围内的子表的个数可以为第三均衡数值,上述第三均衡数值为上述指定范围内的子表的个数除以上述至少两个节点设备中的其他节点设备的个数取模运算得到的第五数值,或者还可以为上述第五数值加1得到的第 六数值。
本实施例中,通过获得单元获得待部署子表的Key值范围所属的预先设置的指定范围,并由部署单元将上述待部署子表部署在Key/Value存储系统中的一个节点设备上,能够使得上述至少两个节点设备上部署的上述指定范围内的子表部署均衡,能够避免由于某一指定范围内的子表都集中到某一个或几个节点设备上而导致的其他节点设备上没有该指定范围内的子表,从而使得节点设备得到充分利用,提高了Key/Value存储系统中节点设备的利用率。
图4为本发明另一实施例提供的Key/Value存储系统中的子表部署系统的结构示意图,如图4所示,本实施例的Key/Value存储系统中的子表部署系统可以包括至少两个节点设备41和上述图3对应的实施例提供的Key/Value存储系统中的子表部署设备42。
其中,Key/Value存储系统中的子表部署设备42可以为网络中的一个具有子表部署功能的服务器。
本实施例中,通过子表部署设备获得待部署子表的Key值范围所属的预先设置的指定范围,并将上述待部署子表部署在Key/Value存储系统中的一个节点设备上,能够使得上述至少两个节点设备上部署的上述指定范围内的子表部署均衡,能够避免由于某一指定范围内的子表都集中到某一个或几个节点设备上而导致的其他节点设备上没有该指定范围内的子表,从而使得节点设备得到充分利用,提高了Key/Value存储系统中节点设备的利用率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合 或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以部署到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种关键字/值Key/Value存储系统中的子表部署方法,所述Key/Value存储系统包括至少两个节点设备,其特征在于,包括:
获得待部署子表的关键字Key值范围所属的指定范围,所述指定范围为根据时间信息和地域信息中的至少一项预先设置的子表范围;
将所述待部署子表部署在所述至少两个节点设备中的一个节点设备上,以使得所述至少两个节点设备上部署的所述指定范围内的子表部署均衡;
所述待部署子表部署到的一个节点设备上部署的,所述指定范围内的子表的个数为第一均衡数值,所述第一均衡数值为所述指定范围内的子表的个数除以所述至少两个节点设备的个数取模运算得到的第一数值,或者所述第一数值加1得到的第二数值。
2.根据权利要求1所述的方法,其特征在于,所述将所述待部署子表部署在所述至少两个节点设备中的一个节点设备上之后,还包括:
若出现新增节点设备,将所述至少两个节点设备上部署的所述指定范围内的至少一个子表移动到所述新增节点设备上,以使得所述新增节点设备和所述至少两个节点设备上部署的所述指定范围内的子表部署均衡。
3.根据权利要求2所述的方法,其特征在于,所述至少两个节点设备或者所述新增节点设备上部署的所述指定范围内的子表的个数为第二均衡数值,所述第二均衡数值为所述指定范围内的子表的个数除以所述至少两个节点设备与所述新增节点设备的个数之和的值取模运算得到的第三数值,或者所述第三数值加1得到的第四数值。
4.根据权利要求1所述的方法,其特征在于,所述将所述待部署子表部署在所述至少两个节点设备中的一个节点设备上之后,还包括:
若所述至少两个节点设备中的一个节点设备故障,将所述一个节点设备上部署的所述指定范围内的子表移动到所述至少两个节点设备中的其他节点设备上,以使得所述至少两个节点设备中的其他节点设备上部署的所述指定范围内的子表部署均衡。
5.根据权利要求4所述的方法,其特征在于,所述至少两个节点设备中的其他节点设备上部署的所述指定范围内的子表的个数为第三均衡数值,所述第三均衡数值为所述指定范围内的子表的个数除以所述至少两个节点设备中的其他节点设备的个数取模运算得到的第五数值,或者所述第五数值加1得到的第六数值。
6.根据权利要求1所述的方法,其特征在于,所述将所述待部署子表部署在所述至少两个节点设备中的一个节点设备上,包括:
向所述至少两个节点设备中的一个节点设备发送远程通信请求,所述远程通信请求中包含所述待部署子表的Key值,以使所述至少两个节点设备中的一个节点设备实现对所述待部署子表进行访问。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述Key/Value存储系统所将要存储的数据,确定所述待部署子表的Key值范围。
8.一种关键字/值Key/Value存储系统中的子表部署设备,所述Key/Value存储系统包括至少两个节点设备,其特征在于,包括:
获得单元,用于获得待部署子表的关键字Key值范围所属的指定范围,所述指定范围为根据时间信息和地域信息中的至少一项预先设置的子表范围;
部署单元,用于将所述待部署子表部署在所述至少两个节点设备中的一个节点设备上,以使得所述至少两个节点设备上部署的所述指定范围内的子表部署均衡;
所述部署单元将所述待部署子表部署到的,一个节点设备上部署的所述指定范围内的子表的个数为第一均衡数值,所述第一均衡数值为所述指定范围内的子表的个数除以所述至少两个节点设备的个数取模运算得到的第一数值,或者所述第一数值加1得到的第二数值。
9.根据权利要求8所述的设备,其特征在于,所述部署单元还用于
若出现新增节点设备,将所述至少两个节点设备上部署的所述指定范围内的至少一个子表移动到所述新增节点设备上,以使得所述新增节点设备和所述至少两个节点设备上部署的所述指定范围内的子表部署均衡。
10.根据权利要求9所述的设备,其特征在于,所述部署单元在所述新增节点设备上部署的所述指定范围内的子表的个数为第二均衡数值,所述第二均衡数值为所述指定范围内的子表的个数除以所述至少两个节点设备与所述新增节点设备的个数之和的值取模运算得到的第三数值,或者所述第三数值加1得到的第四数值。
11.根据权利要求8所述的设备,其特征在于,所述部署单元还用于
若所述至少两个节点设备中的一个节点设备故障,将所述一个节点设备上部署的所述指定范围内的子表移动到所述至少两个节点设备中的其他节点设备上,以使得所述至少两个节点设备中的其他节点设备上部署的所述指定范围内的子表部署均衡。
12.根据权利要求11所述的设备,其特征在于,所述部署单元在所述至少两个节点设备中的其他节点设备上部署的所述指定范围内的子表的个数为第三均衡数值,所述第三均衡数值为所述指定范围内的子表的个数除以所述至少两个节点设备中的其他节点设备的个数取模运算得到的第五数值,或者所述第五数值加1得到的第六数值。
13.根据权利要求8所述的设备,其特征在于,所述部署单元具体用于
向所述至少两个节点设备中的一个节点设备发送远程通信请求,所述远程通信请求中包含所述待部署子表的Key值,以使所述至少两个节点设备中的一个节点设备实现对所述待部署子表进行访问。
14.一种关键字/值Key/Value存储系统中的子表部署系统,其特征在于,包括至少两个节点设备和如权利要求8至13任一权利要求所述的Key/Value存储系统中的子表部署设备。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/082349 WO2012149821A1 (zh) | 2011-11-17 | 2011-11-17 | 关键字/值存储系统中的子表部署方法及设备、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102511148A CN102511148A (zh) | 2012-06-20 |
CN102511148B true CN102511148B (zh) | 2014-08-13 |
Family
ID=46222786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180003284.4A Active CN102511148B (zh) | 2011-11-17 | 2011-11-17 | 关键字/值存储系统中的子表部署方法及设备、系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102511148B (zh) |
WO (1) | WO2012149821A1 (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626392A (zh) * | 2008-07-08 | 2010-01-13 | 中国移动通信集团公司 | 数据存储、查找的方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100386998C (zh) * | 2006-03-10 | 2008-05-07 | 清华大学 | 对等网络中全局节点维护方法 |
CN101350788B (zh) * | 2008-08-25 | 2011-10-26 | 中兴通讯股份有限公司 | 一种网络处理器内外混合查表方法 |
JP5375272B2 (ja) * | 2009-03-31 | 2013-12-25 | ブラザー工業株式会社 | ノード装置、ノード処理プログラム、情報通信システム及びコンテンツデータ管理方法 |
-
2011
- 2011-11-17 CN CN201180003284.4A patent/CN102511148B/zh active Active
- 2011-11-17 WO PCT/CN2011/082349 patent/WO2012149821A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626392A (zh) * | 2008-07-08 | 2010-01-13 | 中国移动通信集团公司 | 数据存储、查找的方法及系统 |
Non-Patent Citations (2)
Title |
---|
NoSQL数据库解决方案Tair浅析;韩君易;《E-Business Journal》;20110930(第9期);54,61 * |
韩君易.NoSQL数据库解决方案Tair浅析.《E-Business Journal》.2011,(第9期),54,61. |
Also Published As
Publication number | Publication date |
---|---|
WO2012149821A1 (zh) | 2012-11-08 |
CN102511148A (zh) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102932415B (zh) | 一种镜像文件存储方法及装置 | |
CN102096557B (zh) | 一种独立磁盘冗余阵列的扩容方法、装置及系统 | |
CN106201481A (zh) | 应用程序开发系统中的组件管理方法和装置 | |
CN102148871B (zh) | 存储资源调度方法和装置 | |
CN103294530A (zh) | 一种终端设备应用程序管理方法及终端设备 | |
CN102890682A (zh) | 构建索引的方法、检索方法、装置及系统 | |
CN103139259A (zh) | 一种实现低流量同步消息记录的方法和服务器 | |
CN104866601A (zh) | 序列号生成方法及装置 | |
CN105681057A (zh) | 群头像更新方法及装置 | |
CN102369714A (zh) | 云计算系统中云终端访问云服务器的方法及云计算系统 | |
CN110502732A (zh) | 一种优惠券的规则生成方法、装置及服务器 | |
CN105512156A (zh) | 点击模型生成方法和装置 | |
CN104750790A (zh) | 一种软件推荐方法及装置 | |
CN106331075A (zh) | 用于存储文件的方法、元数据服务器和管理器 | |
CN103401727A (zh) | 一种基于虚拟dvr测试流媒体服务器性能的方法、装置和系统 | |
CN105630419A (zh) | 一种资源池的分区视图发送方法及管理节点 | |
CN102511148B (zh) | 关键字/值存储系统中的子表部署方法及设备、系统 | |
CN103425684A (zh) | 数据库的操作方法及装置 | |
CN103942213A (zh) | 数据分页方法及装置 | |
CN105183582A (zh) | 数据备份方法及装置 | |
CN104679407A (zh) | 界面响应方法及装置 | |
CN107644020B (zh) | 数据存储和调用的方法及装置 | |
CN102375696A (zh) | 利用虚拟磁盘的数据存储系统与数据存取方法 | |
CN109144403A (zh) | 一种用于云盘模式切换的方法与设备 | |
CN110413338B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220224 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |