view src/treecms/tree/cassandra/v1/util/ConcurrentCassandraClientTest.java @ 10:4e0ed81bea89

added ConcurrentClient
author shoshi
date Tue, 19 Apr 2011 19:12:16 +0900
parents
children
line wrap: on
line source

package treecms.tree.cassandra.v1.util;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;

import org.apache.cassandra.thrift.Cassandra;
import org.apache.cassandra.thrift.ColumnOrSuperColumn;
import org.apache.cassandra.thrift.ColumnPath;
import org.apache.cassandra.thrift.ConsistencyLevel;
import org.apache.cassandra.thrift.InvalidRequestException;
import org.apache.cassandra.thrift.NotFoundException;
import org.apache.cassandra.thrift.TimedOutException;
import org.apache.cassandra.thrift.UnavailableException;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;

public class ConcurrentCassandraClientTest
{
	public static void main(String _args[]) throws InterruptedException, ExecutionException, InvalidRequestException, NotFoundException, UnavailableException, TimedOutException, TException
	{
		String host = "misaka01.cr.ie.u-ryukyu.ac.jp";
		int port = 9160;
		int count = 1000;
		
		System.out.println("Read benchmark.");
		ConcurrentCassandraClient conClient = ConcurrentCassandraClient.newInstance(host,port,7);
		ColumnPath path = new ColumnPath();
		path.column_family = "Standard1";
		path.column = "fuga".getBytes();
		
		long start = System.currentTimeMillis();
		for(int i = 0;i < count;i ++){
			conClient.get("Keyspace1","hoge",path,ConsistencyLevel.ONE); 
		}
		conClient.disconnect();
		System.out.println("concurrent client time = "+(System.currentTimeMillis()-start));
		
		TTransport tr = new TSocket(host,port);
		Cassandra.Client client = new Cassandra.Client(new TBinaryProtocol(tr));
		tr.open();
		
		start = System.currentTimeMillis();
		for(int i = 0;i < count;i ++){
			client.get("Keyspace1","hoge",path,ConsistencyLevel.ONE);
		}
		System.out.println("normal client time = "+(System.currentTimeMillis()-start));
		
		System.out.println("Write benchmark");
		conClient = ConcurrentCassandraClient.newInstance(host,port,30);
		
		start = System.currentTimeMillis();
		for(int i = 0;i < count;i ++){
			conClient.insert("Keyspace1","hoge",path,"piga".getBytes(),System.currentTimeMillis()/1000,ConsistencyLevel.ONE);
		}
		conClient.disconnect();
		System.out.println("concurrent client time = "+(System.currentTimeMillis()-start));
		
		start = System.currentTimeMillis();
		for(int i = 0;i < count;i ++){
			client.insert("Keyspace1","hoge",path,"piga".getBytes(),System.currentTimeMillis()/1000,ConsistencyLevel.ONE);
		}
		System.out.println("normal client time = "+(System.currentTimeMillis()-start));
		
	}
}