[
https://issues.apache.org/jira/browse/CASSANDRA-10261?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14736332#comment-14736332
]
Sylvain Lebresne commented on CASSANDRA-10261:
----------------------------------------------
I have to admit that I'm really not a fan of using the {{DeletionTime}} that
way. {{DeletionTime}} is somewhat of a generic class that is used in more than
one places. In particular, I believe we only really care here about row
tombstones, but {{DeletionTime}} is also used for range tombstones, partition
tombstones and collection (complex) tombstones. The new flag doesn't make sense
(or at the very least won't be used/properly handled) in those cases, which is
1) confusing code wise and 2) inefficient since that means we're storing an
additional byte every time we serialize a {{DeletionTime}} even though this is
a complete waste most often than not. On that efficiency front, even
restricting it to row tombstones, it's also a little bit sad that every non-MV
table will also pay that 1 byte price every time they use a row tombstones even
though they will also never use it. That is, we spent a reasonable amount of
effort for 3.0 to keep the serialization format relatively dense, and "wasting"
a full byte that way feels a bit of a step back.
> Materialized Views Timestamp issues
> -----------------------------------
>
> Key: CASSANDRA-10261
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10261
> Project: Cassandra
> Issue Type: Bug
> Reporter: T Jake Luciani
> Assignee: T Jake Luciani
> Fix For: 3.0.0 rc1
>
>
> As [~thobbs]
> [mentioned|https://issues.apache.org/jira/browse/CASSANDRA-9664?focusedCommentId=14724150&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14724150]
> in CASSANDRA-9664 there are issues dealing with updates to individual cells
> which can mask data from the base table in the view when trying to filter
> data correctly in the view.
> Unfortunately, this same issue exists for all MV tables with regular columns.
> In the earlier versions of MV we did have a fix for this which I now can see
> is ineffective for all situations.
> I've pushed some unit tests to show the issue (similar to tylers) and a fix.
> The idea is we keep the base table's timestamps per cell as it so we can
> *always* tell (per replica) which version of the record is the latest. Since
> the base table *always* writes the entire record to the view (part of our
> earlier partial fix) we can ensure the view record contains *at least* views
> primary key timestamp.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)