You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yu...@apache.org on 2014/01/15 04:13:22 UTC
[1/5] git commit: make 2i CFMetaData have parent's CF ID
Updated Branches:
refs/heads/trunk 9dc585413 -> ea565aac9
make 2i CFMetaData have parent's CF ID
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3e31143e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3e31143e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3e31143e
Branch: refs/heads/trunk
Commit: 3e31143e1c8658e9ab529fe6f705bf836e7f7a64
Parents: 9dc5854
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Jan 9 11:20:31 2014 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Jan 14 20:22:37 2014 -0600
----------------------------------------------------------------------
src/java/org/apache/cassandra/config/CFMetaData.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e31143e/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index 78ee300..3dc7022 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -558,6 +558,15 @@ public final class CFMetaData
.memtableFlushPeriod(3600 * 1000);
}
+ /**
+ * Creates CFMetaData for secondary index CF.
+ * Secondary index CF has the same CF ID as parent's.
+ *
+ * @param parent Parent CF where secondary index is created
+ * @param info Column definition containing secondary index definition
+ * @param indexComparator Comparator for secondary index
+ * @return CFMetaData for secondary index
+ */
public static CFMetaData newIndexMetadata(CFMetaData parent, ColumnDefinition info, CellNameType indexComparator)
{
// Depends on parent's cache setting, turn on its index CF's cache.
@@ -566,7 +575,7 @@ public final class CFMetaData
? Caching.KEYS_ONLY
: Caching.NONE;
- return new CFMetaData(parent.ksName, parent.indexColumnFamilyName(info), ColumnFamilyType.Standard, indexComparator)
+ return new CFMetaData(parent.ksName, parent.indexColumnFamilyName(info), ColumnFamilyType.Standard, indexComparator, parent.cfId)
.keyValidator(info.type)
.readRepairChance(0.0)
.dcLocalReadRepairChance(0.0)
[5/5] git commit: Create system_auth tables with fixed CFID
Posted by yu...@apache.org.
Create system_auth tables with fixed CFID
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ea565aac
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ea565aac
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ea565aac
Branch: refs/heads/trunk
Commit: ea565aac9702698b2bfc2db7c3ca84da3f96121a
Parents: 29d5dd0
Author: Yuki Morishita <yu...@apache.org>
Authored: Tue Jan 14 21:12:38 2014 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Jan 14 21:12:38 2014 -0600
----------------------------------------------------------------------
src/java/org/apache/cassandra/auth/Auth.java | 24 ++++++++++++++++----
.../cassandra/auth/CassandraAuthorizer.java | 14 +-----------
.../cassandra/auth/PasswordAuthenticator.java | 19 +---------------
.../org/apache/cassandra/config/CFMetaData.java | 17 +++++++++-----
.../apache/cassandra/config/CFMetaDataTest.java | 2 +-
5 files changed, 33 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ea565aac/src/java/org/apache/cassandra/auth/Auth.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/Auth.java b/src/java/org/apache/cassandra/auth/Auth.java
index 36e55bf..90b1215 100644
--- a/src/java/org/apache/cassandra/auth/Auth.java
+++ b/src/java/org/apache/cassandra/auth/Auth.java
@@ -25,12 +25,15 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.config.KSMetaData;
import org.apache.cassandra.config.Schema;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.cql3.QueryOptions;
+import org.apache.cassandra.cql3.statements.CFStatement;
+import org.apache.cassandra.cql3.statements.CreateTableStatement;
import org.apache.cassandra.cql3.statements.SelectStatement;
import org.apache.cassandra.db.ConsistencyLevel;
import org.apache.cassandra.exceptions.RequestExecutionException;
@@ -127,7 +130,7 @@ public class Auth
return;
setupAuthKeyspace();
- setupUsersTable();
+ setupTable(USERS_CF, USERS_CF_SCHEMA);
DatabaseDescriptor.getAuthenticator().setup();
DatabaseDescriptor.getAuthorizer().setup();
@@ -187,15 +190,26 @@ public class Auth
}
}
- private static void setupUsersTable()
+ /**
+ * Set up table from given CREATE TABLE statement under system_auth keyspace, if not already done so.
+ *
+ * @param name name of the table
+ * @param cql CREATE TABLE statement
+ */
+ public static void setupTable(String name, String cql)
{
- if (Schema.instance.getCFMetaData(AUTH_KS, USERS_CF) == null)
+ if (Schema.instance.getCFMetaData(AUTH_KS, name) == null)
{
try
{
- QueryProcessor.process(USERS_CF_SCHEMA, ConsistencyLevel.ANY);
+ CFStatement parsed = (CFStatement)QueryProcessor.parseStatement(cql);
+ parsed.prepareKeyspace(AUTH_KS);
+ CreateTableStatement statement = (CreateTableStatement) parsed.prepare().statement;
+ CFMetaData cfm = statement.getCFMetaData().clone(CFMetaData.generateLegacyCfId(AUTH_KS, name));
+ assert cfm.cfName.equals(name);
+ MigrationManager.announceNewColumnFamily(cfm);
}
- catch (RequestExecutionException e)
+ catch (Exception e)
{
throw new AssertionError(e);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ea565aac/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java b/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java
index 8f257db..85d2b16 100644
--- a/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java
+++ b/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java
@@ -25,7 +25,6 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.cassandra.config.Schema;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.cql3.QueryOptions;
@@ -33,7 +32,6 @@ import org.apache.cassandra.cql3.statements.SelectStatement;
import org.apache.cassandra.db.ConsistencyLevel;
import org.apache.cassandra.db.marshal.UTF8Type;
import org.apache.cassandra.exceptions.*;
-import org.apache.cassandra.service.ClientState;
import org.apache.cassandra.service.QueryState;
import org.apache.cassandra.transport.messages.ResultMessage;
import org.apache.cassandra.utils.ByteBufferUtil;
@@ -240,17 +238,7 @@ public class CassandraAuthorizer implements IAuthorizer
public void setup()
{
- if (Schema.instance.getCFMetaData(Auth.AUTH_KS, PERMISSIONS_CF) == null)
- {
- try
- {
- process(PERMISSIONS_CF_SCHEMA);
- }
- catch (RequestExecutionException e)
- {
- throw new AssertionError(e);
- }
- }
+ Auth.setupTable(PERMISSIONS_CF, PERMISSIONS_CF_SCHEMA);
try
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ea565aac/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java b/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java
index cd5bdc3..1567bde 100644
--- a/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java
+++ b/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java
@@ -31,14 +31,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.Schema;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.cql3.QueryOptions;
import org.apache.cassandra.cql3.statements.SelectStatement;
import org.apache.cassandra.db.ConsistencyLevel;
import org.apache.cassandra.exceptions.*;
-import org.apache.cassandra.service.ClientState;
import org.apache.cassandra.service.QueryState;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.transport.messages.ResultMessage;
@@ -168,7 +166,7 @@ public class PasswordAuthenticator implements ISaslAwareAuthenticator
public void setup()
{
- setupCredentialsTable();
+ Auth.setupTable(CREDENTIALS_CF, CREDENTIALS_CF_SCHEMA);
// the delay is here to give the node some time to see its peers - to reduce
// "skipped default user setup: some nodes are were not ready" log spam.
@@ -205,21 +203,6 @@ public class PasswordAuthenticator implements ISaslAwareAuthenticator
return new PlainTextSaslAuthenticator();
}
- private void setupCredentialsTable()
- {
- if (Schema.instance.getCFMetaData(Auth.AUTH_KS, CREDENTIALS_CF) == null)
- {
- try
- {
- process(CREDENTIALS_CF_SCHEMA, ConsistencyLevel.ANY);
- }
- catch (RequestExecutionException e)
- {
- throw new AssertionError(e);
- }
- }
- }
-
// if there are no users yet - add default superuser.
private void setupDefaultUser()
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ea565aac/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index 3dc7022..cdc4cdb 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -543,14 +543,14 @@ public final class CFMetaData
*
* Since 2.1, this is only used for system columnfamilies and tests.
*/
- static UUID getId(String ksName, String cfName)
+ public static UUID generateLegacyCfId(String ksName, String cfName)
{
return UUID.nameUUIDFromBytes(ArrayUtils.addAll(ksName.getBytes(), cfName.getBytes()));
}
private static CFMetaData newSystemMetadata(String keyspace, String cfName, String comment, CellNameType comparator)
{
- CFMetaData newCFMD = new CFMetaData(keyspace, cfName, ColumnFamilyType.Standard, comparator, getId(keyspace, cfName));
+ CFMetaData newCFMD = new CFMetaData(keyspace, cfName, ColumnFamilyType.Standard, comparator, generateLegacyCfId(keyspace, cfName));
return newCFMD.comment(comment)
.readRepairChance(0)
.dcLocalReadRepairChance(0)
@@ -603,10 +603,15 @@ public final class CFMetaData
return copyOpts(new CFMetaData(ksName, cfName, cfType, comparator, cfId), this);
}
- // Create a new CFMD by changing just the cfName
- public static CFMetaData rename(CFMetaData cfm, String newName)
+ /**
+ * Clones the CFMetaData, but sets a different cfId
+ *
+ * @param newCfId the cfId for the cloned CFMetaData
+ * @return the cloned CFMetaData instance with the new cfId
+ */
+ public CFMetaData clone(UUID newCfId)
{
- return copyOpts(new CFMetaData(cfm.ksName, newName, cfm.cfType, cfm.comparator, cfm.cfId), cfm);
+ return copyOpts(new CFMetaData(ksName, cfName, cfType, comparator, newCfId), this);
}
static CFMetaData copyOpts(CFMetaData newCFMD, CFMetaData oldCFMD)
@@ -1677,7 +1682,7 @@ public final class CFMetaData
if (result.has("cf_id"))
cfId = result.getUUID("cf_id");
else
- cfId = getId(ksName, cfName);
+ cfId = generateLegacyCfId(ksName, cfName);
CFMetaData cfm = new CFMetaData(ksName,
cfName,
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ea565aac/test/unit/org/apache/cassandra/config/CFMetaDataTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/config/CFMetaDataTest.java b/test/unit/org/apache/cassandra/config/CFMetaDataTest.java
index 9cd4adf..d0ff179 100644
--- a/test/unit/org/apache/cassandra/config/CFMetaDataTest.java
+++ b/test/unit/org/apache/cassandra/config/CFMetaDataTest.java
@@ -109,7 +109,7 @@ public class CFMetaDataTest extends SchemaLoader
checkInverses(cfm);
// Testing with compression to catch #3558
- CFMetaData withCompression = CFMetaData.rename(cfm, cfm.cfName); // basically a clone
+ CFMetaData withCompression = cfm.clone();
withCompression.compressionParameters(new CompressionParameters(SnappyCompressor.instance, 32768, new HashMap<String, String>()));
checkInverses(withCompression);
}
[2/5] git commit: Don't scrub 2i CF if index type is CUSTOM
Posted by yu...@apache.org.
Don't scrub 2i CF if index type is CUSTOM
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0bfe9efd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0bfe9efd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0bfe9efd
Branch: refs/heads/trunk
Commit: 0bfe9efd859eccd6bb6c6a253ad3912650831ec0
Parents: 3e31143
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Jan 9 12:51:04 2014 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Jan 14 20:23:00 2014 -0600
----------------------------------------------------------------------
.../org/apache/cassandra/db/ColumnFamilyStore.java | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0bfe9efd/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 6d3e21a..892e881 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -40,11 +40,8 @@ import org.apache.cassandra.cache.IRowCacheEntry;
import org.apache.cassandra.cache.RowCacheKey;
import org.apache.cassandra.cache.RowCacheSentinel;
import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor;
-import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.config.*;
import org.apache.cassandra.config.CFMetaData.SpeculativeRetry;
-import org.apache.cassandra.config.ColumnDefinition;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.Schema;
import org.apache.cassandra.db.columniterator.OnDiskAtomIterator;
import org.apache.cassandra.db.commitlog.CommitLog;
import org.apache.cassandra.db.commitlog.ReplayPosition;
@@ -464,8 +461,12 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
{
if (def.isIndexed())
{
- CFMetaData indexMetadata = CFMetaData.newIndexMetadata(metadata, def, SecondaryIndex.getIndexComparator(metadata, def));
- scrubDataDirectories(indexMetadata);
+ CellNameType indexComparator = SecondaryIndex.getIndexComparator(metadata, def);
+ if (indexComparator != null)
+ {
+ CFMetaData indexMetadata = CFMetaData.newIndexMetadata(metadata, def, indexComparator);
+ scrubDataDirectories(indexMetadata);
+ }
}
}
}
[4/5] git commit: Fix serialization test
Posted by yu...@apache.org.
Fix serialization test
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/29d5dd03
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/29d5dd03
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/29d5dd03
Branch: refs/heads/trunk
Commit: 29d5dd03ae7f6b4741e07ce01014acaca93a6e6e
Parents: be21417
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Jan 9 17:06:34 2014 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Jan 14 20:23:35 2014 -0600
----------------------------------------------------------------------
test/data/serialization/2.0/db.Row.bin | Bin 587 -> 0 bytes
.../org/apache/cassandra/db/SerializationsTest.java | 8 ++++----
2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/29d5dd03/test/data/serialization/2.0/db.Row.bin
----------------------------------------------------------------------
diff --git a/test/data/serialization/2.0/db.Row.bin b/test/data/serialization/2.0/db.Row.bin
deleted file mode 100644
index c699448..0000000
Binary files a/test/data/serialization/2.0/db.Row.bin and /dev/null differ
http://git-wip-us.apache.org/repos/asf/cassandra/blob/29d5dd03/test/unit/org/apache/cassandra/db/SerializationsTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/SerializationsTest.java b/test/unit/org/apache/cassandra/db/SerializationsTest.java
index 2bc1493..68686cb 100644
--- a/test/unit/org/apache/cassandra/db/SerializationsTest.java
+++ b/test/unit/org/apache/cassandra/db/SerializationsTest.java
@@ -200,8 +200,9 @@ public class SerializationsTest extends AbstractSerializationsTester
@Test
public void testRowRead() throws IOException
{
- if (EXECUTE_WRITES)
- testRowWrite();
+ // Since every table creation generates different CF ID,
+ // we need to generate file every time
+ testRowWrite();
DataInputStream in = getInput("db.Row.bin");
assert Row.serializer.deserialize(in, getVersion()) != null;
@@ -248,8 +249,7 @@ public class SerializationsTest extends AbstractSerializationsTester
public void testMutationRead() throws IOException
{
// mutation deserialization requires being able to look up the keyspace in the schema,
- // so we need to rewrite this each time. We can go back to testing on-disk data
- // once we pull RM.keyspace field out.
+ // so we need to rewrite this each time. plus, CF ID is different for every run.
testMutationWrite();
DataInputStream in = getInput("db.RowMutation.bin");
[3/5] git commit: Fix user defined compaction
Posted by yu...@apache.org.
Fix user defined compaction
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/be214175
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/be214175
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/be214175
Branch: refs/heads/trunk
Commit: be2141757010aacbcb2c6ebaa00623db14e192bd
Parents: 0bfe9ef
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Jan 9 15:23:11 2014 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Jan 14 20:23:22 2014 -0600
----------------------------------------------------------------------
.../org/apache/cassandra/db/Directories.java | 10 +++++++++
.../db/compaction/CompactionManager.java | 23 ++++++--------------
2 files changed, 17 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/be214175/src/java/org/apache/cassandra/db/Directories.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Directories.java b/src/java/org/apache/cassandra/db/Directories.java
index 9eb254e..a124d67 100644
--- a/src/java/org/apache/cassandra/db/Directories.java
+++ b/src/java/org/apache/cassandra/db/Directories.java
@@ -248,6 +248,16 @@ public class Directories
return null;
}
+ public Descriptor find(String filename)
+ {
+ for (File dir : sstableDirectories)
+ {
+ if (new File(dir, filename).exists())
+ return Descriptor.fromFilename(dir, filename).left;
+ }
+ return null;
+ }
+
public File getDirectoryForNewSSTables()
{
File path = getWriteableLocationAsFile();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/be214175/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 e4f5237..7927574 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -303,7 +303,7 @@ public class CompactionManager implements CompactionManagerMBean
public void forceUserDefinedCompaction(String dataFiles)
{
String[] filenames = dataFiles.split(",");
- Multimap<Pair<String, String>, Descriptor> descriptors = ArrayListMultimap.create();
+ Multimap<ColumnFamilyStore, Descriptor> descriptors = ArrayListMultimap.create();
for (String filename : filenames)
{
@@ -314,19 +314,14 @@ public class CompactionManager implements CompactionManagerMBean
logger.warn("Schema does not exist for file {}. Skipping.", filename);
continue;
}
- File directory = new File(desc.ksname + File.separator + desc.cfname);
// group by keyspace/columnfamily
- Pair<Descriptor, String> p = Descriptor.fromFilename(directory, filename.trim());
- Pair<String, String> key = Pair.create(p.left.ksname, p.left.cfname);
- descriptors.put(key, p.left);
+ ColumnFamilyStore cfs = Keyspace.open(desc.ksname).getColumnFamilyStore(desc.cfname);
+ descriptors.put(cfs, cfs.directories.find(filename.trim()));
}
List<Future<?>> futures = new ArrayList<>();
- for (Pair<String, String> key : descriptors.keySet())
- {
- ColumnFamilyStore cfs = Keyspace.open(key.left).getColumnFamilyStore(key.right);
- futures.add(submitUserDefined(cfs, descriptors.get(key), getDefaultGcBefore(cfs)));
- }
+ for (ColumnFamilyStore cfs : descriptors.keySet())
+ futures.add(submitUserDefined(cfs, descriptors.get(cfs), getDefaultGcBefore(cfs)));
FBUtilities.waitOnFutures(futures);
}
@@ -369,16 +364,12 @@ public class CompactionManager implements CompactionManagerMBean
}
// This acquire a reference on the sstable
- // This is not efficent, do not use in any critical path
+ // This is not efficient, do not use in any critical path
private SSTableReader lookupSSTable(final ColumnFamilyStore cfs, Descriptor descriptor)
{
for (SSTableReader sstable : cfs.getSSTables())
{
- // .equals() with no other changes won't work because in sstable.descriptor, the directory is an absolute path.
- // We could construct descriptor with an absolute path too but I haven't found any satisfying way to do that
- // (DB.getDataFileLocationForTable() may not return the right path if you have multiple volumes). Hence the
- // endsWith.
- if (sstable.descriptor.toString().endsWith(descriptor.toString()))
+ if (sstable.descriptor.equals(descriptor))
return sstable;
}
return null;