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/08/02 00:31:24 UTC

svn commit: r799950 - in /incubator/cassandra/trunk: src/java/org/apache/cassandra/io/ test/unit/org/apache/cassandra/io/

Author: jbellis
Date: Sat Aug  1 22:31:24 2009
New Revision: 799950

URL: http://svn.apache.org/viewvc?rev=799950&view=rev
Log:
remove AbstractWriter. all it was providing was append methods, which are inlined into SSTableWriter now; the rest was all wrappers. also, rename some variables in SST/SSTW.
patch by jbellis; reviewed by Stu Hood for CASSANDRA-330

Removed:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/AbstractWriter.java
Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java
    incubator/cassandra/trunk/test/unit/org/apache/cassandra/io/SSTableTest.java

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=799950&r1=799949&r2=799950&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 Sat Aug  1 22:31:24 2009
@@ -22,7 +22,7 @@
  */
 public abstract class SSTable
 {
-    protected String dataFile;
+    protected String path;
     protected IPartitioner partitioner;
     protected BloomFilter bf;
     protected List<KeyPosition> indexPositions;
@@ -34,7 +34,7 @@
     public SSTable(String filename, IPartitioner partitioner)
     {
         assert filename.endsWith("-Data.db");
-        this.dataFile = filename;
+        this.path = filename;
         this.partitioner = partitioner;
     }
 
@@ -47,7 +47,7 @@
 
     protected String indexFilename()
     {
-        return indexFilename(dataFile);
+        return indexFilename(path);
     }
 
     protected static String filterFilename(String dataFile)
@@ -59,12 +59,12 @@
 
     protected String filterFilename()
     {
-        return filterFilename(dataFile);
+        return filterFilename(path);
     }
 
     public String getFilename()
     {
-        return dataFile;
+        return path;
     }
 
     public static String parseTableName(String filename)

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java?rev=799950&r1=799949&r2=799950&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java Sat Aug  1 22:31:24 2009
@@ -215,7 +215,7 @@
         }
 
         // TODO mmap the index file?
-        BufferedRandomAccessFile input = new BufferedRandomAccessFile(indexFilename(dataFile), "r");
+        BufferedRandomAccessFile input = new BufferedRandomAccessFile(indexFilename(path), "r");
         input.seek(start);
         int i = 0;
         try
@@ -258,7 +258,7 @@
         {
             return 0;
         }
-        BufferedRandomAccessFile input = new BufferedRandomAccessFile(indexFilename(dataFile), "r");
+        BufferedRandomAccessFile input = new BufferedRandomAccessFile(indexFilename(path), "r");
         input.seek(start);
         try
         {
@@ -287,10 +287,10 @@
 
     public void delete() throws IOException
     {
-        FileUtils.deleteWithConfirm(new File(dataFile));
-        FileUtils.deleteWithConfirm(new File(indexFilename(dataFile)));
-        FileUtils.deleteWithConfirm(new File(filterFilename(dataFile)));
-        openedFiles.remove(dataFile);
+        FileUtils.deleteWithConfirm(new File(path));
+        FileUtils.deleteWithConfirm(new File(indexFilename(path)));
+        FileUtils.deleteWithConfirm(new File(filterFilename(path)));
+        openedFiles.remove(path);
     }
 
     /** obviously only for testing */
@@ -305,7 +305,7 @@
         openedFiles.clear();
         for (SSTableReader sstable : sstables)
         {
-            SSTableReader.open(sstable.dataFile, sstable.partitioner, 0.01);
+            SSTableReader.open(sstable.path, sstable.partitioner, 0.01);
         }
     }
 
@@ -321,7 +321,7 @@
 
     public String getTableName()
     {
-        return parseTableName(dataFile);
+        return parseTableName(path);
     }
 
     public static void deleteAll() throws IOException

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java?rev=799950&r1=799949&r2=799950&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java Sat Aug  1 22:31:24 2009
@@ -18,16 +18,16 @@
     private static Logger logger = Logger.getLogger(SSTableWriter.class);
 
     private long keysWritten;
-    private AbstractWriter dataWriter;
-    private BufferedRandomAccessFile indexRAF;
+    private BufferedRandomAccessFile dataFile;
+    private BufferedRandomAccessFile indexFile;
     private String lastWrittenKey;
     private BloomFilter bf;
 
     public SSTableWriter(String filename, int keyCount, IPartitioner partitioner) throws IOException
     {
         super(filename, partitioner);
-        dataWriter = new AbstractWriter.BufferWriter(dataFile, 4 * 1024 * 1024);
-        indexRAF = new BufferedRandomAccessFile(indexFilename(), "rw", 1024 * 1024);
+        dataFile = new BufferedRandomAccessFile(path, "rw", 4 * 1024 * 1024);
+        indexFile = new BufferedRandomAccessFile(indexFilename(), "rw", 1024 * 1024);
         bf = new BloomFilter(keyCount, 15);
     }
 
@@ -42,19 +42,19 @@
         {
             logger.info("Last written key : " + lastWrittenKey);
             logger.info("Current key : " + decoratedKey);
-            logger.info("Writing into file " + dataFile);
+            logger.info("Writing into file " + path);
             throw new IOException("Keys must be written in ascending order.");
         }
-        return (lastWrittenKey == null) ? 0 : dataWriter.getCurrentPosition();
+        return (lastWrittenKey == null) ? 0 : dataFile.getFilePointer();
     }
 
     private void afterAppend(String decoratedKey, long position) throws IOException
     {
         bf.add(decoratedKey);
         lastWrittenKey = decoratedKey;
-        long indexPosition = indexRAF.getFilePointer();
-        indexRAF.writeUTF(decoratedKey);
-        indexRAF.writeLong(position);
+        long indexPosition = indexFile.getFilePointer();
+        indexFile.writeUTF(decoratedKey);
+        indexFile.writeLong(position);
         if (logger.isTraceEnabled())
             logger.trace("wrote " + decoratedKey + " at " + position);
 
@@ -73,14 +73,19 @@
     public void append(String decoratedKey, DataOutputBuffer buffer) throws IOException
     {
         long currentPosition = beforeAppend(decoratedKey);
-        dataWriter.append(decoratedKey, buffer);
+        dataFile.writeUTF(decoratedKey);
+        int length = buffer.getLength();
+        dataFile.writeInt(length);
+        dataFile.write(buffer.getData(), 0, length);
         afterAppend(decoratedKey, currentPosition);
     }
 
     public void append(String decoratedKey, byte[] value) throws IOException
     {
         long currentPosition = beforeAppend(decoratedKey);
-        dataWriter.append(decoratedKey, value);
+        dataFile.writeUTF(decoratedKey);
+        dataFile.writeInt(value.length);
+        dataFile.write(value);
         afterAppend(decoratedKey, currentPosition);
     }
 
@@ -105,20 +110,20 @@
         stream.close();
 
         // index
-        indexRAF.getChannel().force(true);
-        indexRAF.close();
+        indexFile.getChannel().force(true);
+        indexFile.close();
 
         // main data
-        dataWriter.close(); // calls force
+        dataFile.close(); // calls force
 
         rename(indexFilename());
         rename(filterFilename());
-        dataFile = rename(dataFile); // important to do this last since index & filter file names are derived from it
+        path = rename(path); // important to do this last since index & filter file names are derived from it
 
         ConcurrentLinkedHashMap<String,Long> keyCache = cacheFraction > 0
                                                         ? SSTableReader.createKeyCache((int) (cacheFraction * keysWritten))
                                                         : null;
-        return new SSTableReader(dataFile, partitioner, indexPositions, bf, keyCache);
+        return new SSTableReader(path, partitioner, indexPositions, bf, keyCache);
     }
 
 }

Modified: incubator/cassandra/trunk/test/unit/org/apache/cassandra/io/SSTableTest.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/unit/org/apache/cassandra/io/SSTableTest.java?rev=799950&r1=799949&r2=799950&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/unit/org/apache/cassandra/io/SSTableTest.java (original)
+++ incubator/cassandra/trunk/test/unit/org/apache/cassandra/io/SSTableTest.java Sat Aug  1 22:31:24 2009
@@ -25,7 +25,6 @@
 import org.junit.Test;
 
 import org.apache.cassandra.CleanupHelper;
-import org.apache.cassandra.io.FileStruct;
 import org.apache.cassandra.dht.OrderPreservingPartitioner;
 
 public class SSTableTest extends CleanupHelper
@@ -57,7 +56,7 @@
 
     private void verifySingle(SSTableReader sstable, byte[] bytes, String key) throws IOException
     {
-        BufferedRandomAccessFile file = new BufferedRandomAccessFile(sstable.dataFile, "r");
+        BufferedRandomAccessFile file = new BufferedRandomAccessFile(sstable.path, "r");
         file.seek(sstable.getPosition(key));
         assert key.equals(file.readUTF());
         int size = file.readInt();
@@ -94,7 +93,7 @@
     {
         List<String> keys = new ArrayList<String>(map.keySet());
         Collections.shuffle(keys);
-        BufferedRandomAccessFile file = new BufferedRandomAccessFile(sstable.dataFile, "r");
+        BufferedRandomAccessFile file = new BufferedRandomAccessFile(sstable.path, "r");
         for (String key : keys)
         {
             file.seek(sstable.getPosition(key));