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 2009/07/06 21:57:44 UTC
svn commit: r791589 - in
/incubator/cassandra/trunk/src/java/org/apache/cassandra:
db/ColumnFamilyStore.java io/SSTable.java
Author: jbellis
Date: Mon Jul 6 19:57:44 2009
New Revision: 791589
URL: http://svn.apache.org/viewvc?rev=791589&view=rev
Log:
encapsulate bloom filter access into sstable.getPosition
patch by jbellis; reviewed by Jun Rao for CASSANDRA-259
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=791589&r1=791588&r2=791589&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Mon Jul 6 19:57:44 2009
@@ -551,15 +551,6 @@
{
for (SSTable sstable : ssTables_.values())
{
- /*
- * Get the BloomFilter associated with this file. Check if the key
- * is present in the BloomFilter. If not continue to the next file.
- */
- boolean bVal = sstable.isKeyPossible(key);
- if (!bVal)
- {
- continue;
- }
ColumnFamily columnFamily = null;
try
{
@@ -567,6 +558,7 @@
}
catch (IOException e)
{
+ // annotate exception w/ more information about context
throw new IOException("Error fetching " + key + ":" + cf + " from " + sstable, e);
}
if (columnFamily != null)
@@ -1571,9 +1563,6 @@
List<SSTable> sstables = new ArrayList<SSTable>(ssTables_.values());
for (SSTable sstable : sstables)
{
- // If the key is not present in the SSTable's BloomFilter, continue to the next file
- if (!sstable.isKeyPossible(key))
- continue;
iter = new SSTableColumnIterator(sstable.getFilename(), key, cfName, startColumn, isAscending);
if (iter.hasNext())
{
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java?rev=791589&r1=791588&r2=791589&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java Mon Jul 6 19:57:44 2009
@@ -292,11 +292,14 @@
*/
public long getPosition(String decoratedKey, IPartitioner partitioner) throws IOException
{
+ if (!bf.isPresent(decoratedKey))
+ return -1;
long start = getIndexScanPosition(decoratedKey, partitioner);
if (start < 0)
{
return -1;
}
+
// TODO mmap the index file?
BufferedRandomAccessFile input = new BufferedRandomAccessFile(indexFilename(dataFile_), "r");
input.seek(start);
@@ -488,11 +491,6 @@
}
}
- public boolean isKeyPossible(String clientKey)
- {
- return bf.isPresent(partitioner_.decorateKey(clientKey));
- }
-
IPartitioner getPartitioner()
{
return partitioner_;