如果我有32台内置32核CPU和128G内存的phsical服务器,我想构建一个VoltDB集群,其中所有32台服务器的K-Safefy = 2,每台服务器有32个分区,因此我们将获得VoltDB具有256个可用分区的集群以保存数据。
看起来分割表的分区太多,尤其是当某些表没有大量记录时。但如果我们选择表的副本,那么表格的副本就会太多。
如果我们从一开始就使用几台服务器构建一个小得多的集群,那么担心集群将随着业务增长而不得不逐步扩展。实际上,我并不知道当集群水平扩展到更多节点时,VoltDB将如何重新组织数据。
你有评论吗?赞赏。
答案 0 :(得分:0)
将sitesperhost设置为小于32可能更为理想,因此有些%的内核可以自由运行导出或数据库复制等子系统的线程,或者处理非VoltDB进程。通常在8-24之间的某个位置是最佳数字。
VoltDB根据sitesperhost,主机数量和kfactor创建逻辑分区。如果您需要稍后扩展,可以向集群添加其他节点,这将增加分区数量,VoltDB将逐步自动地将现有分区中的数据重新平衡到新分区。如果你有kfactor>你必须一起添加多个服务器0.对于kfactor = 2,您将以3个为一组添加服务器,以便为新分区提供自己的冗余。
您的数据基于记录的分区键值的哈希值分布在逻辑分区上,或者用于将过程执行路由到分区的相应输入参数。通过这种方式,客户端应用程序代码不需要知道分区数。每个记录分配到哪个分区并不重要,但您可以假设共享相同分区键值的任何记录都将位于同一分区中。
如果选择好分区键,它们应该是具有高基数的列,例如ID列。这将在分区中均匀分布数据和过程执行工作。
通常,VoltDB群集的大小取决于RAM要求,而不是性能需求,因为即使是非常小的群集,性能也非常高。
您可以通过info@voltdb.com与VoltDB联系,或者在http://chat.voltdb.com询问更多问题,如果您想获得评估方面的帮助,或者与专家讨论群集规模和规划。
免责声明:我为VoltDB工作。