我想为基准测试建立一个本地的 TiDB 集群。以下是我的一些疑问:
- 多个 TiDB 实例可以连接到同一个 PD 和 TiKV 集群吗?(我们在这个官方生产部署文档中只注意到一个 TiDB 实例。)
- 如果为正,提交到不同 TiDB 实例的事务是否满足快照隔离级别?
- 在存储层,每个 TiKV 节点是否保留了整个数据集?(复制因子等于 TiKV 节点数?)
- 如果是否定的,如何配置复制因子?
我想为基准测试建立一个本地的 TiDB 集群。以下是我的一些疑问:
多个 TiDB 实例可以连接到同一个 PD 和 TiKV 集群吗?
是的,您可以根据需要添加任意数量的 tidb-servers。
如果为正,提交到不同 TiDB 实例的事务是否满足快照隔离级别?
是的,TiDB 是一个分布式数据库,默认提供快照隔离。并且来自不同 tidb-server 的不同事务也可以满足快照隔离级别。TiDB 使用Percolator 事务模型来实现分布式事务。更多实现细节可以参考这篇文章:https ://pingcap.com/blog/2016-11-17-mvcc-in-tikv/
在存储层,每个 TiKV 节点是否保留了整个数据集?(复制因子等于 TiKV 节点数?)
不,TiDB 在内部将表分片为基于范围的小块,我们称之为“区域”。每个区域默认大小约为 100MiB。复制因子默认为 3。集群中的每个 tikv-server 拥有数十万个区域。
如果是否定的,如何配置复制因子?
PD 读取配置文件 (conf/pd.yml) 并使用其中的 max-replicas 配置。更详细的可以参考https://github.com/pingcap/docs/blob/master/FAQ.md#is-the-number-of-replicas-in-each-region-configurable-if-yes-如何配置它