进行物化视图后,IOPS增加

时间:2019-04-13 05:31:25

标签: amazon-web-services cassandra provisioned-iops

最近我们将二级索引移到了Cassandra中的Materialized视图中,这是因为SASI索引由于我们的频繁更新而崩溃了,而且我们正陷入每个索引最多只能有五个条目的SASI稀疏索引的限制。 之前我们的桌子有一个特定的实例化视图 基本表:

CREATE TABLE IF NOT EXISTS chats (
    user_id bigint,
    peer_id bigint,
    msg_id text,
    text text,
    timestamp timestamp,
    updated_at timestamp,
    PRIMARY KEY (user_id, peer_id, msg_id)
) WITH CLUSTERING ORDER BY (msg_id ASC) 

和实例化视图:

CREATE MATERIALIZED VIEW IF NOT EXISTS chats_by_updated AS
    SELECT * FROM chats
    WHERE user_id IS NOT NULL AND updated_at IS NOT NULL
    PRIMARY KEY (user_id, updated_at, peer_id, msg_id)
    WITH CLUSTERING ORDER BY (updated_at ASC, peer_id ASC, msg_id ASC)

我们决定添加另一个实例化视图

 CREATE MATERIALIZED VIEW IF NOT EXISTS chats_by_updated AS
    SELECT * FROM chats
    WHERE user_id IS NOT NULL AND updated_at IS NOT NULL
    PRIMARY KEY (user_id, peer_id, updated_at, msg_id)
    WITH CLUSTERING ORDER BY (updated_at ASC, peer_id ASC, msg_id ASC)

更改顺利进行了一天,然后其中一个节点开始随机运行。我说的是16核机器上3k IOPS的平均42个负载。其他所有节点在〜10 wa stat下都可以正常工作,除了这个特定节点的顶部约为〜70 wa。

检查AWS EBS仪表板,我发现该节点的EBS队列长度约为30,并且读写延迟约为15 ms。 模式是相等部分的读写。写入是具有约15列的恒定行流。

这令人困惑,因为针对多个MV仅发出一个选择。读取吞吐量不应增加。我不知道是否由于添加更多MV或其他问题而发生这种情况。 我想念什么?

0 个答案:

没有答案