incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Subrata Roy" <Subrata....@openwave.com>
Subject Cassandra 0.6.2 with thrift hector-0.6.0-13
Date Tue, 08 Jun 2010 17:31:20 GMT
We are using Cassandra 0.6.2 with hector/thrift client, and our
application performance is really slow. We are not sure that it is
because of hector/thrift connection or not.  Jonathan E. and other
people has suggested that using "TBuffferedTransport(TSocket) instead of
a  TSocket directly" performance has drastically improved. If that is
the case, why TBuffferedTransport (TSocket) is not added as part of the
hector client by default? Is there any technical reason not to add as
part of the Cassandra 0.6.2/ hector-0.6.0-13 release? 

 

Thanks in advance for your valuable input.

 

Regards

Subrata

 

/// Code snippet from Hector client: CassandraClientFactory.java

 

private Cassandra.Client createThriftClient(String  url, int port)

      throws TTransportException , TException {

    log.debug("Creating a new thrift connection to {}:{}", url, port);

    TTransport tr;

    if (useThriftFramedTransport) {

      tr = new TFramedTransport(new TSocket(url, port, timeout));

    } else {

      tr = new TSocket(url, port, timeout);               --- change to
TBuffferedTransport () for better performance

    }

    TProtocol proto = new TBinaryProtocol(tr);

    Cassandra.Client client = new Cassandra.Client(proto);

    try {

      tr.open();

    } catch (TTransportException e) {

      // Thrift exceptions aren't very good in reporting, so we have to
catch the exception here and

      // add details to it.

      log.error("Unable to open transport to " + url + ":" + port, e);

      clientMonitor.incCounter(Counter.CONNECT_ERROR);

      throw new TTransportException("Unable to open transport to " + url
+ ":" + port + " , " +

          e.getLocalizedMessage(), e);

    }

    return client;

  }

 

 

 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message