我在cassandra.yaml文件中配置了三个单独的数据目录,如下所示:
data_file_directories:
- E:/Cassandra/data/var/lib/cassandra/data
- K:/Cassandra/data/var/lib/cassandra/data
当我创建密钥空间并插入数据时,我的密钥空间在两个目录中都被创建,数据被分散了.我想知道的是cassandra如何在多个目录之间分割数据?这背后的规则是什么?
zzn*_*ate 10
在data_file_directories下添加多个条目时,您正在使用Cassandra的JBOD功能.数据均匀分布在配置的驱动器上,与其可用空间成比例.
这也让你利用disk_failure_policy设置.您可以在此处阅读有关详细信息:http: //www.datastax.com/dev/blog/handling-disk-failures-in-cassandra-1-2
简而言之,您可以将Cassandra配置为继续运行,如果磁盘已满或完全失败,请执行此操作.这比RAID0(您将有效地具有与JBOD相同的容量)具有优势,因为您不必从备份(或完全修复)替换整个数据集,而只是对丢失的数据运行修复.另一方面,RAID0提供更高的吞吐量(取决于您知道如何调整RAID阵列以匹配文件系统和驱动器几何).
如果您具有容错/性能更高的RAID设置(例如RAID10)的资源,您可能只想使用单个目录以简化操作.大多数部署都开始倾向于使用JBOD而不是系统级容差的密度路径.
您可以在此处阅读有关此问题开发背后的思考过程:https: //issues.apache.org/jira/browse/CASSANDRA-4292
| 归档时间: |
|
| 查看次数: |
7172 次 |
| 最近记录: |