几个可以来做cassandra性能评测的工具
1.yahoo's --> YCSB2.cacti 3.cassandra supplied -->stress.py4.挽起袖子用hector、thrift写吧5.nagios + nrpe + some custom scripts6.CloudKick7.zabbix https://gist.github.com/7447618.ClearStone [@more@]
cassandra图形客户端工具
cassandra图形客户端工具:1.cassui ## Cassandra UI - a web based interface over Cassandra (google code)2.suguru / cassandra-webconsole ##Web based console for cassandra (github)3.driftx/chiton ## A browser for Cassandra using GTK (github)* Automatic Keyspace, Column, and SuperColumn introspection* Browse columns with pagination* Completion history for rows and SuperColumn names4.apollohttp://www.codefreun.de/apollo/[@more@]
topic links
------vector clockA vector clock event synchronization strategywill likely be introduced in a future versionof Cassandra.--《Cassandra The Definitive Guide》why vector clocks are easy: http://blog.basho.com/2010/01/29/why-vector-clocks-are-easy/ why vector clocks are hard http://blog.basho.com/2010/04/05/why-vector-clocks-are-hard/ vector clocks again: http://pl.atyp.us/wordpress/?p=2830 Conflict Resolutionhttp://pl.atyp.us/wordpress/?p=2601------yamlyaml process:http://code.google.com/p/snakeya
About compation
minor compaction vs. major compactionmin compaction threshold vs. max compaction threshold 问题一、minor compaction vs. major compaction1.major compaction 只能手动的通过nodetool触发,对整个column family所有的sstable进行compact;minor compcation通过配置参数min compaction threshold 和max compaction threashold达到条件后触发2.在0.7-beta2版本之后,non-major compation 在比较bloom filter确认tombstone标示的row不存在于其它sstable中也可以将其删除。因为minor compaction会根据min compaction threshold 和ma
cassandra最终一致性相关算法数据结构
Merkle Tree(MT)是一个非常容易理解的数据结构,简单来说就是一颗hash树,在这棵树中,叶子节点的值是一些hash值、非叶节点的值均是由其子节点值计算hash得来的。在Dynamo中,每个节点保存一个范围内的key值,不同节点间存在有相互交迭的key值范围。在去熵操作中,考虑的仅仅是某两个节点间共有的key值范围。MT的叶子节点即是这个共有的key值范围内每个key的hash,通过叶子节点的hash自底向上便可以构建出一颗MT。 Dynamo首先比对MT根处的hash,如果一致则表示两者完全一致,否则将其子节点交换并继续比较的过程。1.Dynamo中每个子节点保
十道海量数据处理面试题与十个方法大总结(转)
http://wukunliang.blog.163.com/blog/static/17766547220104233140858/ 第一部分、十道海量数据处理面试题 1、海量日志数据,提取出某日访问百度次数最多的那个IP。 此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。 再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个
cassandra版本变更列表
https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.8.4/CHANGES.txt0.7.4 * add nodetool join command (CASSANDRA-2160) * fix secondary indexes on pre-existing or streamed data (CASSANDRA-2244) * initialize endpoint in gossiper earlier (CASSANDRA-2228) * add ability to write to Cassandra from Pig (CASSANDRA-1828) * add rpc_[min|max]_threads (CASSANDRA-2176) * add CL.TWO, CL.THREE (CASSANDRA-2013) * avoid exporting an un-requested row in sstable2json, when exporting a key that does not e
cassandra升级版本选择
本文档假想cassandra版本升级问题,预设使用cassandra增量备份特性的需求,考虑升级最终版本的选择。过程:一、解决此需求至少需要回答的三个问题二、对比升级到0.8.0和0.7.4对当前系统的影响三、给出最终结论一、需要回答的三个问题1.为什么要升级到0.8.0?会带来那些好处?2.升级到0.8.0是否会带来潜在的问题?3.升级到0.7.4是否就已经能够满足需求?二、升级到0.8.0和0.7.4对当前系统的影响升级到0.8.0是否能够满足当前对增量备份的需求,并带来额外的带来风险,后续版本有没有发布0.8版本的bug1. 0.8.0与0.7.1及以后版本节点间通信的协
单元测试之模拟对象技术
模拟对象技术(打桩)在实际项目中,开发人员自己的代码往往需要和其他的代码模块或系统进行交互,但在测试的过程中,这些需要被调用的真实对象常常很难被实例化,或 者这些对象在某些情况下无法被用来测试,例如,真实对象的行为无法预测,真实对象的行为难以触发,或者真实对象的运行速度很慢。这时候,就需要使用模拟对 象技术(Mock),利用一个模拟对象来模拟我们的代码所依赖的真实对象,来帮助完成测试,提高测试覆盖率,从而提高代码质量。模拟对象技术利用了在面向 接口的编程中,由于代码直接对接口进行调用,所以代码并不知道引用
一些敏捷开发词汇汇总
敏捷词汇:迭代(Iteration):在Scrum中叫做"sprint"客户(Customer):在Scrum中叫做"product owner"教练(Coach):相当于Scrum Master or team lead,尽管有时候项目经理也充当这个角色;每日立会(Standup meetings):每天的项目状态交流会议,在Scrum中叫做“daily scrums”;回顾(retrospectives)故事列表(story-board)QIR,就是快速原型Quick Prototype迭代Iterator重构RefactorAgile DevelopmentAgile ModelingExtreme Programming (XP)ScrumFeature Driven Development (FDD)Test Driven Development
code art
PART ONE============= public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("GBK"); HttpSession session = request.getSession(); String sid = session.getId(); CartMap cm = CartMap.getCartMap(); if (cm.carts.containsKey(sid)) { Cart cart = cm.carts.get(sid); session.setAttribute("cart", cart); response.sendRedirect("Cart.jsp"); } else { response.sendRedirect(&quo
JAVA代码查错 PART ONE
/***<最近恶补java,发现很多语法的问题只有通过范例才能有更深的认识>*<所以搜集一些java的题目,汇编一下(PART ONE),希望能到10篇后能做个总结>**/JAVA代码查错1.abstract class Name { private String name;public abstract boolean isStupidName(String name) { }}大侠们,这有何错误?答案: 错。abstract method必须以分号结尾,且不带花括号。2.public class Something { void doSomething () { private String s = "";int l = s.length();}}有错吗?答案: 错。局部变量前不能放置任何访问修饰符 (private,pu
note tips
编码实践数据结构性能可靠性tips:NIO -多线程 +连接池技术设计模式marshallers annotation-based frameworkSpring[@more@]
yaml (YAML Ain't Markup Language)
YAML:YAML Ain't Markup LanguageYAML是一种直观的能够被电脑识别的的数据数据序列化格式YAML实现简单,解析成本很低,易于同脚本语言交互,YAML特别适合在脚本语言中使用,YAML做配置文件也不错,CASSANDRA就是使用cassandra.yaml作为参数配置文件。目前已有多种语言的YAML解析器。[@more@]
使用YCSB工具工具进行cassandra性能测试
ant安装:export JAVA_HOME=/usr/java/jdk1.6.0_25/export ANT_HOME=/home/wangm/apache-ant-1.8.2export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATHYCSB安装:antant dbcompile-cassadra-0.7java -cp build/ycsb.jar:db/hbase/lib/* com.yahoo.ycsb.Client -p columnfamily=f1 -db com.yahoo.ycsb.db.HBaseClient -P workloads/workloada -threads 50 -load Core workload package propertiesThe property files used with the core workload generator can specify values for the following properties:fieldcount: the number of fields
cassandra多节点集群环境测试
cassandra多节点集群环境测试:一、测试环境描述:1.硬件环境cpu:VM@1.6GHzdisk:20G Mem:1G2.软件环境OS:suse 11 2.6.9-89.0.19.ELsmp,x86 jdk 1.6.0casandra:0.8.0client:hector3.配置参数:3.1.JVM参数:JVM_OPTS3.2.cassandra配置参数ReplicationFactor:3NODES:318Partitioner:RandomPartitionerConsistencyLevel:灵活指定InitialToken:I*2^127/N (共N个节点,第i个节点的token)ColumnType=Standardcolumn size:(key+value=500B)column count:30Billions二、性能测试1.数据读测试1.1CPU1.2Memory1.3I/O1.4Network2.数据写测试1.1CP
cassandra tombstone导致写数据丢失问题征解
问题描述:1.casssandra中数据结构:ColumnFamily->Column->key-value(key,value,timestamp)2.cassandra使用timestamp来判断数据的新旧。3.cassandra删除column是通过写一个新column来实现的,这个column是tombstone。4.如果添加一个tombstone到cassandra中删除一个column后,在tombstone还未被清除前,再次写入一个时间戳更小的相同column,此时会导致这次的写入成功但用户查询不到该次写入的column。clue--------------------------------how can i get a tombstone’s timestamp?I understand that tombstones are internal impl
阅读《Tomcat 系统架构与设计模式》
大致阅读的了一遍,有很多内容还没有涉及到,只能留一个大致的印象,以后不断扩展,再来看这样的文章可能又有新的收获。http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/[@more@]
cassandra get set同步问题
import quicktime.std.clocks.Clock;import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;import me.prettyprint.cassandra.serializers.StringSerializer;import me.prettyprint.cassandra.service.CassandraHostConfigurator;import me.prettyprint.hector.api.Cluster;import me.prettyprint.hector.api.Keyspace;import me.prettyprint.hector.api.beans.HColumn;import me.prettyprint.hector.api.factory.HFactory;import me.prettyprint.hector.api.mutation.Mutator;import me.prettyprint.hector.api.query.ColumnQuery;impor
简单的hector连接casssandra测试
import me.prettyprint.cassandra.serializers.StringSerializer;import me.prettyprint.cassandra.service.CassandraHostConfigurator;import me.prettyprint.hector.api.Cluster;import me.prettyprint.hector.api.Keyspace;import me.prettyprint.hector.api.factory.HFactory;import me.prettyprint.hector.api.mutation.Mutator;public class ExampleClient { public static void main(String[] args) throws IllegalStateException,Exception { CassandraHostConfigurator cassandraHostConfigurator=new CassandraHostConfigura