1. Cassandra 读操作
Read DataCassandra 读操作主要经过以下几个步骤:
(1)读memtable
(2)如果开启了row cache, 读row cache
(3)读Bloom Filter,Bloom filter用于检查当前查询的partition key位于哪一个SSTable中。
(4)如果开启了partition key cache,读partition key cache。partition key cache是partition index的缓存。
(5)如果partition key cache命中了partition key,直接从compression offset map中获取数据的地址。如果partition key cache没有命中,那么读取partition summary,读取partition summary之后从partition index(存储了partition key和其对应的offset)中获得数据的offset。partition summary是一个存储了部分partition index的内存数据结构,它存储了间隔X个的partition index,例如,X=20,那么partition index会存储第一个partition key,第20个partition key,第40个partition key。。。
(6)通过compression offset map获得数据的地址。
(7)从磁盘上的SSTable获得数据。
网友评论