您的位置:首页 > 其它

Cassandra 1.0 参考(2) ColumnFamily的定义

2011-10-24 14:57 197 查看
命名空间: 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
本文出自 “大型网站应用技术” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: