摘要: 参考文档:http://www.datastax.com/documentation/cql/3.0/webhelp/index.html#cql/ddl/ddl_primary_index_c.html#concept_ds_vk2_dyz_zj索引提供了一种手段通过属性来获取 Cassandra中数据而不是分区键。好处是提供了快速的、高效的按照指定条件找出数据的查询。列的值的索引在一个与值分开的、隐藏的表中。Cassandra有很多技术用来防止出现不良的情况——数据可能检索不正确,查询的数据是旧的版本。一、什么时候使用索引Cassandra's built-in indexes a 阅读全文
posted @ 2014-02-07 22:36 内心低调的人 阅读(639) 评论(0) 推荐(0) 编辑
摘要: 三、集合列CQL 3 引入了一下集合类型:•set•list•map 在关系型数据库中,允许用户拥有多个email地址,你可以创建一个email_addresses表与users表存在一个多对一关系。CQL 3能够处理经典的多个电子邮件地址的使用情况,其他使用的情况下可以通过定义的列达到集合的效果。利用集合来解决多个邮件地址的问题是方便和直观的。 集合类型的另一个用途被证明可以使用音乐服务作为例子。四、往表中增加一个集合 上面说的音乐服务的例子包括给歌曲标记标签。从一个关系的角度看,你可以认为把存储行引擎视为分区,包含了聚集的行。为了给歌曲打标签,使用集合类型set。定义集合通过CREA... 阅读全文
posted @ 2014-02-06 15:01 内心低调的人 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_schema_changes_c.html#concept_ds_rdc_lvr_gk 在Cassandra1.2及之后,大量的模式变化可以同时发生在一个集群中,而节点之间没有任何模式的分歧。例如,如果一个客户端设置一个列为integer而另一个客户端设置为text,一个或另一个动作会立马生效。哪一个动作会生效是不可预料的。 新模式解决方案的设计消除了模式的变化时,新的节点加入集群所造成的延迟。当节点加入.. 阅读全文
posted @ 2014-02-04 19:41 内心低调的人 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_config_consistency_c.html 一致性指的是怎样更新到最新并且在所有副本节点上同步Cassandra的一行数据。Cassandra通过提供可以调节的数据一致性扩充了最终一致性的观点,对于任何读取或写入操作,客户端决定请求数据的一致性。 除了可配置的一致性以外,Cassandra通过很多的built-in repair mechanisms去保证数据在各个副本之间的一致性。 提示:你可... 阅读全文
posted @ 2014-02-03 09:15 内心低调的人 阅读(1278) 评论(0) 推荐(0) 编辑
摘要: 参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_transactions_c.html#concept_ds_j1p_m5x_zj Cassandra不提供完整的符合ACID特性的事务,ACID事务是关系型数据库系统的标准事务行为: •原子性 在事务中每一个步要么成功或者回滚整个事务。 •一致性 一个事务不能使数据库处于不一致的状态。 •隔离性 事务不能相互干扰。 •持久性 事务完成以后,更改便持久地保存在数据... 阅读全文
posted @ 2014-02-02 13:33 内心低调的人 阅读(1915) 评论(0) 推荐(0) 编辑
摘要: 参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_reads_c.html#concept_ds_vrp_4qx_zj 不像大部分数据库。Cassandra从固态硬盘中平行随机读取数据性能很好,具有极低的延迟。不推荐使用常见的硬盘。Cassandra读和写一样,数据是被key分隔开,去除了很多关系型数据库需要用到的复杂查询。 首先,Cassandra会检查 Bloom filter。每一个SSTable有一个与之关联的 Bloom filte.. 阅读全文
posted @ 2014-02-01 22:47 内心低调的人 阅读(818) 评论(3) 推荐(0) 编辑
摘要: ##之前写过使用python抓取有路网图书信息,见http://www.cnblogs.com/dyf6372/p/3529703.html。##最近想学习一下Node.js,所以想试试手,比较一下http抓取上的性能,采用事件驱动的Node.js比python好一些,以下上代码(刚学还未优化): var http = require('http'); var iconv = require('iconv-lite'); var url = require('./gb2312_url_encode.js'); function getHtmlOp 阅读全文
posted @ 2014-01-31 18:09 内心低调的人 阅读(506) 评论(1) 推荐(0) 编辑
摘要: 参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_hh_c.html Hint机制是Cassandra的特性当一致性不要求时保证了写入的高可用性。但临时故障发生如网络问题,Hint机制显著地提升了反应的一致性。通过配置cassandra.yaml文件,你选择是否启用Hint机制。一、Hint机制是如何工作的 当一个写入发生,应当被写入的副本节点被感应到发生了故障或者没有响应写入请求,协调者会在本地存储一个hint,放入到system.hint.. 阅读全文
posted @ 2014-01-31 01:27 内心低调的人 阅读(1680) 评论(1) 推荐(1) 编辑
摘要: 参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_deletes_c.html 相比于传统的关系型数据库,Cassandra采用了另一种方式去删除数据。关系型数据库会花时间扫描并删除过期数据或者管理员可能需要每月分区过期数据,例如,让数据库更快一些。在Cassandra中,你不需要移除过期的数据。 关于Cassandra删除数据有两个因素需要记住: •Cassandra并不会立即删除磁盘上的数据。 •已删除的数据可能会再次出现如果不定期运... 阅读全文
posted @ 2014-01-30 00:12 内心低调的人 阅读(1404) 评论(0) 推荐(0) 编辑
摘要: 参考数据:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_inserts_c.html#concept_ds_xvr_knw_zj 插入和更新操作是相同的。当插入和更新发生的时候,Cassandra不会覆盖已经有的行,但是会在memtabel中插入和更新。 任何数目的column可以被同时插入和更新。当往一个表中插入和更新数据的时候,客户端程序会标识那些数据应当被改变。 插入一个已有的行就被认为是upsert。最终,更新的数据会被存储到新的SSTa... 阅读全文
posted @ 2014-01-29 12:33 内心低调的人 阅读(1338) 评论(1) 推荐(0) 编辑