cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ariel Weisberg (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-10246) Named values don't work with batches
Date Thu, 29 Oct 2015 19:50:27 GMT


Ariel Weisberg commented on CASSANDRA-10246:

It seems like existing clients will never be able to use named values in batches without updating
the protocol. There is no way to correctly decode far enough to get to the flags to find out
how to correctly decode the lists.

It seems like there is nothing we can do to save old clients and give them a good error.

What is the story with protocol changes like this? It seems like we need a version bump otherwise
newer versions of the client library can't identify that the server is unable to correctly
handle the suggestion in CASSANDRA-10247.

Speaking of clients this also means we need to update all the client libraries to refuse to
used named values in batches when the server is a version that doesn't support CASSANDRA-10247
as well as to encode using that approach (or some other).

> Named values don't work with batches
> ------------------------------------
>                 Key: CASSANDRA-10246
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL
>            Reporter: Michael Penick
>            Assignee: Ariel Weisberg
>              Labels: client-impacting
>             Fix For: 2.1.x, 2.2.x, 3.1
> This is broken at the protocol-level and in the implementation.
> At the protocol-level the {{<flags>}} component of the batch comes after the queries.
That means the protocol parser would need to read ahead (and back track) to determine the
values encoding and correctly read the values from the query entries. Also, a batch-level
setting for named values forces all queries to use the same encoding. Should batches force
a single, homogenous query value encoding? (This is confusing)
> In the implementation, values are indiscriminately read using {{CBUtil.readValueList()}},
and the batch flags are never checked (for {{(Flag.NAMES_FOR_VALUES}}) to see if {{CBUtil.readNameAndValueList()}}
should be called instead:
> Proposed solution: CASSANDRA-10247

This message was sent by Atlassian JIRA

View raw message