Cassandra1.2文档学习(8)—— 数据管理

数据参考:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_manage_ondisk_c.html#concept_ds_rwq_d4x_zjhtml

  Cassandra使用的数据存储结构相似于日志结构的合并树,不一样于典型的关系型数据库使用B-树。存储引擎使用追加模式按顺序写入磁盘中,数据存储是连续的。在各个节点和一台机器的操做都是平行的。由于Cassandra不适用B-tree,并发控制是不须要的。由于写的时候不须要更新之前的数据。web

  Cassandra对于先进的固态硬盘适应的很是好。不贵的普通固态硬盘一样也能很到。磁盘IO对Cassandra性能的影响是最小的。数据库

 

吞吐量和延迟缓存

在磁盘上管理数据,吞吐量和延迟是两个影响Cassandra性能的关键因素:并发

•吞吐量是每分钟的操做数性能

•延迟是完成一个请求的往返时间spa

  当数据库的操做室串行化的时候,吞吐量和延迟是能够互换的。Cassandra的操做是平行化的,所以吞吐量和延迟式独立的。不像其余不少数据库,Cassandra能够达到很好的吞吐量和极低的延迟。操作系统

  数据写入在Cassandra中很是高效。在数据存储引擎里面分散随机写入数据是很是低效率的。但你在作不少随机的写入数据的一部分是,Cassandra在固态硬盘扇区内读取。Cassandra没有关系数据库的随机搜索。Cassandra日志结构的设计避免了磁盘搜索的需求。设计

  当数据库的接收到更改请求时,Cassandra并不覆盖数据。更改已有的数据会致使作随机的I/O操做。Cassandra更新字节而且重写完整的扇区代替修改磁盘的数据。消除磁盘上的数据而且磁盘块擦除周期延长了固态硬盘的寿命而且节省了1或2个毫秒的时间。日志

  Cassandra并不对快的写入请求路径加锁,由于那样对吞吐量形成消极的影响。由于不修改磁盘的数据,对磁盘上的数据采用同步控制锁是没有必要的。操做的设计很好地集成了操做系统的页面缓存。由于Cassandra不修改数据,脏页不会产生。

  使用固态硬盘代替传统硬盘能够得到低的延迟。Cassandra在每个节点运行相同的代码而且没有主节点没有单点故障,这样使得Cassandra得到了极大的吞吐量。

 

数据文件按表放置在不一样目录

  Cassandra1.1和以后的稳定版本对于在表的数据存储在磁盘上提供了细粒度的控制,将表的数据写入的磁盘中会在keyspace的目录下按表使用分开的目录。

  数据文件被存储在如下位置并以如下规则命名:

  /var/lib/cassandra/data/ks1/cf1/ks1-cf1-hc-1-Data.db

  新的文件的名字包含了keyspace的名字这样当导入数据的时候能分辨出该文件包含了哪一个keyspace和表。

  Cassandra为每个表建立了一个子目录,这样作使得你能够为表建立一个符号连接,连接到一个物理的驱动器或者数据卷宗。这样提供了将很是活跃的表移动到更快的媒介的能力,例如使用固态硬盘以得到更好的性能,这样作将表能够全部接触的存储设备上进行分配以达到在存储层实现更好的I/O平衡。

相关文章
相关标签/搜索