SSTable 多个目录
SSTable multiple directories
我最近开始研究 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
我注意到刷新或压缩不会创建新目录。它只是 adds/compacts 最近的 SSTable 目录
如果您删除一个键空间(在我的例子中是 ks),它不会从文件系统 (auto_snapshot:true) 中删除键空间目录 (/var/lib/cassandra/data/ks)。这就是我仍然看到旧的原因 - directory/s.
当您删除 table 时,默认情况下,Cassandra 会拍摄快照以防止意外丢失数据。在您的情况下,events-7a34c34047f411e7aee3b9dc2549db1c 是较旧的 table,并且其中只有快照目录。
负责该操作的Cassandra.yaml参数如下
auto_snapshot (Default: true) Enable or disable whether a snapshot
is taken of the data before keyspace truncation or dropping of tables.
To prevent data loss, using the default setting is strongly advised.
If you set to false, you will lose data on truncation or drop.
记得在生产类环境中清理较旧的 table 快照,否则它很容易堆积在数据目录大小上。
在 cassandra 中,当你删除一个 table 时,它的目录保留在 KeySpace 目录中。
在您的情况下,您似乎创建了一个 table,其名称为您之前删除的 table。因为你有一个 table 和两个目录,其中一个是无用的,你可以 rm -rf 它的目录或 运行 nodetool clearsnapshot.
我最近开始研究 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
我注意到刷新或压缩不会创建新目录。它只是 adds/compacts 最近的 SSTable 目录
如果您删除一个键空间(在我的例子中是 ks),它不会从文件系统 (auto_snapshot:true) 中删除键空间目录 (/var/lib/cassandra/data/ks)。这就是我仍然看到旧的原因 - directory/s.
当您删除 table 时,默认情况下,Cassandra 会拍摄快照以防止意外丢失数据。在您的情况下,events-7a34c34047f411e7aee3b9dc2549db1c 是较旧的 table,并且其中只有快照目录。
负责该操作的Cassandra.yaml参数如下
auto_snapshot (Default: true) Enable or disable whether a snapshot is taken of the data before keyspace truncation or dropping of tables. To prevent data loss, using the default setting is strongly advised. If you set to false, you will lose data on truncation or drop.
记得在生产类环境中清理较旧的 table 快照,否则它很容易堆积在数据目录大小上。
在 cassandra 中,当你删除一个 table 时,它的目录保留在 KeySpace 目录中。 在您的情况下,您似乎创建了一个 table,其名称为您之前删除的 table。因为你有一个 table 和两个目录,其中一个是无用的,你可以 rm -rf 它的目录或 运行 nodetool clearsnapshot.