Vertica 集群扩展和缩减支持¶
Vertica 数据库具有弹性扩展/缩减功能,但目前 Trove 的 Vertica 客体代理不支持这些功能。
Launchpad 蓝图:https://blueprints.launchpad.net/trove/+spec/vertica-grow-shrink-cluster
问题描述¶
目前 Vertica 客体代理并未利用 Vertica 底层弹性能力。这将允许用户在需要容纳更多数据或提高查询性能时扩展集群,而缩减规模有助于避免过度配置相关的成本。
提议的变更¶
由于 Vertica 从一开始就被设计为集群系统,因此与其他数据存储相比,添加和删除节点相对简单。
配置¶
将为 vertica 添加一个最小 k-safety 配置选项,允许操作员决定他们期望的容错级别。
数据库¶
无
公共 API¶
以下公共 API 调用将提供给 Vertica 数据存储。
集群扩展 - 现有的调用负载不会更改。实现集群扩展功能会将新实例添加到现有集群。
集群缩减 - 现有的调用负载不会更改。实现集群缩减功能将允许用户从其现有集群中删除实例。
公共 API 安全¶
无
Python API¶
无
内部 API¶
无。
Guest Agent¶
为了实现更高效的扩展和缩减,将在 Vertica 上启用本地数据分段 1。 这会在节点上创建额外的本地逻辑数据段,以便更轻松地在节点之间传输数据。本地分段的缺点是对于包含大量投影的表来说效率较低 2。
扩展¶
扩展集群涉及两个主要步骤 3。
首先,必须将新的“主机”添加到集群,在 trove 的情况下,这意味着一个新的实例。然后调用 update_vertica 脚本,类似于 install_vertica 脚本,该脚本处理 vertica 二进制文件的安装。
其次,必须将主机作为节点添加到数据库。调用 adminTools 实用程序,并使用 db_add_node 命令将主机注册到数据库。
备选方案¶
Trove 可以强制执行最低 k-safety 级别以确保集群的完整性,但这可能会过于严格。
升级影响¶
无。
依赖项¶
无
测试¶
将根据需要添加或修改集成测试,以测试使用新的 int-test 框架进行的扩展/缩减。
文档影响¶
应更新文档,以反映 Vertica 集群支持扩展和缩减这一事实。
Dashboard 影响 (UX)¶
UI 将进行一些小的更改,以支持集群的扩展和缩减按钮。
附录¶
无