pd server 和etcd之间什么关系?

pd server 和etcd之间什么关系?pd多了哪些功能或者优化。
比如etcd默认也是2379端口,肯定也不是重端口号了。当然不能简单的认为pdserver模块是etcd的二次开发。
期待大拿们,使用简单易懂的语言 描述出两者的区别和联系。

etcd外面包了一层 = pd :upside_down_face:

1 个赞

原文解释是 PD supports fault-tolerance by embedding etcd.
在pd中嵌入了etcd,所以端口都一样

2 个赞

PD 通过集成 etcd ,自动的支持 auto failover,无需担心单点故障问题。同时,PD 也通过 etcd 的 raft,保证了数据的强一致性,不用担心数据丢失的问题
在 etcd 里面,默认要监听 2379 和 2380 两个端口。2379 主要是 etcd 用来处理外部请求用的,而 2380 则是 etcd peer 之间相互通信用的

1 个赞

我认为,这俩本身不具有可比性,PD是TiDB数据库的“大脑”,负责TiDB数据库的调度,但是PD自身有些数据是需要持久化的,所以得找再一个数据库来持久化数据,因为Etcd本身是分布式的KV数据库,而且是golang写的,容易集成到PD中,所以最终选型Etcd

所以PD与Etcd的关系就如同TiKV与Rocksdb的关系

1 个赞

我理解是主要的因为pd把etcd给embed了吧,其实如果做成分离的是也可以的,但是部署就会更麻烦,就跟之前hadoop namenode跟zookeeper的关系,可以说namenode用了zk的功能,但不能说是在zk上面包了一层

pd 内嵌了 etcd ,多的功能就是 PD 的功能啊,调度、TSO 生成,Region 元信息存储等

一样的,一个包含了一个

PD 集成 etcd 自动的支持 auto failover.

pd server集成了etcd,由于etcd实现了Raft共识算法,以此来保证服务的高可用性和数据一致性。同时借助etcd的故障检测和恢复机制,PD能够自动处理节点故障并进行相应的重新配置和数据迁移,从而实现自动的failover

原文解释是 PD supports fault-tolerance by embedding etcd.
在pd中嵌入了etcd,所以端口都一样

PD 使用 etcd 作为存储后端来保存集群的元信息和调度信息。
PD 将集群的拓扑结构、Region 的分布信息、调度策略等数据存储在 etcd 中,以保证数据的一致性和持久性。

pd多了哪些功能或者优化?

  1. 集群元信息管理:PD 负责管理 TiDB 集群的拓扑结构、Region 的分布信息、副本的调度等元信息,确保集群的稳定运行。
  2. 调度策略:PD 实现了多种调度策略,如 Leader 的调度、Region 的调度、副本的调度等,以实现负载均衡和故障恢复。
  3. 自动化运维:PD 支持自动化的运维功能,如自动故障转移、自动调度副本等,减轻运维人员的工作负担。
  4. 弹性伸缩:PD 支持集群的弹性伸缩,可以动态调整集群的规模和配置,以适应不同的工作负载需求。
  5. 故障恢复:PD 能够快速检测并处理集群中的故障,如节点宕机、Region 的异常状态等,保证集群的高可用性和稳定性。

pd嵌入了etcd

我理解是包含关系

我理解就是借鉴一下