命名空间: 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时,该设置才生效
|
方法:
本文参考:
Compaction and Repair http://blog.labin.cc/?p=332