允许过滤Cassandra有什么影响?



根据官方的Cassandra博客,允许过滤效率高。但是,如果出于某种原因必须使用此类查询,那么对使用Cassandra获取数据的其他应用程序会有什么影响?只有忙于为我的查询提取行的线程会很慢,还是整个Cassandra会很慢,因此,从Cassandra获取数据的所有其他应用程序都会使他们的响应缓慢?

它可能会影响整个节点。围绕它的一个问题是,您的一个限制为10的查询不仅会读取10个记录并返回,而且还会(可能(很多数据。可以有效地允许过滤查询,这些查询诸如Spark Driver(令牌有限的查询每个令牌范围或分区内(可以做到的。我非常强烈建议不要尝试。起初它可能起作用,但是您的运营糟糕团队会诅咒您的名字。

使用更快的磁盘,OBJ分配,因为这是不张力的,会导致严重的 GC开销。这与使用队列或大量墓碑所看到的问题非常相似UP G1 Younggen比率(。

如果像正常范围查询一样跨分区,协调员将尝试估计其需要读取的范围,并以某些有限的并发性来捕捉它们的复制品。这是一个粗略的估计,因为它只有自己的数据可以推断出来,但是当数据进一步过滤时,而不仅仅是"范围内的分区数"时,它可能是错误的和低估的。很可能会一次查询一个范围,如果不满足,请查询下一个副本集范围。使用vnodes,这可能是一个很长的列表,然后依次走动它们可能不会在超时内完成。幸运的是,这将主要影响一个查询,但是从> 1 QUERY中的每个副本设置的每个副本中,它仍然从本质上读取整个数据集磁盘。如果您制作100/sec,则可能会软管。

最新更新