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

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

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

吞吐量和延迟

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

•吞吐量是每分钟的操作数

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

  当数据库的操作室串行化的时候,吞吐量和延迟是可以互换的。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平衡。

Cassandra1.2文档学习(8)—— 数据管理的更多相关文章

  1. Cassandra1.2文档学习解读计划——为自己鼓劲

    最近想深入研究一下Cassandra,而Cassandra没有中文文档,仅有的一些参考书都是0.7/0.6版本的.因此有个计划,一边学习文档(地址:http://www.datastax.com/do ...

  2. Cassandra1.2文档学习(16)—— 模式的变化

    参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_schema ...

  3. Cassandra1.2文档学习(15)—— 配置数据一致性

    参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_config ...

  4. Cassandra1.2文档学习(1)——Cassandra基本说明

    参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/a ...

  5. Cassandra1.2文档学习(19)—— CQL索引

    参考文档:http://www.datastax.com/documentation/cql/3.0/webhelp/index.html#cql/ddl/ddl_primary_index_c.ht ...

  6. Cassandra1.2文档学习(17)—— CQL数据模型(上)

    参考文档:http://www.datastax.com/documentation/cql/3.0/webhelp/index.html#cql/ddl/ddl_anatomy_table_c.ht ...

  7. Cassandra1.2文档学习(14)—— 事务和并发控制

    参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_ ...

  8. Cassandra1.2文档学习(13)—— 数据读取

    参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_ ...

  9. Cassandra1.2文档学习(12)—— hint机制

    参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_ ...

随机推荐

  1. Mysql 培训

     1. Mysql 培训 1.1. 培训目的 本文档是针对MySQL 数据库方面的基础培训,为了使项目组成员能够达到使用MySQL 数据库的目的. 1.2. 培训对象 开发者 1.3. 经常使用词及符 ...

  2. Android 获取信号强度

    大 家看到标题就明白了,我们有的时候在电梯里,有时有的电话有信号,有时有的电话没有信号,这个是非常闹心的,要是我们能监听一下我们自己手机信号的强度就 好了.这样,当我们在等重要的人士的电话,不至于接不 ...

  3. android学习日记03--常用控件progressbar/seekbar

    常用控件 5.progressbar 进度条,比较常用的组件,在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度.一个进度条也 ...

  4. struts2学习笔记(5)---自己定义拦截器

    什么是拦截器? struts2中拦截器分为Struts2定义好的拦截器和自己定义的拦截器. 其作用是在一个Action运行之前进行拦截,在Action运行之后又增加某些操作. 实现原理 当请求一个Ac ...

  5. uboot中gd的定义和使用

    近期在做uboot中nand启动相关的工作,遇到一个问题一直纠结着.如今最终明确了这个问题,想想还有好多兄弟在某个黑暗的角落里或者某台电脑前纠结着呢,所以赶紧写下来以供查阅. uboot versio ...

  6. 火车票硬座座位位置分布图、火车座位分布图 andydao

    夏天要是坐火车硬座在火车上过夜的话,最好带一个小外套,以防睡觉着凉.

  7. C#_dropdownlist_2

    string deptId =Request.Form["depts"].Trim(); Html.DropDownList()赋默认值: 页面代码如下: <%        ...

  8. JPA OpenJPA 简单例子

    JPA 全称,Java Persistence API,Java持久化API JPA是一套持久化标准,相当于JDBC标准,针对于此标准的实现目前有OpenJAP,TOPLINK,Hibernate等. ...

  9. ListVIew中插入view

    public class MainActivity extends Activity { private ListView listview; private List<String> d ...

  10. java基础学习总结二(标识符、字符集、数据类型以及类型转换)

    一:标识符 1:标识符可以由字母.数字.下划线_.$符等组成2:标识符的首字母只能是字母.数字.下划线3:标识符不能使用关键字或者保留字4:标识符可以是中文,但是不建议使用中文5:标识符可以任意长,没 ...