What part of the native protocol makes any language a second class citizen?
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