数据参考: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. kettle參数、变量具体解说

    kettle參数.变量具体解说 kettle 3.2 曾经的版本号里仅仅有 variable 和 argument,kettle 3.2 中.又引入了 parameter 概念.variable 即e ...

  2. java String 两种不同的赋值 比较

    原文:http://blog.163.com/woshihezhonghua@126/blog/static/1271436362012101214031911/ 首先明确一点,String是一个类. ...

  3. SQL Server日期时间格式转换字符串详解

    本文我们主要介绍了SQL Server日期时间格式转换字符串的相关知识,并给出了大量实例对其各个参数进行对比说明,希望能够对您有所帮助. 在SQL Server数据库中,SQL Server日期时间格 ...

  4. WIX在VS2012中如何制作中文安装包

    WIX安装图文并茂简易说明一文中介绍了WIX安装包的制作过程,不过生成的是英文版的,如果需要制作中文版的安装包呢? 方法很简单,只需要两步. 1.增加中文UI的文件WixUI_zh-cn.wxl到工程 ...

  5. [AngularJS] Taking control of your templates using $templateCache

    Using $templateCache for quickly retrieval from the cache after first time used. $templateCache main ...

  6. 使用Twisted进行socket编程

    你的协议处理类通常是twisted.internet.protocol.Protocol的子类.许多协议处理继承于该类或者比该类更加方便的该类的子类.一个protocol类的实例可能反复连接,也可能在 ...

  7. careercup-中等难题 17.2

    17.2 设计一个算法,判断玩家是否赢了井字游戏. 解法: 假设这个检查某人是否赢得了井字游戏的函数为HasWon,那么我们第一步要向面试官确认, 这个函数是只调用一次,还是要多次频繁调用.如果是多次 ...

  8. Dashboards (Android)

    his page provides information about the relative number of devices that share a certain characterist ...

  9. PHP获取远程图片并调整图像大小

    <?php /** * *函数:调整图片尺寸或生成缩略图 *修改:2013-2-15 *返回:True/False *参数: *   $Image   需要调整的图片(含路径) *   $Dw= ...

  10. Ⅳspring的点点滴滴--方法和事件

    承接上文 方法和事件 .net篇(环境为vs2012+Spring.Core.dll v1.31) public abstract class MethodDemo { protected abstr ...