存储类的应用,在扩容更多的节点后,数据是否应该被重新分配以保持平衡?

62 天前
 RedisMasterNode

比如有 5 个节点,哪一天因为容量不太够了(例如已经达到 70%了)想再加 5 个节点,那么加完之后:

如果要重新分配:

如果不重新分配:

咋整?

776 次点击
所在节点    问与答
6 条回复
povsister
62 天前
存储层单独抽象出来,不要和业务耦合。
rebalance 过程要可观测可预测,做好限速。

正经的存储中间件都是必须考虑 rebalance 的,你这个大概率手搓的吧。
edenzhang
62 天前
无他,做限流,做好跟业务 IO 的并发控制,优先保证业务

这是分布式存储中的典型场景了,设计初期就应该要考虑到
RedisMasterNode
62 天前
Attach 不了,在评论里补个上下文:
是时序数据,例如监控指标,通常这些都会在一定时间后被删除(例如 3 个月,6 个月)

有这个前提下考虑:
- 做重平衡很重,而且如果没有重平衡其实数据过段时间自然就会平衡

但是很多人又想要这样的功能(思考 ing

实际上可以遇见的是,做出来算是一个复杂的特性,容易做错不说,错了肯定会被投诉,而且在上下文里总是觉得其实用户并不是真的需要这个功能,只是重平衡之后可以缓解容量焦虑(当然,也接受别人的不同观点,能理解)
snipking
62 天前
参考 mongodb sharding ,支持重新平衡,可以设置什么时间到什么时间允许进行重新平衡
Akiya
62 天前
任何支持分区的存储系统都做不到在线 rebalance ,你要业务不断,只能另起一个存储系统同步数据,数据同步完成之后直接把业务切换过来,这样可以做到最短的离线时间
txwdcom
62 天前
@Akiya ceph 了解下,重平衡再正常不过的操作了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1058529

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX