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 |
ALTER TABLE |
备注:只要执行一条 “ALTER TABLE 。。。” SQL ,数据节点的数据就会自动的实现重分布,可以实现将某张表现有数据重新布到新的数据节点;也可以删除某个数据节点的数据,还可以更改表的 DISTRIBUTE 类型,并根据新的 DISTRIBUTE 类型重新分布表数据,功能比较强大。
参考
备注:对 PostgreSQL -XC 有兴趣的朋友,可以参考 Michael Paquier 上面的 BLOG。
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/237880.html