Cassandra启动时间是否取决于提交日志文件的数量?

lokaqttq  于 2022-10-21  发布在  Cassandra
关注(0)|答案(1)|浏览(130)

我重新启动了我的Cassandra,但没有耗尽节点,现在是Cassandr启动它的时候。开始接受客户端连接花费了超过20-25分钟。Cassandra正在读取提交日志文件。
那么,Cassandra的启动时间是否取决于提交日志文件?
注意:运行单节点Cassandra v4.0。

noj0wjuj

noj0wjuj1#

对如果节点重新启动时没有进行“排水”操作,它会将其数据与未处理的commitlog文件进行协调。任何尚未提交到磁盘的数据都将在启动时写入。
除了与未处理的commitlog文件进行协调之外,还有其他因素会导致Cassandra启动时间的增加吗?
嗯,有几个内存结构需要在启动时构建(如索引摘要)。其他的东西,比如准备好的语句缓存也会被加载。处理commitlog也会触发压缩,这也会降低速度。
当然,还会发生一些额外的事情,但是处理commitlog是最耗时的。
能否根据commitlog文件的大小计算出cassandra启动所需的总时间?
理论上是的。但它取决于许多不同的因素,这些因素取决于文件的大小、平台和底层磁盘硬件的抽象。我看到一个节点从大约100个8GB的commitlog文件开始需要20分钟。但这对你来说可能不同。我会在另一个终端/ssh会话中使用commitlog目录,同时它开始感觉到时间:

watch -n5 "ls data/commitlog/ | wc -l"

相关问题