geminidb cassandra创表时需要注意什么-凯发k8国际娱乐官网入口
由于geminidb cassandra存储引擎的特点,为了保证高性能需要在创表的过程中对内存进行预分配,因此geminidb cassandra对表的数目有一定的上限要求。
使用须知
- 系统将节点内存的一半分配给存储引擎使用。
- 节点数量为奇数的集群容忍故障节点为n/2-1 , 偶数的集群容忍故障节点为n/2。
创表数目计算方式
根据实例规格不同,创表需要的内存稍有不同,以4u16gb实例为例,可以简单按照单张表768mb计算。
所以创表数目上限=集群可用总内存/单表所需内存
- 奇数数目集群
集群可用内存=节点内存/2*(n/2 1)
- 偶数数目集群
集群可用内存=节点内存/2*(n/2)
- 3节点4u16gb实例的可用内存=16/2*(3/2 1)=16gb
创表数目上限=16*1024mb/768mb=21
- 4节点4u16gb实例的可用内存=16/2*(4/2)=16gb
创表数目上限=16*1024mb/768mb=21
- 5节点4u16gb实例可用内存=16/2*(5/2 1)=24gb
创表数目上限=24*1024mb/768mb=32
实例规格 |
节点数量 |
表个数 |
---|---|---|
4u16gb |
3 |
21 |
4 |
21 |
|
5 |
32 |
|
6 |
32 |
|
7 |
42 |
|
8 |
42 |
|
9 |
53 |
|
10 |
53 |
|
11 |
64 |
|
12 |
64 |
- 单表占用内存为768mb,表tokens个数为默认值12,如果单独设置了tokens,则需要单独计算,换算公式为(768/12)*tokens个数。
- 上述表个数都是按照普通表计算的,如果开启了流表,一张流表耗费的资源为2.5个普通表。
实例规格 |
节点个数 |
表个数 |
---|---|---|
8u32gb |
3 |
22 |
4 |
22 |
|
5 |
34 |
|
6 |
34 |
|
7 |
45 |
|
8 |
45 |
|
9 |
56 |
|
10 |
56 |
|
11 |
68 |
|
12 |
68 |
- 单表占用内存为1440mb,表tokens个数为默认值12,如果单独设置了tokens,则需要单独计算,换算公式为(1440/ 12 )* tokens个数。
- 上述表个数都是按照普通表计算的,如果开启了流表,一张流表耗费的资源为2.5个普通表。
实例规格 |
节点个数 |
表个数 |
---|---|---|
16u64gb |
3 |
45 |
4 |
45 |
|
5 |
68 |
|
6 |
68 |
|
7 |
91 |
|
8 |
91 |
|
9 |
113 |
|
10 |
113 |
|
11 |
136 |
|
12 |
136 |
- 单表占用内存1440mb,表tokens个数为默认值12,如果单独设置了tokens,则需要单独计算,换算公式为(1440/ 12 )* tokens个数。
- 上述表个数都是按照普通表计算的,如果开启了流表,一张流表耗费的资源为2.5个普通表。
实例规格 |
节点个数 |
表个数 |
---|---|---|
32u128gb |
3 |
68 |
4 |
68 |
|
5 |
102 |
|
6 |
102 |
|
7 |
136 |
|
8 |
136 |
|
9 |
170 |
|
10 |
170 |
|
11 |
204 |
|
12 |
204 |
- 单表占用内存1920mb,表tokens个数为默认值12,如果单独设置了tokens,则需要单独计算。换算公式为 (1920 / 12 )* tokens个数。
- 上述表个数都是按照普通表计算的,如果开启了流表,一张流表耗费的资源为2.5个普通表。
创表参数
- 吞吐量参数:z00_throughput,默认值为 big。
- 低吞吐量
create table test1 (k int,p int,s int static,v int,primary key (k, p)) with z00_throughput = 'small';
- 中吞吐量
create table test2 (k int,p int,s int static,v int,primary key (k, p)) with z00_throughput = 'medium';
- 高吞吐量
create table test3 (k int,p int,s int static,v int,primary key (k, p)) with z00_throughput = 'big';
- 低吞吐量
- 指定表tokens数目:表示创建表时候表的tokens数目,tokens数目必须大于1。
create table test4 (k int,p int,s int static,v int,primary key (k, p)) with z01_table_tokens = 24;
- 表参数:z00_buffer_size 、z00_buffer_number(不推荐使用)。
创表时可以指定存储层memtable的大小和个数。
- z00_buffer_size为map类型,指定对应cf name和value值 ,value值取值范围2~32之间。
create table test6 (k int,p int,s int static,v int,primary key (k, p)) with z00_buffer_size = {'default': 16};
- z00_buffer_number为map类型,指定对应cf name和value值,取值范围2~8之间。
create table test5 (k int,p int,s int static,v int,primary key (k, p)) with z00_buffer_number = {'default': 3};
- z00_buffer_size为map类型,指定对应cf name和value值 ,value值取值范围2~32之间。
如果创建完成的表需要调整表规格,比如达到表上限,需要将表规格调小,以创建更多的表,则可以通过如下参数调整。
- 将所有创建表调小为medium,则可以多建一倍数量的表
alter table keyspace_name.table_name with z00_throughput = 'medium';
- 将所有创建表调小为small,则可以多建两倍数量的表
alter table keyspace_name.table_name with z00_throughput = 'small';
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨