Re: Proposal: freeze Thrift starting with 2.1.0

2014-03-13 Thread Edward Capriolo
There was a paging bug in 2.0 and a user just reported a bug sorting a one
row dataset.

So if you want to argue cql has surpassed thrift in all ways, one way it
clearly has not is correctness.

To demonatrate, search the changelog for cql bugs that return wrong result.
Then do the same search for thrift bugs that return the wrong result and
compare.

If nubes to the ml can pick up bugs and performance regressions it is a
serious issue.

On Wednesday, March 12, 2014, Jonathan Ellis jbel...@gmail.com wrote:
 I don't know if an IN query already does this without source diving,
 but it could certainly do so without needing extra syntax.

 On Wed, Mar 12, 2014 at 7:16 PM, Nicolas Favre-Felix nico...@acunu.com
wrote:
 If any new use cases
 come to light that can be done with Thrift but not CQL, we will commit
 to supporting those in CQL.

 Hello,

 (going back to the original topic...)

 I just wanted to point out that there is in my opinion an important
 use case that is doable in Thrift but not in CQL, which is to fetch
 several CQL rows from the same partition in a single isolated read. We
 lose the benefit of partition-level isolation if there is no way to
 read rows together.
 Of course we can perform range queries and even scan over
 multi-dimensional clustering keys with CASSANDRA-4851, but we still
 can't fetch rows using a set of clustering keys.

 I couldn't find a JIRA for this feature, does anyone know if there is
one?

 Cheers,
 Nicolas

 --
 For what it's worth, +1 on freezing Thrift.



 --
 Jonathan Ellis
 Project Chair, Apache Cassandra
 co-founder, http://www.datastax.com
 @spyced


-- 
Sorry this was sent from mobile. Will do less grammar and spell check than
usual.


Re: Proposal: freeze Thrift starting with 2.1.0

2014-03-13 Thread Michael Kjellman
Ed-

I understand and respect your enthusiasm for Thrift, but it's ship has sailed. 
Yes- if you understand the low level thrift API I'm sure you can have a 
rewarding experience, but as someone who wrote a client and had to abstract 
thrift...I don't have many kind words, and I certainly have less hair on my 
head...

Every line of code ever written has the chance of bugs and thankfully this 
project has a super dedicated group of people who are very very responsive at 
fixing those. The sorting and paging bugs might not have happened in thrift 
because that logic is and has always been pushed onto the client. (Where there 
are also lots of bugs). I like the model where the bug is fixed once for all 
languages and clients personally...

CQL has worked for me in 9 different sets of application logic as of now..and 
C* is more accessible to others because of it. Application code is simpler, 
client code is simpler, learning curve for new uses is easier. Win. Win. Win. 

IMHO, If you put 1/4 of the energy into CQL that you do into fighting for 
Thrift, I'm scared to think how amazing CQL would be. 

Best,
Michael

 On Mar 13, 2014, at 5:59 AM, Edward Capriolo edlinuxg...@gmail.com wrote:
 
 There was a paging bug in 2.0 and a user just reported a bug sorting a one
 row dataset.
 
 So if you want to argue cql has surpassed thrift in all ways, one way it
 clearly has not is correctness.
 
 To demonatrate, search the changelog for cql bugs that return wrong result.
 Then do the same search for thrift bugs that return the wrong result and
 compare.
 
 If nubes to the ml can pick up bugs and performance regressions it is a
 serious issue.
 
 On Wednesday, March 12, 2014, Jonathan Ellis jbel...@gmail.com wrote:
 I don't know if an IN query already does this without source diving,
 but it could certainly do so without needing extra syntax.
 
 On Wed, Mar 12, 2014 at 7:16 PM, Nicolas Favre-Felix nico...@acunu.com
 wrote:
 If any new use cases
 come to light that can be done with Thrift but not CQL, we will commit
 to supporting those in CQL.
 
 Hello,
 
 (going back to the original topic...)
 
 I just wanted to point out that there is in my opinion an important
 use case that is doable in Thrift but not in CQL, which is to fetch
 several CQL rows from the same partition in a single isolated read. We
 lose the benefit of partition-level isolation if there is no way to
 read rows together.
 Of course we can perform range queries and even scan over
 multi-dimensional clustering keys with CASSANDRA-4851, but we still
 can't fetch rows using a set of clustering keys.
 
 I couldn't find a JIRA for this feature, does anyone know if there is
 one?
 
 Cheers,
 Nicolas
 
 --
 For what it's worth, +1 on freezing Thrift.
 
 
 
 --
 Jonathan Ellis
 Project Chair, Apache Cassandra
 co-founder, http://www.datastax.com
 @spyced
 
 -- 
 Sorry this was sent from mobile. Will do less grammar and spell check than
 usual.

===

JOIN US! Live webinar featuring 451 Research  West Windsor Township: 
Best Practices in Security Convergence 
March 18 at 10am PDT.
RSVP at http://www.barracuda.com/451webinar



Re: Proposal: freeze Thrift starting with 2.1.0

2014-03-13 Thread Nate McCall


  Essentially, Usergrid supports *all* of the basic mongo CRUD operations
 on
  top of Cassandra, passing all of their test cases that don't use any
  out-of-the-way functions. Would it be possible to build something similar
  *solely* with CQL?
 

 If it's doable on top of thrift, it's doable on top of CQL, yes. Note that
 there
 is use cases (and usegrid might well be one) for which the CQL version will
 not
 look much better than the thrift one would (typically, if you want to use
 DynamicCompositeType, you will be back to manipulating your cell names
 and
 values as blob client side, the very same way you'd do with thrift). Still,
 it's
 possible, and even when it's not prettier with CQL than it is with thrift
 (and there
 is a very large amount of use cases where it is prettier with CQL), it's
 not worth
 either.


This is exactly what I needed to know. Thank you - really.

I'll look into this and see if there is something I can write up as a
explanation/conversion example for folks in a similar situation.





  I'm fine with Thrift going away - I get the reasoning there. I just want
 to
  be able to hack against (against, not on) internals more easily.
 

 Let's first maybe agree that this relatively separated from the let's
 freeze the
 thrift API proposal of Jonathan? If we do agree on that, maybe this should
 be
 discussed separately (at least some other thread), so it doesn't make it
 sound
 like this is some disagreement over Jonathan's proposal?


Fair enough.

+1 (non-binding).




-- 
-
Nate McCall
Austin, TX
@zznate

Co-Founder  Sr. Technical Consultant
Apache Cassandra Consulting
http://www.thelastpickle.com