Updated Branches:
  refs/heads/cassandra-1.2 0981e9a24 -> 86063aa20

Fix forceBlockingFlush behavior

patch by krummas; reviewed by slebresne for CASSANDRA-5241


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/86063aa2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/86063aa2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/86063aa2

Branch: refs/heads/cassandra-1.2
Commit: 86063aa2087b5b0bb9eff6458b528f74a39eaf02
Parents: 0981e9a
Author: Sylvain Lebresne <sylv...@datastax.com>
Authored: Fri Feb 15 23:06:53 2013 +0100
Committer: Sylvain Lebresne <sylv...@datastax.com>
Committed: Fri Feb 15 23:09:27 2013 +0100

----------------------------------------------------------------------
 CHANGES.txt                                        |    2 +-
 .../org/apache/cassandra/db/ColumnFamilyStore.java |   13 +++++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/86063aa2/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f8deb34..ad8c3f2 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -23,8 +23,8 @@
  * Add CQL3-based implementations of IAuthenticator and IAuthorizer
    (CASSANDRA-4898)
  * Fix timestamp-based tomstone removal logic (CASSANDRA-5248)
-Merged from 1.1:
  * cli: Add JMX authentication support (CASSANDRA-5080)
+ * Fix forceFlush behavior (CASSANDRA-5241)
 
 
 1.2.1

http://git-wip-us.apache.org/repos/asf/cassandra/blob/86063aa2/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java 
b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 6043be5..c08224e 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -689,8 +689,17 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 
         if (clean)
         {
-            logger.debug("forceFlush requested but everything is clean in {}", 
columnFamily);
-            return Futures.immediateCheckedFuture(null);
+            // We could have a memtable for this column family that is being
+            // flushed. Make sure the future returned wait for that so callers 
can
+            // assume that any data inserted prior to the call are fully 
flushed
+            // when the future returns (see #5241).
+            return postFlushExecutor.submit(new Runnable()
+            {
+                public void run()
+                {
+                    logger.debug("forceFlush requested but everything is clean 
in {}", columnFamily);
+                }
+            });
         }
 
         return switchMemtable(true, false);

Reply via email to