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 2012/06/06 16:41:51 UTC
[1/2] git commit: re-add cleanup-in-sorted-order code,
and remove unused Table.forceCleanup
Updated Branches:
refs/heads/trunk 625e61396 -> 84aba3a6a
re-add cleanup-in-sorted-order code, and remove unused Table.forceCleanup
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/84aba3a6
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/84aba3a6
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/84aba3a6
Branch: refs/heads/trunk
Commit: 84aba3a6ac924788247c60f94811007f4dc86023
Parents: 39aae3d
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Jun 6 09:41:31 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Jun 6 09:41:31 2012 -0500
----------------------------------------------------------------------
src/java/org/apache/cassandra/db/Table.java | 30 ---------------
.../cassandra/db/compaction/CompactionManager.java | 17 ++++++++-
2 files changed, 16 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/84aba3a6/src/java/org/apache/cassandra/db/Table.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Table.java b/src/java/org/apache/cassandra/db/Table.java
index 1308a08..9a056c8 100644
--- a/src/java/org/apache/cassandra/db/Table.java
+++ b/src/java/org/apache/cassandra/db/Table.java
@@ -155,36 +155,6 @@ public class Table
}
/**
- * Do a cleanup of keys that do not belong locally.
- */
- public void forceCleanup(NodeId.OneShotRenewer renewer) throws IOException, ExecutionException, InterruptedException
- {
- if (name.equals(SYSTEM_TABLE))
- throw new UnsupportedOperationException("Cleanup of the system table is neither necessary nor wise");
-
- // Sort the column families in order of SSTable size, so cleanup of smaller CFs
- // can free up space for larger ones
- List<ColumnFamilyStore> sortedColumnFamilies = new ArrayList<ColumnFamilyStore>(columnFamilyStores.values());
- Collections.sort(sortedColumnFamilies, new Comparator<ColumnFamilyStore>()
- {
- // Compare first on size and, if equal, sort by name (arbitrary & deterministic).
- public int compare(ColumnFamilyStore cf1, ColumnFamilyStore cf2)
- {
- long diff = (cf1.getTotalDiskSpaceUsed() - cf2.getTotalDiskSpaceUsed());
- if (diff > 0)
- return 1;
- if (diff < 0)
- return -1;
- return cf1.columnFamily.compareTo(cf2.columnFamily);
- }
- });
-
- // Cleanup in sorted order to free up space for the larger ones
- for (ColumnFamilyStore cfs : sortedColumnFamilies)
- cfs.forceCleanup(renewer);
- }
-
- /**
* Take a snapshot of the specific column family, or the entire set of column families
* if columnFamily is null with a given timestamp
*
http://git-wip-us.apache.org/repos/asf/cassandra/blob/84aba3a6/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 5f530a2..50e955d 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -248,7 +248,22 @@ public class CompactionManager implements CompactionManagerMBean
{
public void perform(ColumnFamilyStore store, Collection<SSTableReader> sstables) throws IOException
{
- doCleanupCompaction(store, sstables, renewer);
+ // Sort the column families in order of SSTable size, so cleanup of smaller CFs
+ // can free up space for larger ones
+ List<SSTableReader> sortedSSTables = new ArrayList<SSTableReader>(sstables);
+ Collections.sort(sortedSSTables, new Comparator<SSTableReader>()
+ {
+ public int compare(SSTableReader o1, SSTableReader o2)
+ {
+ return o1.onDiskLength() < o2.onDiskLength()
+ ? -1
+ : o1.onDiskLength() > o2.onDiskLength()
+ ? 1
+ : 0;
+ }
+ });
+
+ doCleanupCompaction(store, sortedSSTables, renewer);
}
});
}