【发布时间】:2021-01-09 16:24:34
【问题描述】:
Cassandra 是否在写入提交日志后立即确认写入?还是等待写入也写入 memtable 以便向客户端发送成功?
【问题讨论】:
标签: cassandra
Cassandra 是否在写入提交日志后立即确认写入?还是等待写入也写入 memtable 以便向客户端发送成功?
【问题讨论】:
标签: cassandra
将数据写入 commitlog 和 memtable 即表示写入成功。 同样对于 rf > 1 的多节点集群,这取决于您为写入设置的一致性级别。
【讨论】:
写入一致性级别决定了必须有多少副本节点响应成功确认才能将写入视为成功。 成功意味着数据已写入提交日志和内存表。
这是有道理的,因为可能无法将数据写入 memtable,例如,如果所有 memtable 仍在刷新,并且没有剩余空间可用于新的写入 - 在这种情况下,Cassandra 将返回错误.如果机器断电或进程崩溃,写入提交日志只会降低您丢失数据的机会。
【讨论】: