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/12/31 22:30:10 UTC

svn commit: r894942 - in /incubator/cassandra/trunk/src/java/org/apache/cassandra: db/CommitLog.java io/IteratingRow.java io/SSTableScanner.java io/util/BufferedRandomAccessFile.java io/util/FileDataInput.java

Author: jbellis
Date: Thu Dec 31 21:30:10 2009
New Revision: 894942

URL: http://svn.apache.org/viewvc?rev=894942&view=rev
Log:
add FileDataInput, implemented by BufferedRandomAccessFile
patch by jbellis; reviewed by Brandon Williams and goffinet for CASSANDRA-408

Added:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/FileDataInput.java   (with props)
Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableScanner.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java?rev=894942&r1=894941&r2=894942&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java Thu Dec 31 21:30:10 2009
@@ -293,7 +293,7 @@
                 logger_.debug("Replaying " + file + " starting at " + lowPos);
 
             /* read the logs populate RowMutation and apply */
-            while (!reader.isEOF())
+            while (reader.getFilePointer() < reader.length())
             {
                 if (logger_.isDebugEnabled())
                     logger_.debug("Reading mutation at " + reader.getFilePointer());

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java?rev=894942&r1=894941&r2=894942&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java Thu Dec 31 21:30:10 2009
@@ -28,19 +28,19 @@
 import org.apache.cassandra.db.IColumn;
 import org.apache.cassandra.dht.IPartitioner;
 import org.apache.cassandra.service.StorageService;
-import org.apache.cassandra.io.util.BufferedRandomAccessFile;
+import org.apache.cassandra.io.util.FileDataInput;
 import com.google.common.collect.AbstractIterator;
 
 public class IteratingRow extends AbstractIterator<IColumn> implements Comparable<IteratingRow>
 {
     private final DecoratedKey key;
     private final long finishedAt;
-    private final BufferedRandomAccessFile file;
+    private final FileDataInput file;
     private SSTableReader sstable;
     private long dataStart;
     private final IPartitioner partitioner;
 
-    public IteratingRow(BufferedRandomAccessFile file, SSTableReader sstable) throws IOException
+    public IteratingRow(FileDataInput file, SSTableReader sstable) throws IOException
     {
         this.file = file;
         this.sstable = sstable;
@@ -67,7 +67,7 @@
         file.seek(dataStart);
         while (file.getFilePointer() < finishedAt)
         {
-            out.write(file.read());
+            out.write(file.readByte());
         }
     }
 

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableScanner.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableScanner.java?rev=894942&r1=894941&r2=894942&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableScanner.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableScanner.java Thu Dec 31 21:30:10 2009
@@ -26,6 +26,7 @@
 
 import org.apache.cassandra.db.DecoratedKey;
 import org.apache.cassandra.io.util.BufferedRandomAccessFile;
+import org.apache.cassandra.io.util.FileDataInput;
 
 import org.apache.log4j.Logger;
 
@@ -36,7 +37,7 @@
 
     private IteratingRow row;
     private boolean exhausted = false;
-    private BufferedRandomAccessFile file;
+    private FileDataInput file;
     private SSTableReader sstable;
     private Iterator<IteratingRow> iterator;
 
@@ -116,7 +117,7 @@
         {
             try
             {
-                return (row == null && !file.isEOF()) || row.getEndPosition() < file.length();
+                return (row == null && file.getFilePointer() < file.length()) || row.getEndPosition() < file.length();
             }
             catch (IOException e)
             {
@@ -130,7 +131,7 @@
             {
                 if (row != null)
                     row.skipRemaining();
-                assert !file.isEOF();
+                assert file.getFilePointer() < file.length();
                 return row = new IteratingRow(file, sstable);
             }
             catch (IOException e)

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java?rev=894942&r1=894941&r2=894942&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java Thu Dec 31 21:30:10 2009
@@ -36,7 +36,7 @@
  * superclass.
  */
 
-public final class BufferedRandomAccessFile extends RandomAccessFile
+public final class BufferedRandomAccessFile extends RandomAccessFile implements FileDataInput
 {
     static final int LogBuffSz_ = 16; // 64K buffer
     public static final int BuffSz_ = (1 << LogBuffSz_);
@@ -169,12 +169,6 @@
         }
     }
 
-    public boolean isEOF() throws IOException
-    {
-        assert getFilePointer() <= length();
-        return getFilePointer() == length();
-    }
-
     public void close() throws IOException
     {
         this.flush();

Added: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/FileDataInput.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/FileDataInput.java?rev=894942&view=auto
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/FileDataInput.java (added)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/FileDataInput.java Thu Dec 31 21:30:10 2009
@@ -0,0 +1,16 @@
+package org.apache.cassandra.io.util;
+
+import java.io.DataInput;
+import java.io.IOException;
+import java.io.Closeable;
+
+public interface FileDataInput extends DataInput, Closeable
+{
+    public void seek(long pos) throws IOException;
+
+    public long length() throws IOException;
+
+    public long getFilePointer();
+
+    public String getPath();
+}

Propchange: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/util/FileDataInput.java
------------------------------------------------------------------------------
    svn:eol-style = native