[jira] [Updated] (CASSANDRA-10438) Overwrites of rows in memtable produce incorrect deltas for indexing
[ 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)
[jira] [Updated] (CASSANDRA-10438) Overwrites of rows in memtable produce incorrect deltas for indexing
[ https://issues.apache.org/jira/browse/CASSANDRA-10438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sam Tunnicliffe updated CASSANDRA-10438: Component/s: Local Write-Read Paths > 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)
[jira] [Updated] (CASSANDRA-10438) Overwrites of rows in memtable produce incorrect deltas for indexing
[ https://issues.apache.org/jira/browse/CASSANDRA-10438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ariel Weisberg updated CASSANDRA-10438: --- Reviewer: Ariel Weisberg > 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 >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)