Postgres-XC: Waiting For Online Data Redistribution

Postgres-XC 开发组正在计划开发 “online data redistribution” 功能,即可以实现 Postgres-XC 数据节点的数据重分布,也可以更改表的 DISTRIBUTE 类型,例如,replicated 模式改成 hash 模式。这是个非常有效的功能,例如,在增加了数据节点后,为了提高性能,可能需要将表的数据重新分布到所有数据节点,也可能由于某种原因,需要更改表的 DISTRIBUTE 类型,这个模块还在设计阶段。

Postgres-XC 数据重分布设想

  • fetch all the data of the table to be redistributed on Coordinator
  • Truncate the table
  • Update the catalogs to the new distribution type
  • Redistribute the data cached on Coordinator

Postgres-XC 数据重分布预计优化

  • Save materialization if it is not necessary (new distribution set to round robin, replication)
  • Truncate the table on a portion of nodes if a replicated table has its subset of nodes reduced
  • COPY only necessary data for a replicated table to new nodes if its subset of nodes is increased
  • And a couple of other things
    备注:在步骤 1 的初步设想成功实现后, Postgres-XC 项目组计划优化上面列举出来的事项。

数据重分布命令

1
2
3
4
5
ALTER TABLE  
DISTRIBUTE BY { REPLICATION | ROUND ROBIN | { [HASH | MODULO ] ( column_name ) } }
TO { GROUP groupname | NODE ( nodename [, ... ] ) }
ADD NODE ( nodename [, ... ] )
DELETE NODE ( nodename [, ... ] )

备注:只要执行一条 “ALTER TABLE 。。。” SQL ,数据节点的数据就会自动的实现重分布,可以实现将某张表现有数据重新布到新的数据节点;也可以删除某个数据节点的数据,还可以更改表的 DISTRIBUTE 类型,并根据新的 DISTRIBUTE 类型重新分布表数据,功能比较强大。

参考

备注:对 PostgreSQL -XC 有兴趣的朋友,可以参考 Michael Paquier 上面的 BLOG。

最后推荐和张文升共同编写的《PostgreSQL实战》,本书基于PostgreSQL 10 编写,共18章,重点介绍SQL高级特性、并行查询、分区表、物理复制、逻辑复制、备份恢复、高可用、性能优化、PostGIS等,涵盖大量实战用例!

购买链接:https://item.jd.com/12405774.html

PostgreSQL实战
感谢支持!
0%