0

我知道 Cassandra 在线时可以拍摄快照。这样做是在每个列族目录中创建一个快照子目录,并在其中放置列族的副本。但我不知道这是否可能,因为根本没有文件锁定,或者快照指令是否只是在复制文件之前等待文件解锁。

有谁知道 Cassandra 如何与数据目录中的文件交互?另外,行为操作系统是否依赖?

4

1 回答 1

6

首先,重要的是要意识到 Cassandra 数据目录中的所有文件都是一次性写入的。没有文件被修改,它被创建,然后最终与其他文件合并,然后被删除。(这就是 Cassandra 获得如此好的写入性能的原因,因为写入的所有磁盘访问都是顺序的。)

另一件事是拍摄快照不会复制文件,它会创建一个硬链接。这是有效的,因为文件是只读的,因此不需要复制。

因此,不需要文件锁定。

于 2013-03-21T09:57:10.680 回答