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

Tyler Hobbs commented on CASSANDRA-11932:
-----------------------------------------

I looked into this, and both {{cassandra-3.0}} and {{trunk}} generate 
single-cell tombstones for row deletions in "dynamic" CFs.

I'm defining the CF like so:
{noformat}                                                                      
                                     
cfdef = CfDef(                                                                  
                                                     
    keyspace='ks',                                                              
                                                     
    name='cf',                                                                  
                                                     
    column_type='Standard',                                                     
                                                     
    comparator_type='AsciiType',                                                
                                                     
    key_validation_class='AsciiType',                                           
                                                     
    default_validation_class='AsciiType',                                       
                                                     
    column_metadata=[])                                                         
                                            
client.system_add_column_family(cfdef) 
{noformat}

And performing a deletion like:
{noformat}
session.execute("DELETE FROM ks.cf WHERE key = 'key' AND column1 = 'b'")
{noformat}

Looking at extra debug logging, it's sending a single-cell tombstone.

I would also try reproducing with mixed static/dynamic CFs, but we won't 
support those from CQL until CASSANDRA-10857 is complete, so I suspect that's 
not what you're describing.  Anything else I should try to reproduce with?

> Range tombstones generated instead of regular ones between 2.1 and 3.0 nodes 
> (in 3.0 -> 2.1 direction) for some tables
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-11932
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11932
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Coordination
>            Reporter: Aleksey Yeschenko
>            Assignee: Tyler Hobbs
>             Fix For: 3.0.x, 3.x
>
>
> Mixed and dynamic Thrift CFs deletions of the dynamic component are being 
> translated into range tombstones in 3.0 -> 2.1 direction. On 3.0 side they 
> are whole row deletions, and {{LegacyLayout::fromRow(CFMetaData, Row)}} turns 
> them into range tombstones even for non-composite, dynamic and mixed Thrift 
> CFs. They should be converted into single-cell deletions instead.
> This is not a correctness problem, strictly speaking, and on its own 'only' 
> causes digest mismatches on reads (and thus a lot of extra traffic w/ CL > 
> ONE) and less efficient representation on wire, though breaks some upgrades 
> in combination with CASSANDRA-11930.
> To reproduce, create a mixed CF while both nodes are on 2.1, upgrade one node 
> to 3.0, and with cqlsh connected to 3.0 remove some rows. Then do a {{SELECT 
> *}} query in cqlsh when connected to 2.1.



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

Reply via email to