Cassandra 卡桑德拉更新过程澄清

Cassandra 卡桑德拉更新过程澄清,cassandra,nosql,datastax,Cassandra,Nosql,Datastax,当我们执行读查询时,如果是真的,它将从SStable中检索数据。 然后,如果在压缩之前检索最后更新的数据,会发生什么? 换句话说,Cassandra如何检索memtable中但不在SStable中的数据?这是Cassandra读取路径图 有一些进程同时检查RAM和磁盘上的请求数据。当从多个路径找到数据时,将对其进行协调(以确保最新的时间戳)并返回 因此,为了回答您的问题,当SSTable中不存在请求的数据时,可以返回memtable的结果。以下是Cassandra读取路径图 有一些进程同时检

当我们执行读查询时,如果是真的,它将从SStable中检索数据。 然后,如果在压缩之前检索最后更新的数据,会发生什么?
换句话说,Cassandra如何检索memtable中但不在SStable中的数据?

这是Cassandra读取路径图

有一些进程同时检查RAM和磁盘上的请求数据。当从多个路径找到数据时,将对其进行协调(以确保最新的时间戳)并返回


因此,为了回答您的问题,当SSTable中不存在请求的数据时,可以返回memtable的结果。

以下是Cassandra读取路径图

有一些进程同时检查RAM和磁盘上的请求数据。当从多个路径找到数据时,将对其进行协调(以确保最新的时间戳)并返回


因此,为了回答您的问题,当SSTable中不存在请求的数据时,可以返回memtable的结果。

为什么Cassandra会检查这两个表?一旦在memtable中找到数据,这是最新的时间戳。那么为什么它也要检查sstable呢?如果在memtable中找不到数据,它将检查sstable是否合理。可以在查询中显式设置时间戳,或者旧数据可能会迟到,因此memtable中的数据可能比磁盘上的数据“旧”。为什么Cassandra会检查这两个表?一旦在memtable中找到数据,这是最新的时间戳。那么为什么它也要检查sstable呢?如果在memtable中找不到数据,它将检查sstable是否合理。可以在查询中显式设置时间戳,或者旧数据可能会迟到,因此memtable中的数据可能比磁盘上的数据“旧”。