gpt4 book ai didi

cassandra - Cassandra(或 Scylla)如何对聚类列进行排序?

转载 作者:行者123 更新时间:2023-12-04 22:54:55 30 4
gpt4 key购买 nike

Cassandra(或 Scylla)的好处之一是:

When a table has multiple clustering columns, the data is stored in nested sort order. https://docs.datastax.com/en/dse/6.0/cql/cql/cql_using/whereClustering.html



因此,我认为以相同的排序顺序读回数据应该非常快。

如果数据的写入顺序与聚类列指定的顺序不同,那么 Cassandra(或 Scylla)实际上何时对数据重新排序?

是在 memtables 刷新到 SSTables 时吗?

如果 memtable 已经被刷新,我添加了一条新记录,该记录应该在现有 SSTable 的记录之前?

它是否会使磁盘上的数据暂时失序并在压缩期间重新排序?

如果是这样,需要采取哪些步骤来确保读取顺序正确?

最佳答案

数据总是在任何给定的 sstable 中排序。

当一个 memtable 被刷新到磁盘时,这将创建一个新的 sstable,它在自身内部进行排序。这很自然地发生,因为内存表按排序顺序存储数据,因此此时不需要额外的排序。排序发生在插入到内存表中。

使用自然排序的读取必须从与读取相关的所有 sstable 中读取,将多个排序结果合并为一个排序结果。这种合并是在内存中即时发生的。

压缩,当它开始时,将用一个替换多个 sstables,创建一个合并的流,就像常规读取一样。

这种存储数据的技术被称为 log-structured merge tree .

关于cassandra - Cassandra(或 Scylla)如何对聚类列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53022833/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com