Hi,

 

First, a big thanks to the Cassandra team for delivering binary protocol.
It's really so much better than Thrift in term of client interface and
result handling.

 

As I'm rewriting my Cassandra client for .Net, one question popped regarding
PREPARE statement: the scope of the PREPARE statement seems not specified in
the binary protocol specification. Could you confirm that query id is server
scoped ? (meaning can I disconnect and reconnect later using the same
request Id).

 

Some remarks regarding QUERY/EXECUTE:

.        Having TTL and TIMESTAMP after [consistency] in the QUERY frame
would be helpful for client libraries - otherwise CQL parsing is required to
modify/append this info. I don't see why this could not be done like
[consistency] - it's purely technical and could get out of the way of the
CQL body query.

 

.        RESULT supports global_table_spec but QUERY/RESULT do not. This
would be nice to have such support there to help "relocating" a query to
another keyspace easily without having to deal with CQL parsing. Obviously
that's why USE exists, but this implies a keyspace tracking per connection
and this can easily defeats connections pool (and if not, this involves a
USE statement to force a keyspace change). Moreover, supporting stream id in
the frame header (for async query) would be harder if not tricky to
implement (keyspace tracking to detect USE statement).

Thanks,

- Pierre Chalamet

 

Reply via email to