Ano*_*ous 1 performance cassandra
我对cassandra有一点经验但我有一个关于cassandra读取过程的查询.
假设我们的cassandra db中的给定表有7个sstables如果我们执行任何未在memtable中缓存的读取查询,那么Cassandra将查看sstables.我的问题是: -
在这个过程中,cassandra会将所有sstables(7)加载到memtable中,或者它只是查看所有sstables并将在memtable中加载相关的行而不是加载所有sstables?
提前感谢你!! 请纠正我如果我解释错了.
如果有人可以解释/提及更好的资源来了解sstables的工作,这也会很棒.
在此过程中cassandra将加载所有sstables(7)
不,卡桑德拉不会加载全部7 SSTables.每个SSTable都有一个BloomFilter(内存中)告诉可能有数据SSTable.
如果BloomFilter指示在SSTable中存在数据的可能性,它会查看partition key cache并获取compression offset map(内存中)以检索具有我们正在查找的数据的压缩块.
首先,我认为这个Cassandra Reads链接应该有助于并以图形方式描绘流程.从上方链接捕获读取路径下方以便快速参考.
还有一件事,还有一个包含热行(经常访问)的行缓存,如果在row cache.中找到,这将不会导致命中/加载SSTable .
通过此rowcache链接了解行缓存和分区键缓存.
Jeff Jirsa分享的另一篇精彩演讲,了解Cassandra表选项.真的值得通过它.
另一方面,有compaction定期发生的事情是减少SSTable的数量并删除基于的行tombstones.
| 归档时间: |
|
| 查看次数: |
685 次 |
| 最近记录: |