cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Tunnicliffe (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-10438) Overwrites of rows in memtable produce incorrect deltas for indexing
Date Fri, 04 Dec 2015 20:05:11 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-10438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sam Tunnicliffe updated CASSANDRA-10438:
----------------------------------------
    Component/s: CQL

> Overwrites of rows in memtable produce incorrect deltas for indexing
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-10438
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10438
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL, Local Write-Read Paths
>            Reporter: Sam Tunnicliffe
>            Assignee: Sam Tunnicliffe
>             Fix For: 3.0.0 rc2
>
>
> When a row in the memtable is updated, the delta is supplied to any registered indexer.
This consists of two {{Row}} objects, representing the old and new data in the memtable. As
per its javadoc, the contract of {{Index.Indexer::updateRow}} is that these old & new
rows contain only the changed columns, so any column which was not affected by the update
will appear in neither the new nor old row. The {{RowDiffListener::onCell}} method in {{SecondaryIndexManager.WriteTimeTransaction::onUpdated}}
which produces these deltas uses a reference equality check, where it should be checking object
equality. This results in unchanged, prexisting cells appearing in the {{toInsert}} row.



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

Mime
View raw message