有没有一种方法可以控制SSTable的最大大小,例如100 MB,这样当CF实际上有超过100MB的数据时,Cassandra会创建下一个SSTable?Cassandra控制SSTable大小
6
A
回答
6
不幸的是,答案并不那么简单,您的SSTables的大小将受到您的压实策略的影响,并且没有直接的方法来控制您的最大sstable大小。
当memtables作为SSTables刷新到磁盘时,最初创建SSTables。这些表的大小最初取决于您的memtable设置和堆的大小(memtable_total_space_in_mb
是一个大影响者)。通常这些SSTable非常小。作为名为compaction的过程的一部分,SSTables合并在一起。
如果你使用尺寸分层压实策略,你有机会拥有非常大的SSTables。当至少有min_threshold
(默认4个)大小相同的sstables组合成一个文件,使数据失效并合并密钥时,STCS会将SSTables组合成小型压缩。这有可能在一段时间后创建非常大的SSTables。
使用整平压实策略有一个sstable_size_in_mb
选项,该选项控制SSTables的目标大小。一般情况下,SSTables将小于或等于此大小,除非您拥有包含大量数据的分区键('宽行')。
我还没有用Date-Tiered Compaction策略做过很多实验,但是它的工作原理类似于STCS,因为它合并了大小相同的文件,但它按时间顺序将数据保存在一起,并且具有停止压缩的配置旧数据(max_sstable_age_days
)这可能很有趣。
关键是要找到最适合您数据的压缩策略,然后调整最适合您的数据模型/环境的属性。
您可以阅读关于压缩here的配置设置的更多信息,并阅读this guide以帮助您了解STCS或LCS是否适合您。
相关问题
- 1. Cassandra sstable文件名格式
- 2. Cassandra SSTable跨节点的列系列
- 3. 如何降低cassandra升级SSTable时间
- 4. Cassandra访问控制
- 5. 更改控制台大小
- 6. 触摸屏控制大小
- 7. 控制轴大小matplotlib pyplot
- 8. 控制图像大小
- 9. 动态控制IFrame大小
- 10. 控制OverlayItem的大小
- 11. winforms控件大小限制
- 12. 如何限制密钥空间cassandra的最大大小?
- 13. Cassandra的最大密钥大小
- 14. 什么使CommitLog比在Cassandra中写入SSTable更快?
- 15. 什么是SSTable?
- 16. 我该如何控制cassandra复制?
- 17. cassandra无法存储跨分区大小限制的关系吗?
- 18. Cassandra数据库行大小是否受可用内存限制?
- 19. 控制调整大小时调整图像的大小c#
- 20. Cassandra存储vs内存大小调整
- 21. NGINX图像调整大小控制器
- 22. Node.js - 控制POST请求的大小
- 23. WP7手指友好的控制大小
- 24. WPF和控制自动大小
- 25. 如何控制各种日志大小
- 26. 控制Liferay中Portlet的大小
- 27. 调整边框控制大小
- 28. 在gtk中控制按钮/ hbox大小
- 29. 获取当前控制台大小
- 30. 访问报告大小无法控制!
还应该补充一点:在SSTable大小方面有一个令人满意的介质,你不希望你的SSTables太小,因为它会创建大量的读取数据,因为它使得它更容易行在SSTables之间传播。您的sstable应该多大程度上取决于您的环境和您的要求,因此调整和测试最适合您的最佳方案可能会很好。 – 2015-04-01 13:58:46
感谢您的信息。我在哪里指定'sstable_size_in_mb'?我试图把它放在conf/cassandra.yaml中的'sstable_size_in_mb:40',但cassandra启动失败,出现错误 org.apache.cassandra.exceptions.ConfigurationException:无效的yaml。请从您的cassandra.yaml – RRM 2015-04-01 14:17:47
@RMadhav中移除属性[sstable_size_in_mb],很可能您的表仍在使用SizeTieredCompactionStrategy。此选项仅受LeveledCompactionStrategy支持,您可以使用以下CQL命令更改压缩策略:ALTER TABLE tablename WITH compaction = {'class':'LeveledCompactionStrategy','sstable_size_in_mb':40}。我建议使用160MB的默认sstable大小,因为这是cassandra团队发现的最理想和经验丰富的发言,拥有许多微小的SSTables不利于读取性能。 – 2015-04-01 14:20:32