目前,我们有每个超过100 GB的表。有人告诉我,如果我们有很多小桌子,这将更易于处理。这样的想法是,Cassandra在执行压缩和压缩时需要大约等于表大小的可用空间。如果使用较小的表,则在运行这些任务时,每个节点上所需的可用空间百分比会较小。
如果我所有的访问仅是通过大表中的键进行的,那么在我的数据库访问代码之前放置一些一致的哈希逻辑来确定哪个表包含什么键就不难了。
在Cassandra中使用软件中的许多小表是否有任何优势?通过更改群集的配置是否可以实现相同的优势?
是的,原则上,您可以通过将数据拆分为多个表或键空间来降低对可用磁盘的需求。
更好的选择可能是使用替代压缩策略。默认的“分层大小(STCS)”要求最多保留50%的可用磁盘空间。读取繁重的工作负载可能可以使用仅需要10%可用磁盘空间的Level Tiered(LTCS),而时间序列数据可以使用Date Tiered(DTCS),其中可通过设置窗口大小来调整可用磁盘空间需求。
在使用LTCS或DTCS之前,必须确保您的工作负载符合压缩策略。如果配置不正确或在错误的工作负载上使用,这两种都会带来严重的性能风险:使用LTCS编写繁重的工作负载不能很好地执行。尝试在单个节点上测试新的压缩策略,然后查看性能指标以验证该策略将满足性能期望。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句