Nobody can seriously use or develop against Cassandra with only the raw Thrift generated code either, so I agree that this is really a different discussion.
On Tue, Mar 11, 2014 at 3:38 PM, Edward Capriolo <edlinuxg...@gmail.com> wrote: > "I am confused how any of this is relevant to Jonathan's original email." > > Here is how: > > I believe if native is the new official transport, Cassandra should include > the Java driver source code with the project. > > Without the driver code inside the project how can someone use/develop the > software. > > > On Tue, Mar 11, 2014 at 4:24 PM, Brandon Williams <dri...@gmail.com> wrote: > >> I am confused how any of this is relevant to Jonathan's original email. >> >> >> On Tue, Mar 11, 2014 at 3:13 PM, Edward Capriolo <edlinuxg...@gmail.com >> >wrote: >> >> > "How about the myriad of thrift wrappers that aren't in-tree either?" >> > >> > How about all the times we trashed hbase saying "hbase treats non java >> > people like second class citizens" >> > >> > >> > >> http://mail-archives.apache.org/mod_mbox/hbase-user/201108.mbox/%3ccafk14gsrnysj_oev2_utwc-+u4ssdmdsmp2dgrst90hoypw...@mail.gmail.com%3E >> > >> > Nice to see us pulling a total 180. >> > >> > >> > On Tue, Mar 11, 2014 at 4:09 PM, Brandon Williams <dri...@gmail.com> >> > wrote: >> > >> > > How about the myriad of thrift wrappers that aren't in-tree either? >> > > >> > > >> > > On Tue, Mar 11, 2014 at 3:03 PM, Edward Capriolo < >> edlinuxg...@gmail.com >> > > >wrote: >> > > >> > > > "Other databases treat this issue differently, and there are a set of >> > > > tradeoffs. Mysql's decision may not be the best for Cassandra." >> > > > >> > > > Do you know of any other database that does not provide it's own >> > driver? >> > > > >> > > > >> > > > On Tue, Mar 11, 2014 at 3:55 PM, Tyler Hobbs <ty...@datastax.com> >> > wrote: >> > > > >> > > > > On Tue, Mar 11, 2014 at 2:24 PM, Edward Capriolo < >> > > edlinuxg...@gmail.com >> > > > > >wrote: >> > > > > >> > > > > > "The native protocol spec is the source of truth. If Cassandra's >> > > > > behavior >> > > > > > doesn't match the spec, it's a bug. Likewise for any drivers. >> I'm >> > > not >> > > > > > sure how this makes it unclear whether a bug is server-side or >> > > > > > client-side. Maybe an example scenario would be useful?" >> > > > > > >> > > > > > In the near future. I am a cassadra committer. I find a bug >> between >> > > > > > cassanda server and java client driver. For example, the server >> is >> > > > > sending >> > > > > > an unsigned by the other is expecting a signed byte. >> > > > > > >> > > > > > As a cassandra committer I can only change half of the equation. >> I >> > > > change >> > > > > > the cassandra server, that would break the ruby-client. That >> won't >> > > work >> > > > > > will it? >> > > > > > >> > > > > > My only recourse as a cassandra committer is to go ask some other >> > > > entity >> > > > > to >> > > > > > change their driver. >> > > > > > >> > > > > >> > > > > The solution would be: >> > > > > 1. Update the spec (for the current protocol version) to specify >> that >> > > > it's >> > > > > an unsigned byte. (Perhaps add a note that this will change in the >> > > next >> > > > > protocol version.) >> > > > > 2. In the next version of the protocol, specify that the byte is >> > signed >> > > > and >> > > > > change Cassandra's behavior to match this. Note this change in >> the >> > > > > "changes" section of the spec. >> > > > > >> > > > > This doesn't break existing clients and it allows the behavior to >> be >> > > > fixed >> > > > > with the next protocol version. (Cassandra also supports multiple >> > > > versions >> > > > > of the native protocol, fwiw.) >> > > > > >> > > > > >> > > > > > >> > > > > > "This means the spec is ambiguous. In that case, I imagine the >> > > proper >> > > > > > solution would be to create a jira ticket and decide how to >> resolve >> > > the >> > > > > > ambiguity in the spec." >> > > > > > >> > > > > > Yes but then after you change the spec, one client is broken and >> > one >> > > is >> > > > > > not. Is one client more "official" then another? Do you change >> the >> > > spec >> > > > > to >> > > > > > match the client with "more users". >> > > > > > >> > > > > >> > > > > You change the spec to match whatever Cassandra is doing. It's >> not a >> > > > > matter of what driver is more popular. >> > > > > >> > > > > >> > > > > > >> > > > > > Think about mysql. Does it ship with a driver? Yes. Who writes >> the >> > > > > driver? >> > > > > > mysql. Where is the source code for this driver? Inside the same >> > > > > repository >> > > > > > as the server. Cassandra should be the same way. >> > > > > >> > > > > >> > > > > Other databases treat this issue differently, and there are a set >> of >> > > > > tradeoffs. Mysql's decision may not be the best for Cassandra. >> > > > > >> > > > > >> > > > > -- >> > > > > Tyler Hobbs >> > > > > DataStax <http://datastax.com/> >> > > > > >> > > > >> > > >> > >> -- Jonathan Ellis Project Chair, Apache Cassandra co-founder, http://www.datastax.com @spyced