关闭

cassandra cpp driver 2.1 阅读摘要

标签: C++cassandra2.1
540人阅读 评论(0) 收藏 举报
分类:
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做的压测好太多了,至少不会出现几百毫秒的抖动。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:41775次
    • 积分:730
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:2篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论
    推荐链接