【发布时间】:2023-03-26 19:58:01
【问题描述】:
- 想知道 mv 对基表的影响。它会减慢基表吗?它什么时候开始写入 mv 就像它同时写入基表和 mv 一样?
- 如果我有 local_quorum 的 CL 并且 RF=3,客户端是否必须等到它写入 mv 才能获得 ack。
- 基表和 mv 中涉及哪种锁会影响基表的延迟
【问题讨论】:
标签: cassandra
【问题讨论】:
标签: cassandra
物化视图被视为experimental。 3.0、3.11 和 4.0 的下一个补丁版本将包括 CASSANDRA-13959,它将在创建物化视图时记录警告,并引入一个 yaml 设置,允许操作员禁用它们的创建。 所以最好避免使用它们。
正如最初的建模课程所说,将数据复制到不同的表中,以便通过不同的分区键进行查询。
但无论如何要回答你原来的问题
1.想知道 mv 对基表的影响。它会减慢基表吗?它什么时候开始写入 mv 就像它同时写入基表和 mv 一样?
对于物化视图,存在先读后写的开销。每次对基表的写入,都涉及从基表读取 MV 中相应分区键的内容。然后它进一步使用基于日志的方法写入 MV,以确保在应用于基表时写入也会在 MV 中提交。所以对于带有 MV 的表,写入会比较慢。
2) 如果我有 local_quorum 的 CL 并且 RF=3,客户端是否必须等到它写入 mv 才能获得确认。
客户端不会等待 MV 写入,因为它由 Cassandra 单独处理,基于日志从基表写入 MV。一致性保证仍然只适用于基表。
3) 基表和 mv 中涉及哪种锁会影响基表的延迟
Cassandra 不使用锁定,而是使用批处理日志来保证写入发生在基表中的 MV 上。
关于对 MV 的性能影响的进一步reference。
【讨论】: