如何从cassandra的提交日志中提取信息?

csga3l58  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(395)

我有一个从cassandra中提取的提交日志文件(commitlog-7-1593076543244.log),但是这个文件似乎是压缩的,就像一个二进制文件。当我用“utf-8”编码的vscode打开它时,这里好像输入了图像描述。那么如何恢复/解压缩文件并从提交日志中提取有用的信息呢?有人能帮我吗?谢谢。

b5buobof

b5buobof1#

Cassandra使用 commit log 只是为了恢复 Memtable 重新启动时,如果服务器以前已崩溃并且这些记录未刷新到 SStable .
它是内部结构,只要Kafka代码是向后兼容的,并且能够恢复,它们就可以自由地在版本之间更改结构 Memtable 在服务器崩溃后重新启动。
通过重新启动服务器(如果它崩溃了),该信息将恢复到 Memtable 这些信息将通过 CQL 查询。
那么您需要从commit long获得什么信息,您的情况是什么,以及为什么您不能通过我描述的路径实现它。
注:
也许你可以写一个工具,轻松地读取日志段通过检查 CommitLog.recover() 方法并将相关代码提取到程序中。
提交日志.java
commitlogreader.java文件
commitlogreadhandler.java文件

相关问题