cluster-computing - memSQL 如何将分区添加到现有的分片表/数据库?

标签 cluster-computing scaling singlestore

将节点(叶节点或聚合器)添加到 memSQL 集群非常简单:我编辑了 memsql_cluster.json 并重新运行 memsql-cluster 设置。问题是向现有表添加分区。这里的要点是向上扩展:需要添加更多行,但已经耗尽了原始集群中的可用内存。

我试过,例如:

mysql> create partition DMP:32 on 'ec2-X-Y-Z.compute-1.amazonaws.com':3306;

ERROR 1773 (HY000): Partition ordinal 32 is out of bounds. It must be in [0, 32).

mysql>

阅读 memsql 文档,我找不到任何更改分区数的 ddl 选项。我不想删除并重新创建这些表。关于如何做到这一点有什么想法吗?

谢谢!

最佳答案

当内存已经耗尽时,您不能向内存数据库中添加更多行。也就是说,您可以横向扩展(即添加更多叶节点)。

您可以向 MemSQL 集群添加更多叶节点,然后运行 ​​rebalance_partitions 以在更大的集群中均匀分布现有分区。这将允许您的每个分区在集群中占用更多空间,从而允许您横向扩展。

如果您只想添加更多分区,您可以使用 mysqldump 导出 MemSQL 模式和数据,重新创建具有更多分区的数据库,然后将模式和数据加载回现在具有更多分区的数据库中。

在此处了解有关 rebalance_partitions 的更多信息: http://docs.memsql.com/docs/latest/ref/REBALANCE_PARTITIONS.html

关于cluster-computing - memSQL 如何将分区添加到现有的分片表/数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22966015/

相关文章:

mongodb - 为服务/数据/缓存部署多个实例的好处

仅在 CPU 上使用 CUDA 的 Tensorflow 运行版本

amazon-web-services - 在EC2上幸存的Digg/Reddit效应

image - UISegmentedControl 图像缩放

MySQL/memSQL 在 BETWEEN 连接条件下不使用索引

linux - 如何在没有段错误的情况下在 Google Compute Engine 上运行 R

node.js - 如何在 socket.io-client 上使用集群?

ios - 如何正确自动缩放 UIButton 和标题文本?

singlestore - 单服务器集群上的 MemSql 叶子向下

mysql - MemSQL - 跨主节点和叶节点清除计划缓存