命名空间: Apache.Cassandra

 

属性:

名称
类型
默认值
说明
Column_metadata
List<ColumnDef>
n/a
构造属性
Column_type
string
Standard
所保存的Column的类型,所设置数据为 Standard或Super,Super就是SuperColumn
Comment
string
n/a
备注
Compaction_strategy
string
SizeTiered
SizeTiered 这是在1.0之前唯一的压实策略,这个压实策略会导致很大I/O操作,长时间的压实操作会导致文件规模更大,会对磁盘的操作产生负面影响,但不影响读写性能。当使用此策略时,会导致会使用1倍以上的磁盘空间。
LeveledCompactionStrategy 平整 压实 策略 限制 的 SSTables 大小 , 一个小的文件 大小 ( 默认 为 5 MB的 ) ,使 SSTables 不 继续 增长 的大小 与 每个连续的 压实 。 磁盘I/O 更均匀 和可预见的 SSTables 是 ​​不断 被 压缩 成 逐渐变大 的 水平 。 在每个级别上 , 行键 合并 到 非 重叠 SSTables 。 这可以提高 读取 性能 , 因为 卡桑德拉 可以决定 在 每个级别 SSTables 检查 行 的关键数据 的 存在 。 这 是仿照 谷歌的 leveldb 实施 压实 战略 。
Compaction_strategy_options
Dictionary
<string, string>
sstable_size_in_mb,5
当使用LeveledCompactionStrategy 时,sstable_size_in_mb才生效
Comparator_type
string
BytesType
定义的数据类型,用于验证和排序的列名。有几个内置的列比较。请注意,ColumnFamily创建后将不能被更改
Compression_options
Dictionary
<string, string>
n/a
ColumnFamily的压缩属性
sstable_compression: 指定压缩算法在压缩SSTable文件时使用。Cassandra支持两个内置压缩类:SnappyCompressor(Snappy Compression Library)和DeflateCompressor(JAVA zip implementation)。Snappy Compression Library提供更快的压缩/解压缩,而JAVA zip implementation提供了更好的压缩比。选择是正确的,取决于读取性能节省空间的要求。对于读沉重的工作量,建议使用Snappy Compression Library。开发人员还可以实现自定义的压缩类,可以继承org.apache.cassandra.io.compress.ICompressor接口。
chunk_length_kb 设置压缩块的大小,以KB为单位。默认值(64)是一个比较好的建议数字。对于多个列的行,它允许读无需解压整个行一列数据的64KB片。
Default_validation_class
string
 
定义用来验证列的数据类型
Gc_grace_seconds
int
864000
默认值为10天。因为Cassandra刪除的時候是伪刪除,通过增加一个刪除标记(Tombstone)來标识数据数据已经被删除;当进行Compaction操作时(压实),存在时间超过gc_grace的Tombstone才会被真正的删除。减少这个值可以使垃圾更快被回收(存储空间更快地释放)。这个值不应该被设置的太小(例如:少于一天),设置的太小可能造成数据部一致,例如:如果使用CL.ONE來進行刪除操作时,当gc_grace太小导致在通过Read repair或Anti Entropy削减Inconsistency Window之前就发生Compaction,那么刪除实际上是失败的(因為其他副本节点没有进行删除也没有进行标记)。
Id
int
 
 
Key_alias
byte[]
 
 
Key_cache_save_period_in_seconds
int
n/a
多少时间会将Key Cache保存在磁盘上
Key_cache_size
double
100000
Key Cache的大小
Key_validation_class
string
 
定义的数据类型用来验证Key的值。有几个内置的关键验证器,但CounterColumnType(分布式计数器)不能作为一个行的Key验证器使用。
Keyspace
string
 
ColumnFamily所属的KeySpace
Max_compaction_threshold
int
32
设定Minor Compaction最多允許多少个相似大小的SSTables合并成一个SSTable。降低这个值会让Minor Compaction更频繁发生。
Merge_shards_chance
double
 
 
Min_compaction_threshold
int
4
设定Minor Compaction(合并大小相似的SSTables)最少需要多少个SSTables。调高这个值会减少Minor Compaction的发生。
Name
string
 
ColumnFamily的名称
Read_repair_chance
double
100
如果读取的Consistency Level设定成ONE,我们可以设定一個值來決定是不是要在背景进行 Read Repair。预设值是一定会进行Read Repair,可以通过降低这个值來提升Read的Throughput。对于当写入用CL.ALL而读取采用ONE的,可以很放心的降低这个值。
Replicate_on_write
bool
 
 
Row_cache_keys_to_save
int
 
 
Row_cache_provider
string
ConcurrentLinkedHash
CacheProvider
指定列家庭使用的行缓存。允许的值是:* ConcurrentLinkedHashCacheProvider - Row Cache使用的JVM的Heap内存,提供同一行Cassandra到0.8之前的版本的缓存行为。 *(默认)SerializingCacheProvider - 缓存行被序列化并存储在内存中的JVM Heap的,它可以减少垃圾收集(GC)在JVM上的压力,从而提高系统的性能。序列化行也比反序列化行较小的8-12倍。这是推荐的设置,只要你有jna.jar在CLASSPATH,使本地方法。
Row_cache_save_period_in_seconds
int
n/a
多少时间保存Row Cache到磁盘上
Row_cache_size
double
0
Row Cache的大小
Subcomparator_type
string
BytesType
当使用superColumn时,该设置才生效

方法:

名称
参数
说明
CfDef
<无>
构造函数    
Read
TProtocol iprot
从Cassandra读取相关信息
ToString
<无>
输出KeySpeace的定义:
名称,策略类,策略选项,同步因子,ColumnFamily定义,是否持久化
Write
TProtocol oprot
将相关信息写到Cassandra

 

本文参考:

Compaction and Repair http://blog.labin.cc/?p=332