SSTable多个目录

问题描述 投票:0回答:3

我最近开始研究Cassandra,到目前为止,所有内容都有详细记录且易于理解。

但是我无法找到以下问题的任何答案:

为什么Cassandra数据目录(/ var / lib / cassandra / data / ks)具有相同SSTable的多个子目录?为什么创建新目录的原因是什么?

[centos@cs1 2017-06-03--19-46-14 cassandra $] ls -l /var/lib/cassandra/data/ks
total 8
drwxr-xr-x. 3 root root 4096 Jun  3 19:46 events-4f35e2c0482911e79119511599d22fe7
drwxr-xr-x. 3 root root 4096 Jun  3 19:41 events-7a34c34047f411e7aee3b9dc2549db1c

[centos@cs1 2017-06-03--19-46-10 cassandra $] tree
.
├── events-4f35e2c0482911e79119511599d22fe7
│   ├── ks-events-ka-4-CompressionInfo.db
│   ├── ks-events-ka-4-Data.db
│   ├── ks-events-ka-4-Digest.sha1
│   ├── ks-events-ka-4-Filter.db
│   ├── ks-events-ka-4-Index.db
│   ├── ks-events-ka-4-Statistics.db
│   ├── ks-events-ka-4-Summary.db
│   ├── ks-events-ka-4-TOC.txt
│   └── snapshots
└── events-7a34c34047f411e7aee3b9dc2549db1c
    └── snapshots
        └── 1496472654574-device_log
            └── manifest.json

5 directories, 9 files

我注意到刷新或压缩不会创建新目录。它只是添加/压缩最新的SSTable目录

cassandra cassandra-2.1
3个回答
1
投票

当您删除表时,默认情况下,Cassandra会拍摄快照以防止数据丢失(如果它是无意的)。在您的情况下,事件-7a34c34047f411e7aee3b9dc2549db1c是较旧的表,其中只有快照目录。

负责该操作的Cassandra.yaml参数如下

auto_snapshot(默认值:true)启用或禁用在键空间截断或删除表之前是否对数据进行快照。为防止数据丢失,强烈建议使用默认设置。如果设置为false,则会丢失截断或丢弃的数据。

请记住在生产环境中清理旧的表快照,否则它可能很容易堆积在数据目录大小上。


0
投票

如果删除键空间(ks,就像我的情况一样),它不会从文件系统中删除键空间目录(/ var / lib / cassandra / data / ks)(auto_snapshot:true)。这就是我仍然看到旧目录的原因。


0
投票

在删除表时,在cassandra中,它的目录保留在KeySpace目录中。在您的情况下,您似乎创建了一个表,其中包含您之前删除的表的名称。因为你有一个表有两个目录,其中一个是无用的,你可以rm -rf其目录或运行nodetool clearsnapshot。

© www.soinside.com 2019 - 2024. All rights reserved.