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

Tyler Hobbs commented on CASSANDRA-10614:
-----------------------------------------

The cause was a bad short-circuit of the check for whether an update affects a 
view.  If the view's PK only included columns from the base table's PK, empty 
rows could be inserted into the view when an update didn't affect any columns 
in the view.

This appears to also fix the performance regression spotted in CASSANDRA-10609. 
 [~aboudreault] can you verify that for me?

Patches and pending CI runs:
||branch||testall||dtest||
|[CASSANDRA-10614|https://github.com/thobbs/cassandra/tree/CASSANDRA-10614]|[testall|http://cassci.datastax.com/view/Dev/view/beobal/job/thobbs-CASSANDRA-10614-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/beobal/job/thobbs-CASSANDRA-10614-dtest]|
|[CASSANDRA-10614-trunk|https://github.com/thobbs/cassandra/tree/CASSANDRA-10614-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/beobal/job/thobbs-CASSANDRA-10614-trunk-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/beobal/job/thobbs-CASSANDRA-10614-trunk-dtest]|


> AssertionError while flushing memtables
> ---------------------------------------
>
>                 Key: CASSANDRA-10614
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10614
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core, Local Write-Read Paths
>            Reporter: Tyler Hobbs
>            Assignee: Tyler Hobbs
>            Priority: Critical
>             Fix For: 3.0.0
>
>
> While running mvbench against a single local node, I noticed this stacktrace 
> showing up multiple times in the logs:
> {noformat}
> ERROR 16:40:01 Exception in thread Thread[MemtableFlushWriter:1,5,main]
> java.lang.AssertionError: null
>       at org.apache.cassandra.db.rows.Rows.collectStats(Rows.java:70) 
> ~[main/:na]
>       at 
> org.apache.cassandra.io.sstable.format.big.BigTableWriter$StatsCollector.applyToRow(BigTableWriter.java:197)
>  ~[main/:na]
>       at 
> org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:116) 
> ~[main/:na]
>       at 
> org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:38)
>  ~[main/:na]
>       at 
> org.apache.cassandra.db.ColumnIndex.writeAndBuildIndex(ColumnIndex.java:49) 
> ~[main/:na]
>       at 
> org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:149)
>  ~[main/:na]
>       at 
> org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.append(SimpleSSTableMultiWriter.java:45)
>  ~[main/:na]
>       at 
> org.apache.cassandra.io.sstable.SSTableTxnWriter.append(SSTableTxnWriter.java:52)
>  ~[main/:na]
>       at 
> org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:389)
>  ~[main/:na]
>       at 
> org.apache.cassandra.db.Memtable$FlushRunnable.runMayThrow(Memtable.java:352) 
> ~[main/:na]
>       at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
> ~[main/:na]
>       at 
> com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299)
>  ~[guava-18.0.jar:na]
>       at 
> org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1037)
>  ~[main/:na]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  ~[na:1.8.0_45]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  ~[na:1.8.0_45]
>       at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_45]
> {noformat}
> To reproduce, run mvbench with the regular schema and the following arguments:
> {noformat}
> mvn exec:java -Dexec.args="--num-users 100000 --num-songs 1000000 
> --num-artists 10000 -n 500000 --endpoint 127.0.0.1"
> {noformat}



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

Reply via email to