RocksDB生成的文件夹是什么
What are the folders generated by RocksDB
在我的 kubernetes 容器中,我已经为我的 kafka 流应用程序配置了我的 rocksdb
containers:
...
volumeMounts:
- mountPath: /tmp/state
name: state-volume
volumes:
- name: state-volume
emptyDir:
medium: Memory
部署后如果我去那个位置cd /tmp/state/my-service
我看到了十几个文件夹。例如。 0_105、0_107、0_9 等。如果我转到这些文件夹之一,例如cd /tmp/state/my-service/0_105/rocksdb/state
我看到了实际的 .sst 文件。
在每个 0_* 文件夹中都有多个 sst 文件,我想这就是 rocksdb 拆分文件键的方式。但是这些 0_* 文件夹有什么作用,它们是如何按原样拆分的?
Kafka Streams 根据您的程序结构和输入主题分区的数量创建 "tasks"。您看到的目录是任务目录,允许每个任务以隔离的方式在本地存储其状态。
每个任务都有一个任务 ID Y_Z
,用作任务目录名称。第一个数字是子拓扑ID,第二个数字基本上是输入分区号。
您可以通过 Topology#describe()
描述您的拓扑来查看生成了哪些子拓扑(如果需要,您可以调用将 `TopologyDescription' 打印到标准输出)。
在我的 kubernetes 容器中,我已经为我的 kafka 流应用程序配置了我的 rocksdb
containers:
...
volumeMounts:
- mountPath: /tmp/state
name: state-volume
volumes:
- name: state-volume
emptyDir:
medium: Memory
部署后如果我去那个位置cd /tmp/state/my-service
我看到了十几个文件夹。例如。 0_105、0_107、0_9 等。如果我转到这些文件夹之一,例如cd /tmp/state/my-service/0_105/rocksdb/state
我看到了实际的 .sst 文件。
在每个 0_* 文件夹中都有多个 sst 文件,我想这就是 rocksdb 拆分文件键的方式。但是这些 0_* 文件夹有什么作用,它们是如何按原样拆分的?
Kafka Streams 根据您的程序结构和输入主题分区的数量创建 "tasks"。您看到的目录是任务目录,允许每个任务以隔离的方式在本地存储其状态。
每个任务都有一个任务 ID Y_Z
,用作任务目录名称。第一个数字是子拓扑ID,第二个数字基本上是输入分区号。
您可以通过 Topology#describe()
描述您的拓扑来查看生成了哪些子拓扑(如果需要,您可以调用将 `TopologyDescription' 打印到标准输出)。