Cassandra在读/写期间是否锁定数据目录中的文件?

kla*_*ose 0 filesystems operating-system file cassandra

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

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

Ric*_*ard 6

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

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

因此,不需要文件锁定.