You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/06/25 19:39:45 UTC
svn commit: r958047 -
/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/HintedHandOffManager.java
Author: jbellis
Date: Fri Jun 25 17:39:44 2010
New Revision: 958047
URL: http://svn.apache.org/viewvc?rev=958047&view=rev
Log:
only flush + compact hints CF if we actually replayed anything. patch by jbellis
Modified:
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/HintedHandOffManager.java
Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/HintedHandOffManager.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/HintedHandOffManager.java?rev=958047&r1=958046&r2=958047&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/HintedHandOffManager.java (original)
+++ cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/HintedHandOffManager.java Fri Jun 25 17:39:44 2010
@@ -154,6 +154,7 @@ public class HintedHandOffManager
// 3. Delete that recipient from the key if write was successful
// 4. Now force a flush
// 5. Do major compaction to clean up all deletes etc.
+ int rowsReplayed = 0;
ColumnFamilyStore hintStore = Table.open(Table.SYSTEM_TABLE).getColumnFamilyStore(HINTS_CF);
for (String tableName : DatabaseDescriptor.getTables())
{
@@ -174,6 +175,7 @@ public class HintedHandOffManager
{
if (Arrays.equals(hintEndPoint.name(), targetEPBytes) && sendMessage(endPoint, tableName, keyStr))
{
+ rowsReplayed++;
if (endpoints.size() == 1)
deleteHintKey(tableName, keyColumn.name());
else
@@ -186,17 +188,22 @@ public class HintedHandOffManager
}
}
}
- hintStore.forceFlush();
- try
- {
- CompactionManager.instance.submitMajor(hintStore, 0, Integer.MAX_VALUE).get();
- }
- catch (Exception e)
+
+ if (rowsReplayed > 0)
{
- throw new RuntimeException(e);
+ hintStore.forceFlush();
+ try
+ {
+ CompactionManager.instance.submitMajor(hintStore, 0, Integer.MAX_VALUE).get();
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
}
- logger_.info("Finished hinted handoff for endpoint " + endPoint);
+ logger_.info(String.format("Finished hinted handoff of %s rows to endpoint %s",
+ rowsReplayed, endPoint));
}
/*