Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 基于memtables的cassandra搜索机制_Search_Nodes_Cassandra 3.0 - Fatal编程技术网

Search 基于memtables的cassandra搜索机制

Search 基于memtables的cassandra搜索机制,search,nodes,cassandra-3.0,Search,Nodes,Cassandra 3.0,任何人都可以提供一些关于在cassandra中搜索过程是如何发生的,以及在搜索过程发生时如何从memtables中识别特定密钥的信息吗 是否像列键存储在memtables中,然后如果匹配,则进入SSTables以收集列数据?如果是,搜索模式是否也会搜索每个memtable或任何搜索正确memtable的机制 搜索是由协调器节点完成的,还是由协调器节点将搜索转移到右边的节点,在那里可以通过cassandra中的任何机制找到数据?cassandra中的读取机制非常神奇。 Cassandra应该组合活

任何人都可以提供一些关于在cassandra中搜索过程是如何发生的,以及在搜索过程发生时如何从memtables中识别特定密钥的信息吗

是否像列键存储在memtables中,然后如果匹配,则进入SSTables以收集列数据?如果是,搜索模式是否也会搜索每个memtable或任何搜索正确memtable的机制


搜索是由协调器节点完成的,还是由协调器节点将搜索转移到右边的节点,在那里可以通过cassandra中的任何机制找到数据?

cassandra中的读取机制非常神奇。
Cassandra应该组合活动memtable和潜在的多个sstable的结果
从Cassandra读取记录时,如果行缓存中存在记录,则无需查看任何其他位置即可从行缓存执行读取。这是Cassandra中可用的最快读取路径。
Cassandra首先检查Bloom过滤器,以发现哪些SSTables可能具有请求分区数据。Bloom筛选器通过缩小密钥池来加快分区密钥查找过程。
如果Bloom筛选器不排除SSTable,Cassandra将检查分区密钥缓存 但是,如果在密钥缓存中找不到它,即如果分区密钥不在密钥缓存中,Cassandra将查看分区摘要,它只是分区索引的一个采样。分区摘要有助于跳转到分区索引中的特定偏移量

一旦进入分区索引,我们现在就有了SSTable中分区键的偏移量,我们可以直接从SSTable的偏移量中获取(到memtable中)记录

Cassandra始终参考压缩偏移量,以便能够从压缩块读取数据

现在,由于Cassandra中的分区数据存在于多个SSTABLE中,Cassandra将时间戳附加到记录的每个版本(特别是每个列/字段),并使用此时间戳合并来自不同SSTABLE和memtable的记录,以显示完整记录的当前版本

因此,对于您的答案,实际上协调员首先从首选节点(它从八卦状态进行评估)询问查询。该节点执行上述操作。
有关更多信息,请阅读


希望能有帮助

cassandra中的读取机制非常惊人。
Cassandra应该组合活动memtable和潜在的多个sstable的结果
从Cassandra读取记录时,如果行缓存中存在记录,则无需查看任何其他位置即可从行缓存执行读取。这是Cassandra中可用的最快读取路径。
Cassandra首先检查Bloom过滤器,以发现哪些SSTables可能具有请求分区数据。Bloom筛选器通过缩小密钥池来加快分区密钥查找过程。
如果Bloom筛选器不排除SSTable,Cassandra将检查分区密钥缓存 但是,如果在密钥缓存中找不到它,即如果分区密钥不在密钥缓存中,Cassandra将查看分区摘要,它只是分区索引的一个采样。分区摘要有助于跳转到分区索引中的特定偏移量

一旦进入分区索引,我们现在就有了SSTable中分区键的偏移量,我们可以直接从SSTable的偏移量中获取(到memtable中)记录

Cassandra始终参考压缩偏移量,以便能够从压缩块读取数据

现在,由于Cassandra中的分区数据存在于多个SSTABLE中,Cassandra将时间戳附加到记录的每个版本(特别是每个列/字段),并使用此时间戳合并来自不同SSTABLE和memtable的记录,以显示完整记录的当前版本

因此,对于您的答案,实际上协调员首先从首选节点(它从八卦状态进行评估)询问查询。该节点执行上述操作。
有关更多信息,请阅读


希望能有帮助

是的,这是关于行缓存和bloom filter的最佳信息吗?还是您想建议一些关于此主题的有用链接,特别是bloom filter以及如何根据流言选择最佳SSTable?您可以在插入大块数据时查看这些,它是随机存储的。。是内置的还是线程生成是随机的?数据存储是基于节点间的令牌分布。是的,刚才我检查过了。。散列函数将生成随机令牌,数据存储将是随机的..是的,这是关于行缓存和bloom筛选器的最佳信息,还是您想建议一些关于此主题的有用链接,特别是bloom filter以及如何根据流言选择最佳SSTable在插入大块数据时,您可以通过它进行处理,它是随机存储的。。是内置的还是线程生成是随机的?数据存储是基于节点间的令牌分布。是的,刚才我检查过了。。散列函数将生成随机令牌,数据存储将是随机的。。