为提高读取性能,我尝试使用较少的底层SSTables来进行LCS,因此我将sstable_size_in_mb设置为1280MB,这是一些文章建议的。这些文章指出,160MB的默认值很久以前由Cassandra核心团队在一台相当老旧且只有2GB RAM的服务器上选择。然而,我的担忧在于使用更高值的sstable_size_in_mb可能会产生什么影响。
我了解到LCS经常将所有L0中的SSTables与所有L1中的SSTables一起压缩,然后替换L1的整个内容。因此,每次替换L1时,硬件需求CPU/RAM和写入放大可能会随着sstable_size_in_mb的增加而增加。实际上,如果sstable_size_in_mb=1280MB,则每次需要合并10个大小为1280MB的表格与所有L0表格。即使要替换的SSTables数量似乎较少(一个L1 SSTables与10个L2 SSTables合并,然后替换这10个L2 SSTables),也可能对更高级别产生影响。
问题:
1.使用更高值的sstable_size_in_mb(如1280MB)可能通过减少涉及到CQL表的SSTables的数量来提高读取性能。然而,使用这样更高的值(如1280MB)对sstable_size_in_mb有什么其他影响?
2.如果使用更高值,是否有相应的配置可以调整(垃圾收集器、块缓存等),以使这些更大的SSTables的压缩和GC活动更好地实现更好的性能?
3.更主观的问题,您在部署中使用的sstable_size_in_mb的典型值是多少?
我了解到LCS经常将所有L0中的SSTables与所有L1中的SSTables一起压缩,然后替换L1的整个内容。因此,每次替换L1时,硬件需求CPU/RAM和写入放大可能会随着sstable_size_in_mb的增加而增加。实际上,如果sstable_size_in_mb=1280MB,则每次需要合并10个大小为1280MB的表格与所有L0表格。即使要替换的SSTables数量似乎较少(一个L1 SSTables与10个L2 SSTables合并,然后替换这10个L2 SSTables),也可能对更高级别产生影响。
问题:
1.使用更高值的sstable_size_in_mb(如1280MB)可能通过减少涉及到CQL表的SSTables的数量来提高读取性能。然而,使用这样更高的值(如1280MB)对sstable_size_in_mb有什么其他影响?
2.如果使用更高值,是否有相应的配置可以调整(垃圾收集器、块缓存等),以使这些更大的SSTables的压缩和GC活动更好地实现更好的性能?
3.更主观的问题,您在部署中使用的sstable_size_in_mb的典型值是多少?