You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Brandon Williams (JIRA)" <ji...@apache.org> on 2009/07/28 18:22:14 UTC
[jira] Created: (CASSANDRA-320) Memtable sometimes not enqueued for
flush
Memtable sometimes not enqueued for flush
-----------------------------------------
Key: CASSANDRA-320
URL: https://issues.apache.org/jira/browse/CASSANDRA-320
Project: Cassandra
Issue Type: Bug
Components: Core
Environment: Debian lenny amd64 sun jdk 1.6
Reporter: Brandon Williams
There appears to be a (rare) race condition with flushing memtables. Occasionally, when Cassandra is in the process of flushing a table, another switch will occur. The latter table will be added to memtablesPendingFlush in ColumnFamilyStore, but it will not be enqueued for flush and thus hang around forever. Adding an else clause and a print statement to Memtable.java's enqueueFlush method reveals that the memtable is not being flushed because isFrozen_ is already true.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (CASSANDRA-320) Memtable sometimes not enqueued
for flush
Posted by "Hudson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12737084#action_12737084 ]
Hudson commented on CASSANDRA-320:
----------------------------------
Integrated in Cassandra #152 (See [http://hudson.zones.apache.org/hudson/job/Cassandra/152/])
combine switchMemtable and enqueueFlush so that they always operate on the same object. move forceFlush guts from MT to CFS since it encapsulates better there
patch by jbellis; reviewed by Brandon Williams for
> Memtable sometimes not enqueued for flush
> -----------------------------------------
>
> Key: CASSANDRA-320
> URL: https://issues.apache.org/jira/browse/CASSANDRA-320
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Environment: Debian lenny amd64 sun jdk 1.6
> Reporter: Brandon Williams
> Assignee: Jonathan Ellis
> Attachments: 320.patch
>
>
> There appears to be a (rare) race condition with flushing memtables. Occasionally, when Cassandra is in the process of flushing a table, another switch will occur. The latter table will be added to memtablesPendingFlush in ColumnFamilyStore, but it will not be enqueued for flush and thus hang around forever. Adding an else clause and a print statement to Memtable.java's enqueueFlush method reveals that the memtable is not being flushed because isFrozen_ is already true.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (CASSANDRA-320) Memtable sometimes not enqueued for
flush
Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-320:
-------------------------------------
Attachment: 320.patch
combine switchMemtable and enqueueFlush so that they always operate on the same object. move forceFlush guts from MT to CFS since it encapsulates better there
> Memtable sometimes not enqueued for flush
> -----------------------------------------
>
> Key: CASSANDRA-320
> URL: https://issues.apache.org/jira/browse/CASSANDRA-320
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Environment: Debian lenny amd64 sun jdk 1.6
> Reporter: Brandon Williams
> Attachments: 320.patch
>
>
> There appears to be a (rare) race condition with flushing memtables. Occasionally, when Cassandra is in the process of flushing a table, another switch will occur. The latter table will be added to memtablesPendingFlush in ColumnFamilyStore, but it will not be enqueued for flush and thus hang around forever. Adding an else clause and a print statement to Memtable.java's enqueueFlush method reveals that the memtable is not being flushed because isFrozen_ is already true.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (CASSANDRA-320) Memtable sometimes not enqueued
for flush
Posted by "Brandon Williams (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12736651#action_12736651 ]
Brandon Williams commented on CASSANDRA-320:
--------------------------------------------
+1
I'm no longer able to reproduce the issue with this patch after many millions of sustained inserts.
> Memtable sometimes not enqueued for flush
> -----------------------------------------
>
> Key: CASSANDRA-320
> URL: https://issues.apache.org/jira/browse/CASSANDRA-320
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Environment: Debian lenny amd64 sun jdk 1.6
> Reporter: Brandon Williams
> Attachments: 320.patch
>
>
> There appears to be a (rare) race condition with flushing memtables. Occasionally, when Cassandra is in the process of flushing a table, another switch will occur. The latter table will be added to memtablesPendingFlush in ColumnFamilyStore, but it will not be enqueued for flush and thus hang around forever. Adding an else clause and a print statement to Memtable.java's enqueueFlush method reveals that the memtable is not being flushed because isFrozen_ is already true.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (CASSANDRA-320) Memtable sometimes not enqueued
for flush
Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis resolved CASSANDRA-320.
--------------------------------------
Resolution: Fixed
Assignee: Jonathan Ellis
> Memtable sometimes not enqueued for flush
> -----------------------------------------
>
> Key: CASSANDRA-320
> URL: https://issues.apache.org/jira/browse/CASSANDRA-320
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Environment: Debian lenny amd64 sun jdk 1.6
> Reporter: Brandon Williams
> Assignee: Jonathan Ellis
> Attachments: 320.patch
>
>
> There appears to be a (rare) race condition with flushing memtables. Occasionally, when Cassandra is in the process of flushing a table, another switch will occur. The latter table will be added to memtablesPendingFlush in ColumnFamilyStore, but it will not be enqueued for flush and thus hang around forever. Adding an else clause and a print statement to Memtable.java's enqueueFlush method reveals that the memtable is not being flushed because isFrozen_ is already true.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.