数据参考: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. ORACLE 毫秒与日期的相互转换

    毫秒转换为日期 SELECT TO_CHAR(1406538765000 / (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY- ...

  2. 使用Zipalign工具优化Android APK应用记录

    生成的Android应用APK文件最好进行优化,因为APK包的本质是一个zip压缩文档,经过优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗.我们可以使用Zipalign工具进行A ...

  3. js源码保护

    js的不可读化处理分为三个方面:压缩(compression).混淆(obfuscation) 和加密(encryption). (不可读化处理,这是我自己发明的术语,一切会增加代码不可读性的代码转换 ...

  4. com.code.servlet

    package com.code.servlet; import java.io.IOException; import java.util.LinkedHashMap; import java.ut ...

  5. Understanding transient variables in Java and how they are practically used in HashMap---reference

    What is the significance of the transient keyword in Java? If you know the answer, good! you are a p ...

  6. WinServer 之 发布WebService后调用出现" The test form is only available for requests from the local machine. "

    当您尝试从远程计算机访问 Web 服务时,不会显示“调用”按钮.并且,您会收到以下错误信息: The test form is only available for requests from the ...

  7. rails 项目部署中 nginx 报错及解决方法

    错误1 1. 报403错误,是因为启动nginx的用户默认是nobody,没有对项目目录的访问权限. user myName; worker_processes ; 错误2 2. 报404错误,是因为 ...

  8. [转]Oracle 调用存储过程并显示结果集 Oracle.DataAccess.Client OracleDbType.RefCursor

    本文转自:http://liye9801.blog.163.com/blog/static/6019703200901244448950/ 今天学习了一个Oracle中的存储过程,一开始便被如果返回结 ...

  9. 关于Spring的IOC和DI

    原始调用模型 Spring的演化过程 Spring的调用过程 ======================================= IoC[理解][应用][重点] 1.IoC(Inversi ...

  10. mysql同时向一个表中插入多条数据问题!!见详细

    INSERT INTO `表名` (`字段1`,`字段2`,`字段3`,`字段4`) values ('数组1数据1','数组1数据2','数组1数据3','数组1数据4'), ('数组2数据1',' ...