Skip to content

Commit

Permalink
remove vestigal Table.indexLocks
Browse files Browse the repository at this point in the history
  • Loading branch information
jbellis committed Apr 10, 2013
1 parent 3852085 commit b31f48d
Showing 1 changed file with 10 additions and 23 deletions.
33 changes: 10 additions & 23 deletions src/java/org/apache/cassandra/db/Table.java
Expand Up @@ -19,7 +19,6 @@

import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
Expand All @@ -31,7 +30,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.apache.cassandra.config.*;
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.db.commitlog.CommitLog;
import org.apache.cassandra.db.filter.ColumnSlice;
import org.apache.cassandra.db.filter.QueryFilter;
Expand Down Expand Up @@ -71,7 +73,6 @@ public class Table

/* ColumnFamilyStore per column family */
private final ConcurrentMap<UUID, ColumnFamilyStore> columnFamilyStores = new ConcurrentHashMap<UUID, ColumnFamilyStore>();
private final Object[] indexLocks;
private volatile AbstractReplicationStrategy replicationStrategy;
public static final Function<String,Table> tableTransformer = new Function<String, Table>()
{
Expand Down Expand Up @@ -260,10 +261,6 @@ private Table(String table, boolean loadSSTables)
assert metadata != null : "Unknown keyspace " + table;
createReplicationStrategy(metadata);

indexLocks = new Object[DatabaseDescriptor.getConcurrentWriters() * 128];
for (int i = 0; i < indexLocks.length; i++)
indexLocks[i] = new Object();

for (CFMetaData cfm : new ArrayList<CFMetaData>(metadata.cfMetaData().values()))
{
logger.debug("Initializing {}.{}", getName(), cfm.cfName);
Expand Down Expand Up @@ -403,22 +400,17 @@ public static void indexRow(DecoratedKey key, ColumnFamilyStore cfs, Set<String>
switchLock.readLock().lock();
try
{
// Our index lock is per-row, but we don't want to hold writes for too long, so for large rows
// we release the lock between pages
SliceQueryPager pager = new SliceQueryPager(cfs, key, ColumnSlice.ALL_COLUMNS_ARRAY);
while (pager.hasNext())
{
synchronized (cfs.table.indexLockFor(key.key))
ColumnFamily cf = pager.next();
ColumnFamily cf2 = cf.cloneMeShallow();
for (Column column : cf)
{
ColumnFamily cf = pager.next();
ColumnFamily cf2 = cf.cloneMeShallow();
for (Column column : cf)
{
if (cfs.indexManager.indexes(column.name(), indexes))
cf2.addColumn(column);
}
cfs.indexManager.indexRow(key.key, cf2);
if (cfs.indexManager.indexes(column.name(), indexes))
cf2.addColumn(column);
}
cfs.indexManager.indexRow(key.key, cf2);
}
}
finally
Expand All @@ -427,11 +419,6 @@ public static void indexRow(DecoratedKey key, ColumnFamilyStore cfs, Set<String>
}
}

private Object indexLockFor(ByteBuffer key)
{
return indexLocks[Math.abs(key.hashCode() % indexLocks.length)];
}

public List<Future<?>> flush()
{
List<Future<?>> futures = new ArrayList<Future<?>>();
Expand Down

0 comments on commit b31f48d

Please sign in to comment.