写cassandra的路径:
步骤1 - 立即在commitlog中写入数据。 步骤2 - 满足阈值后,将CommitLog刷新为Memtable 步骤3 - 在Memtable中满足大小阈值后,数据将作为SSTable刷新到磁盘中。
在上述过程中,如果数据在步骤1本身更新,那么它是否需要任何特殊处理。
例如,我们有员工专栏系列。插入10行后,数据开始由程序写入列族,第3行发出更新,静态数据不刷新到Memtable中。
Cassandra会将此方案作为崩溃恢复处理吗?
请分享对此的看法。
答案 0 :(得分:1)
这是Cassandra的写路径
在刷新到磁盘之前发生更新的任何时间内,memtable会捕获更新的记录以及commitlog附加的更新。现在如果发生了崩溃;在重新启动Cassandra期间,所有这些记录都从commitlog重放,因此保证了写入/更新的持久性。