incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hiller, Dean" <Dean.Hil...@nrel.gov>
Subject cassandra 1.2.2 with cassandra thrift 1.1.1? or 1.1.4 with 1.2.2 thrift?
Date Mon, 04 Mar 2013 13:40:37 GMT
I am trying to figure out how to swing a rolling upgrade.  My current
version of astyanax 1.56.18 with cassandra thrift 1.1.1 against an
upgraded QA(from 1.1.4 to 1.2.2) fails with the below exception.......(should
I be researching why?, or should I be figuring out why 1.2.2 thrift
doesn't work with cassandra 1.1.4?).  I am going to dive into thrift 1.1.1
with cassandra 1.2.2 and try to debug why that doesn't work as I am
guessing it should, correct?

Caused by: 
com.netflix.astyanax.connectionpool.exceptions.TransportException:
TransportException: [host=sdi-prod-03(10.20.5.84):9160, latency=1(7),
attempts=3]org.apache.thrift.transport.TTransportException
	at 
com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(Thrif
tConverter.java:197) ~[astyanax-1.56.18.jar:na]
	at 
com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperation
Impl.java:60) ~[astyanax-1.56.18.jar:na]
	at 
com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperation
Impl.java:27) ~[astyanax-1.56.18.jar:na]
	at 
com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$1.execute(Thrif
tSyncConnectionFactoryImpl.java:136) ~[astyanax-1.56.18.jar:na]
	at 
com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tr
yOperation(AbstractExecuteWithFailoverImpl.java:69)
~[astyanax-1.56.18.jar:na]
	at 
com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPoo
l.executeWithFailover(AbstractHostPartitionConnectionPool.java:248)
~[astyanax-1.56.18.jar:na]
	at 
com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$4.execute(ThriftCol
umnFamilyQueryImpl.java:532) ~[astyanax-1.56.18.jar:na]
	at 
com.alvazan.orm.layer9z.spi.db.cassandra.CursorKeysToRows2.execute(CursorKe
ysToRows2.java:268) ~[playorm.jar:na]
	... 13 common frames omitted
Caused by: org.apache.thrift.transport.TTransportException: null
	at 
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java
:132) ~[libthrift-0.7.0.jar:0.7.0]
	at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
~[libthrift-0.7.0.jar:0.7.0]
	at 
org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.jav
a:129) ~[libthrift-0.7.0.jar:0.7.0]
	at 
org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101
) ~[libthrift-0.7.0.jar:0.7.0]
	at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
~[libthrift-0.7.0.jar:0.7.0]
	at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378
) ~[libthrift-0.7.0.jar:0.7.0]
	at 
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297
) ~[libthrift-0.7.0.jar:0.7.0]
	at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol
.java:204) ~[libthrift-0.7.0.jar:0.7.0]
	at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
~[libthrift-0.7.0.jar:0.7.0]
	at 
org.apache.cassandra.thrift.Cassandra$Client.recv_multiget_slice(Cassandra.
java:622) ~[cassandra-thrift-1.1.1.jar:1.1.1]
	at 
org.apache.cassandra.thrift.Cassandra$Client.multiget_slice(Cassandra.java:
606) ~[cassandra-thrift-1.1.1.jar:1.1.1]
	at 
com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$4$1.internalExecute
(ThriftColumnFamilyQueryImpl.java:538) ~[astyanax-1.56.18.jar:na]
	at 
com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$4$1.internalExecute
(ThriftColumnFamilyQueryImpl.java:535) ~[astyanax-1.56.18.jar:na]
	at 
com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperation
Impl.java:55) ~[astyanax-1.56.18.jar:na]
	... 19 common frames omitted



On 3/4/13 6:01 AM, "Hiller, Dean" <Dean.Hiller@nrel.gov> wrote:

>For us, this was an issue creating tables in 1.1.4 using thrift, then
>upgrading to 1.2.2.  We did not use cli to create anything.  I will try
>the complete test again today and hopefully get more detail(I didn't know
>I could not run the same thrift code in 1.2.2 for keyspace creation/table
>creation)
>
>Thanks,
>Dean
>
>From: aaron morton
><aaron@thelastpickle.com<mailto:aaron@thelastpickle.com>>
>Reply-To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>"
><user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
>Date: Sunday, March 3, 2013 11:09 PM
>To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>"
><user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
>Subject: Re: no backwards compatibility for thrift in 1.2.2? (we get
>utter failure)
>
>Dean,
>Is this an issue with tables created using CQL 3 ?
>
>OR...
>
>An issue with tables created in 1.1.4 using the CLI not been readable
>after an in place upgrade to 1.2.2 ?
>
>I did a quick test and it worked.
>
>Cheers
>
>-----------------
>Aaron Morton
>Freelance Cassandra Developer
>New Zealand
>
>@aaronmorton
>http://www.thelastpickle.com
>
>On 3/03/2013, at 8:18 PM, Edward Capriolo
><edlinuxguru@gmail.com<mailto:edlinuxguru@gmail.com>> wrote:
>
>Your other option is to create tables 'WITH COMPACT STORAGE'. Basically
>if you use COMPACT STORAGE and create tables as you did before.
>
>https://issues.apache.org/jira/browse/CASSANDRA-2995
>
>From an application standpoint, if you can't do sparse, wide rows, you
>break compatibility with 90% of Cassandra applications. So that rules out
>almost everything; if you can't provide the same data model, you're
>creating fragmentation, not pluggability.
>
>I now call Cassandra compact storage 'c*' storage, and I call CQL3
>storage 'c*++' storage. See debates on c vs C++ to understand why :).
>
>
>On Sun, Mar 3, 2013 at 9:39 PM, Michael Kjellman
><mkjellman@barracuda.com<mailto:mkjellman@barracuda.com>> wrote:
>Dean,
>
>I think if you look back through previous mailing list items you'll find
>answers to this already but to summarize:
>
>Tables created prior to 1.2 will continue to work after upgrade. New
>tables created are not exposed by the Thrift API. It is up to client
>developers to upgrade the client to pull the required metadata for
>serialization and deserialization of the data from the System column
>family instead.
>
>I don't know Netflix's time table for an update to Astyanax but I'm sure
>they are working on it. Alternatively, you can also  use the Datastax java
>driver in your QA environment for now.
>
>If you only need to access existing column families this shouldn't be an
>issue
>
>On 3/3/13 6:31 PM, "Hiller, Dean"
><Dean.Hiller@nrel.gov<mailto:Dean.Hiller@nrel.gov>> wrote:
>
>>I remember huge discussions on backwards compatibility and we have a ton
>>of code using thrift(as do many people out there).  We happen to have a
>>startup bean for development that populates data in cassandra for us.  We
>>cleared out our QA completely(no data) and ran thisÅ .it<http://thisÅ .it>
>>turns out there
>>seems to be no backwards compatibility as it utterly fails.
>>
>>From astyanax point of view, we simply get this (when going back to
>>1.1.4, everything works fine.  I can go down the path of finding out
>>where backwards compatibility breaks but does this mean essentially
>>everyone has to rewrite their applications?  OR is there a list of
>>breaking changes that we can't do anymore?  Has anyone tried the latest
>>astyanax client with 1.2.2 version?
>>
>>An unexpected error occured caused by exception RuntimeException:
>>com.netflix.astyanax.connectionpool.exceptions.NoAvailableHostsException:
>>NoAvailableHostsException: [host=None(0.0.0.0):0, latency=0(0),
>>attempts=0]No hosts to borrow from
>>
>>Thanks,
>>Dean
>
>
>Copy, by Barracuda, helps you store, protect, and share all your amazing
>
>things. Start today: www.copy.com<http://www.copy.com/>.
>
>


Mime
View raw message