cassandra-commits mailing list archives

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

    [ https://issues.apache.org/jira/browse/CASSANDRA-10246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14981142#comment-14981142
] 

Ariel Weisberg edited comment on CASSANDRA-10246 at 10/29/15 7:53 PM:
----------------------------------------------------------------------

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.--
My mistake, this is an enhancement, and not something that is broken now?

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).


was (Author: aweisberg):
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: https://issues.apache.org/jira/browse/CASSANDRA-10246
>             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: https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/transport/messages/BatchMessage.java#L64
> Proposed solution: CASSANDRA-10247



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message