【发布时间】:2016-07-16 18:14:22
【问题描述】:
我在两台不同的机器上工作,它们都有不同的硬盘存储和不同的 cassandra 版本。
机器 1 SSD硬盘,Cassandra 2.1.13
机器 2 HDD硬盘,Cassandra 2.1.3
现在我使用 SSTableLoader 实用程序将一个 CF 的数据从 machine 2 传输到 machine 1。直到这一步它工作正常,数据也成功传输。
但我错误地截断了 machine 2 上相同 CF 的数据。为了恢复数据,我使用了相同的概念。我尝试将数据从 machine 1 传输到 machine 2。
同时我发现了一些奇怪的日志
- 16:22:53.956 [main] 调试 o.a.c.io.sstable.SSTableReader - 不能 反序列化 SSTable 摘要文件 ./data/data/sstableloadertest/typestest-8e68e811f56511e59d60297061e28552/sstableloadertest-typestest-ka-57-Summary.db: 无法反序列化 SSTable Summary 组件,因为 DiskAccessMode 已更改!
并且还删除了sstable的*summary.db组件。
一开始我以为是因为cassandra版本不同,但我错了。
谁能告诉我为什么会这样?
【问题讨论】:
-
cassandra.yaml 中的 disk_access_mode 在 machine1 和 machine2 中设置为什么?
-
@ChrisLohfink 两台机器都使用几乎默认的 cassandra.yaml,所以没有这样的属性。
-
@ChrisLohfink 和两台机器都是
x86_64
标签: database cassandra disk disk-io