您的位置:首页 > 编程语言 > C语言/C++

cassandra cpp driver 2.1 阅读摘要

2015-09-08 21:11 405 查看
cpp driver规则:
1. ?占位符不能用在select语句的前面,只能放在where后面。update也是,不能放在=前面,只能放在等号后面。基本上?占位只能用于值,不能用于索引,比如主键和列名。
2. 如果字段在cassendra中的值是null,则返回的output_size是0。
3. 每次执行statement的时候,设置cass_statement_set_consistency,默认是ONE,确定是否需要修改。
4. 设置连接心跳,现在默认是30秒,有些长,要设置为10s。
5. TTL目前不设置,如果需要,在每个statement上设置。
6. retry policy: timeouts, unavailablity?  先使用默认策略。
7. cluster设置io线程数量:cass_cluster_set_num_threads_io,看api文档,说默认值是1,这个要设置下。
8. session的数量:每个keysapce一个session。session是线程安全的,基本一个server创建好一个session即可,多线程使用,准备用单例封装。
9. 现在的环境,只需要获取第一个结果,那么只需要用cass_result_first_row即可,不需要使用结果的迭代器。
10. 连接一个session的时候最好就指定好keyspace,即使用cass_session_connect_keyspace而不是cass_session_connect。
11. log回调是否需要设置?默认是到stderr。
12. batch不会提高检索性能,但是可以减少网络通讯次数,还是推荐使用。我的项目目前没有用到。

编写测试demo,同网段三机构建集群,客户端一个机器上,使用10个线程并发,使用普通硬盘,binlog和data,cachedata都在同一个硬盘上,关闭所有cache,使用text和list<text>类型的column共十个,随机读写,结果如下:
写可以达到10w qps,平均耗时是0.3ms,最大耗时是96ms。读可以达到4w qps,平均耗时是0.8ms,最大耗时是62ms。cpu使用在300%左右。

这比之前同条件下使用的hbase做的压测好太多了,至少不会出现几百毫秒的抖动。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ cassandra2.1