YugabyteDB 中 ysql_num_tablets 和 ysql_num_shards_per_tserver 标志的区别
Difference between ysql_num_tablets & ysql_num_shards_per_tserver flags in YugabyteDB
[用户在 YugabyteDB Community Slack 上发布的问题]
ysql_num_tablets
G 标志是否取代了 ysql_num_shards_per_tserver
G 标志?
ysql_num_tablets
目前在线文档中似乎没有。
所有 gflags 在源代码中也有解释。 ysql_num_tablets
在这里解释 https://github.com/yugabyte/yugabyte-db/blob/b5aa25686b8444d171bd8d89c57342bf4e5b12a7/src/yb/client/client.cc#L220.
它为 table 或索引 cluster-wide 定义了 tablets 的“总数”。而 ysql_num_shards_per_tserver
定义了每个 yb-tserver.
的 tablets 的数量
扩展已经给出的答案,因此如果您的 ysql_num_tablets = -1(默认),则
tablets 数量 = ysql_num_shards_per_tserver * 您拥有的 tserver 数量。
但是,如果在创建 table 的 DDL 语句期间您已经指定了 tablets 的数量,那么它优先于这些参数。
下面是创建一个 table 的示例,其中包含奇数列和偶数列 - 有 5 个分片。
CREATE TABLE yuga_mannual_split ( odd int, even int ) SPLIT INTO 5 TABLETS ;
那么如果要插入数据
INSERT INTO yuga_mannual_split ( SELECT generate_series ( 1,20,2 ) as "odd", generate_series ( 2,20,2) as "even" ) ;
[用户在 YugabyteDB Community Slack 上发布的问题]
ysql_num_tablets
G 标志是否取代了 ysql_num_shards_per_tserver
G 标志?
ysql_num_tablets
目前在线文档中似乎没有。
所有 gflags 在源代码中也有解释。 ysql_num_tablets
在这里解释 https://github.com/yugabyte/yugabyte-db/blob/b5aa25686b8444d171bd8d89c57342bf4e5b12a7/src/yb/client/client.cc#L220.
它为 table 或索引 cluster-wide 定义了 tablets 的“总数”。而 ysql_num_shards_per_tserver
定义了每个 yb-tserver.
扩展已经给出的答案,因此如果您的 ysql_num_tablets = -1(默认),则
tablets 数量 = ysql_num_shards_per_tserver * 您拥有的 tserver 数量。
但是,如果在创建 table 的 DDL 语句期间您已经指定了 tablets 的数量,那么它优先于这些参数。 下面是创建一个 table 的示例,其中包含奇数列和偶数列 - 有 5 个分片。
CREATE TABLE yuga_mannual_split ( odd int, even int ) SPLIT INTO 5 TABLETS ;
那么如果要插入数据
INSERT INTO yuga_mannual_split ( SELECT generate_series ( 1,20,2 ) as "odd", generate_series ( 2,20,2) as "even" ) ;