Re: network compatibility from 0.6 to 0.7

2010-08-05 Thread Gary Dusbabek
On Thu, Aug 5, 2010 at 10:05, Jonathan Ellis jbel...@gmail.com wrote:
 The situation today is that network compatibility in trunk has been
 broken without us noticing for a while now -- in CASSANDRA-956
 (according to git annotate) we changed ColumnFamily serialization in a
 non-backwards-compatible way.


956 was all about streaming, not CF serialization.  Still, it breaks
network compatibility with respect to streaming.  The IClock changes
were more likely to have broken CF serialization.

 Given the difficulty on the client side of mixing 0.6 and 0.7, most
 sites are going to end up doing a Big Bang upgrade anyway.  So is it
 really worth a lot of effort on the network protocol side?


My opinion: no.  But I don't have to upgrade a huge cluster.

Gary.


Re: network compatibility from 0.6 to 0.7

2010-08-05 Thread Jonathan Ellis
On Thu, Aug 5, 2010 at 11:13 AM, Gary Dusbabek gdusba...@gmail.com wrote:
 On Thu, Aug 5, 2010 at 10:05, Jonathan Ellis jbel...@gmail.com wrote:
 The situation today is that network compatibility in trunk has been
 broken without us noticing for a while now -- in CASSANDRA-956
 (according to git annotate) we changed ColumnFamily serialization in a
 non-backwards-compatible way.


 956 was all about streaming, not CF serialization.  Still, it breaks
 network compatibility with respect to streaming.  The IClock changes
 were more likely to have broken CF serialization.

In ColumnFamilySerializer the very first thing we used to read/write
the CF name, and now we read/write a boolean as to whether the CF is
null instead.  That is from r947122:

remove name field from cf and clean up. Patch by Stu Hood, reviewed by
Gary Dusbabek. CASSANDRA-956

Perhaps the issue number was a typo, but either way it is logically an
extension of the CF id changes from CASSANDRA-827 so it makes more
sense to think of that as the culprit here.

There may well be other problems deeper in as you say.

-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com


network compatibility from 0.6 to 0.7

2010-07-22 Thread Jonathan Ellis
How useful is this to insist on, given that 0.7 thrift api is fairly
incompatible with 0.6's?  (timestamp - Clock change being the biggest
problem there)

-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com


Re: network compatibility from 0.6 to 0.7

2010-07-22 Thread Tupshin Harper
As long as network compatibility is in place, it is possible to
incrementally upgrade a cluster by restricting thrift clients to only talk
to the 0.6 nodes until half the cluster is upgraded and then modify them to
talk to the 0.7 nodes. If networking compatibility breaks, there is no way
to avoid downtime or even test 0.7 under production load.

On Jul 22, 2010 9:50 AM, Jonathan Ellis jbel...@gmail.com wrote:

How useful is this to insist on, given that 0.7 thrift api is fairly
incompatible with 0.6's?  (timestamp - Clock change being the biggest
problem there)

--
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com


RE: network compatibility from 0.6 to 0.7

2010-07-22 Thread Stu Hood
 So I think we should probably try to preserve compatibility in 0.7.
We could probably limit the scope of our network compatibility to 
steady-state messages, aka, nothing having to do with bootstrap, repair, etc.

-Original Message-
From: Stu Hood stu.h...@rackspace.com
Sent: Thursday, July 22, 2010 12:35pm
To: dev@cassandra.apache.org
Subject: RE: network compatibility from 0.6 to 0.7

I feel like the next time we break network compatibility should be the last 
time, aka, the release when we introduce a backwards compatible RPC layer 
(Avro?), and implement support for dropping messages that a node can't handle.

So I think we should probably try to preserve compatibility in 0.7.


-Original Message-
From: Jonathan Ellis jbel...@gmail.com
Sent: Thursday, July 22, 2010 11:49am
To: cassandra-...@incubator.apache.org
Subject: network compatibility from 0.6 to 0.7

How useful is this to insist on, given that 0.7 thrift api is fairly
incompatible with 0.6's?  (timestamp - Clock change being the biggest
problem there)

-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com






Re: network compatibility from 0.6 to 0.7

2010-07-22 Thread Sylvain Lebresne
What would be the pros of breaking it for 0.7 now ?
I suppose you have something specific in mind that would break
compatibility ?

On Thu, Jul 22, 2010 at 8:19 PM, Gary Dusbabek gdusba...@gmail.com wrote:
 I think this depends on how much value users place in rolling upgrades
 (it's going to vary).

 My opinion is that we should be allowed to break it between major
 versions if required.

 Gary.

 On Thu, Jul 22, 2010 at 11:49, Jonathan Ellis jbel...@gmail.com wrote:
 How useful is this to insist on, given that 0.7 thrift api is fairly
 incompatible with 0.6's?  (timestamp - Clock change being the biggest
 problem there)

 --
 Jonathan Ellis
 Project Chair, Apache Cassandra
 co-founder of Riptano, the source for professional Cassandra support
 http://riptano.com