You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sn...@apache.org on 2015/09/16 00:44:41 UTC

cassandra git commit: Rename DataOutputBuffer.getFilePointer() to position()

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 a54589e12 -> 753a94332


Rename DataOutputBuffer.getFilePointer() to position()

patch by Robert Stupp; reviewed by Benedict for CASSANDRA-10349


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/753a9433
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/753a9433
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/753a9433

Branch: refs/heads/cassandra-3.0
Commit: 753a9433228cb4579f0602b9292dd16944339607
Parents: a54589e
Author: Robert Stupp <sn...@snazy.de>
Authored: Wed Sep 16 00:43:11 2015 +0200
Committer: Robert Stupp <sn...@snazy.de>
Committed: Wed Sep 16 00:43:11 2015 +0200

----------------------------------------------------------------------
 .../org/apache/cassandra/db/ColumnIndex.java    |  6 +++---
 .../org/apache/cassandra/db/RowIndexEntry.java  |  6 +++---
 .../io/sstable/format/big/BigTableWriter.java   | 12 +++++------
 .../cassandra/io/util/DataOutputBuffer.java     |  4 ++--
 .../cassandra/io/util/DataOutputPlus.java       | 21 ++++++++++++++++----
 .../cassandra/io/util/SequentialWriter.java     |  6 +++---
 .../apache/cassandra/db/RowIndexEntryTest.java  |  4 ++--
 .../io/util/BufferedRandomAccessFileTest.java   | 10 +++++-----
 .../compression/CompressedInputStreamTest.java  |  2 +-
 9 files changed, 42 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/753a9433/src/java/org/apache/cassandra/db/ColumnIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java b/src/java/org/apache/cassandra/db/ColumnIndex.java
index 6b2ef59..add5fa7 100644
--- a/src/java/org/apache/cassandra/db/ColumnIndex.java
+++ b/src/java/org/apache/cassandra/db/ColumnIndex.java
@@ -91,7 +91,7 @@ public class ColumnIndex
             this.writer = writer;
             this.header = header;
             this.version = version;
-            this.initialPosition = writer.getFilePointer();
+            this.initialPosition = writer.position();
         }
 
         private void writePartitionHeader(UnfilteredRowIterator iterator) throws IOException
@@ -105,7 +105,7 @@ public class ColumnIndex
         public ColumnIndex build() throws IOException
         {
             writePartitionHeader(iterator);
-            this.headerLength = writer.getFilePointer() - initialPosition;
+            this.headerLength = writer.position() - initialPosition;
 
             while (iterator.hasNext())
                 add(iterator.next());
@@ -115,7 +115,7 @@ public class ColumnIndex
 
         private long currentPosition()
         {
-            return writer.getFilePointer() - initialPosition;
+            return writer.position() - initialPosition;
         }
 
         private void addIndexBlock()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/753a9433/src/java/org/apache/cassandra/db/RowIndexEntry.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/RowIndexEntry.java b/src/java/org/apache/cassandra/db/RowIndexEntry.java
index 6cd6542..43dc80c 100644
--- a/src/java/org/apache/cassandra/db/RowIndexEntry.java
+++ b/src/java/org/apache/cassandra/db/RowIndexEntry.java
@@ -142,15 +142,15 @@ public class RowIndexEntry<T> implements IMeasurableMemory
 
                 int[] offsets = new int[rie.columnsIndex().size()];
 
-                if (out.hasFilePointer())
+                if (out.hasPosition())
                 {
                     // Out is usually a SequentialWriter, so using the file-pointer is fine to generate the offsets.
                     // A DataOutputBuffer also works.
-                    long start = out.getFilePointer();
+                    long start = out.position();
                     int i = 0;
                     for (IndexHelper.IndexInfo info : rie.columnsIndex())
                     {
-                        offsets[i] = i == 0 ? 0 : (int)(out.getFilePointer() - start);
+                        offsets[i] = i == 0 ? 0 : (int)(out.position() - start);
                         i++;
                         idxSerializer.serialize(info, out);
                     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/753a9433/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
index 089ae6f..3d68a74 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
@@ -107,7 +107,7 @@ public class BigTableWriter extends SSTableWriter
         assert decoratedKey != null : "Keys must not be null"; // empty keys ARE allowed b/c of indexed column values
         //if (lastWrittenKey != null && lastWrittenKey.compareTo(decoratedKey) >= 0)
         //    throw new RuntimeException("Last written key " + lastWrittenKey + " >= current key " + decoratedKey + " writing into " + getFilename());
-        return (lastWrittenKey == null) ? 0 : dataFile.getFilePointer();
+        return (lastWrittenKey == null) ? 0 : dataFile.position();
     }
 
     private void afterAppend(DecoratedKey decoratedKey, long dataEnd, RowIndexEntry index) throws IOException
@@ -153,7 +153,7 @@ public class BigTableWriter extends SSTableWriter
 
             RowIndexEntry entry = RowIndexEntry.create(startPosition, iterator.partitionLevelDeletion(), index);
 
-            long endPosition = dataFile.getFilePointer();
+            long endPosition = dataFile.position();
             long rowSize = endPosition - startPosition;
             maybeLogLargePartitionWarning(key, rowSize);
             metadataCollector.addPartitionSizeInBytes(rowSize);
@@ -352,7 +352,7 @@ public class BigTableWriter extends SSTableWriter
 
     public long getFilePointer()
     {
-        return dataFile.getFilePointer();
+        return dataFile.position();
     }
 
     public long getOnDiskFilePointer()
@@ -403,7 +403,7 @@ public class BigTableWriter extends SSTableWriter
         public void append(DecoratedKey key, RowIndexEntry indexEntry, long dataEnd) throws IOException
         {
             bf.add(key);
-            long indexStart = indexFile.getFilePointer();
+            long indexStart = indexFile.position();
             try
             {
                 ByteBufferUtil.writeWithShortLength(key.getKey(), indexFile);
@@ -413,7 +413,7 @@ public class BigTableWriter extends SSTableWriter
             {
                 throw new FSWriteError(e, indexFile.getPath());
             }
-            long indexEnd = indexFile.getFilePointer();
+            long indexEnd = indexFile.position();
 
             if (logger.isTraceEnabled())
                 logger.trace("wrote index entry: {} at {}", indexEntry, indexStart);
@@ -462,7 +462,7 @@ public class BigTableWriter extends SSTableWriter
             flushBf();
 
             // truncate index file
-            long position = iwriter.indexFile.getFilePointer();
+            long position = iwriter.indexFile.position();
             iwriter.indexFile.setDescriptor(descriptor).prepareToCommit();
             FileUtils.truncate(iwriter.indexFile.getPath(), position);
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/753a9433/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java b/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
index c4d6f54..4ba5546 100644
--- a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
+++ b/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
@@ -114,12 +114,12 @@ public class DataOutputBuffer extends BufferedDataOutputStreamPlus
         return buffer.position();
     }
 
-    public boolean hasFilePointer()
+    public boolean hasPosition()
     {
         return true;
     }
 
-    public long getFilePointer()
+    public long position()
     {
         return getLength();
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/753a9433/src/java/org/apache/cassandra/io/util/DataOutputPlus.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/DataOutputPlus.java b/src/java/org/apache/cassandra/io/util/DataOutputPlus.java
index 551d386..60a5727 100644
--- a/src/java/org/apache/cassandra/io/util/DataOutputPlus.java
+++ b/src/java/org/apache/cassandra/io/util/DataOutputPlus.java
@@ -22,10 +22,10 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.channels.WritableByteChannel;
 
-import org.apache.cassandra.utils.vint.VIntCoding;
-
 import com.google.common.base.Function;
 
+import org.apache.cassandra.utils.vint.VIntCoding;
+
 /**
  * Extension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient
  * implementation that is zero copy or at least has reduced bounds checking overhead.
@@ -60,12 +60,25 @@ public interface DataOutputPlus extends DataOutput
         VIntCoding.writeUnsignedVInt(i, this);
     }
 
-    default long getFilePointer()
+    /**
+     * Returns the current position of the underlying target like a file-pointer
+     * or the position withing a buffer. Not every implementation may support this
+     * functionality. Whether or not this functionality is supported can be checked
+     * via the {@link #hasPosition()}.
+     *
+     * @throws UnsupportedOperationException if the implementation does not support
+     *                                       position
+     */
+    default long position()
     {
         throw new UnsupportedOperationException();
     }
 
-    default boolean hasFilePointer()
+    /**
+     * If the implementation supports providing a position, this method returns
+     * {@code true}, otherwise {@code false}.
+     */
+    default boolean hasPosition()
     {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/753a9433/src/java/org/apache/cassandra/io/util/SequentialWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/SequentialWriter.java b/src/java/org/apache/cassandra/io/util/SequentialWriter.java
index 1814aca..6000f95 100644
--- a/src/java/org/apache/cassandra/io/util/SequentialWriter.java
+++ b/src/java/org/apache/cassandra/io/util/SequentialWriter.java
@@ -253,12 +253,12 @@ public class SequentialWriter extends BufferedDataOutputStreamPlus implements Tr
             runPostFlush.run();
     }
 
-    public boolean hasFilePointer()
+    public boolean hasPosition()
     {
         return true;
     }
 
-    public long getFilePointer()
+    public long position()
     {
         return current();
     }
@@ -274,7 +274,7 @@ public class SequentialWriter extends BufferedDataOutputStreamPlus implements Tr
      */
     public long getOnDiskFilePointer()
     {
-        return getFilePointer();
+        return position();
     }
 
     public long length()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/753a9433/test/unit/org/apache/cassandra/db/RowIndexEntryTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RowIndexEntryTest.java b/test/unit/org/apache/cassandra/db/RowIndexEntryTest.java
index d004d45..25baa4e 100644
--- a/test/unit/org/apache/cassandra/db/RowIndexEntryTest.java
+++ b/test/unit/org/apache/cassandra/db/RowIndexEntryTest.java
@@ -155,12 +155,12 @@ public class RowIndexEntryTest extends CQLTester
         // test with an output stream that doesn't support a file-pointer
         buffer = new DataOutputBuffer()
         {
-            public boolean hasFilePointer()
+            public boolean hasPosition()
             {
                 return false;
             }
 
-            public long getFilePointer()
+            public long position()
             {
                 throw new UnsupportedOperationException();
             }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/753a9433/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java b/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java
index 364ea71..c3a4539 100644
--- a/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java
+++ b/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java
@@ -46,7 +46,7 @@ public class BufferedRandomAccessFileTest
         byte[] data = "Hello".getBytes();
         w.write(data);
         assertEquals(data.length, w.length());
-        assertEquals(data.length, w.getFilePointer());
+        assertEquals(data.length, w.position());
 
         w.sync();
 
@@ -67,9 +67,9 @@ public class BufferedRandomAccessFileTest
         for (int i = 0; i < bigData.length; i++)
             bigData[i] = 'd';
 
-        long initialPosition = w.getFilePointer();
+        long initialPosition = w.position();
         w.write(bigData); // writing data
-        assertEquals(w.getFilePointer(), initialPosition + bigData.length);
+        assertEquals(w.position(), initialPosition + bigData.length);
         assertEquals(w.length(), initialPosition + bigData.length); // file size should equals to last position
 
         w.sync();
@@ -285,10 +285,10 @@ public class BufferedRandomAccessFileTest
     {
         final SequentialWriter w = createTempFile("brafGetFilePointer");
 
-        assertEquals(w.getFilePointer(), 0); // initial position should be 0
+        assertEquals(w.position(), 0); // initial position should be 0
 
         w.write(generateByteArray(20));
-        assertEquals(w.getFilePointer(), 20); // position 20 after writing 20 bytes
+        assertEquals(w.position(), 20); // position 20 after writing 20 bytes
 
         w.sync();
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/753a9433/test/unit/org/apache/cassandra/streaming/compression/CompressedInputStreamTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/streaming/compression/CompressedInputStreamTest.java b/test/unit/org/apache/cassandra/streaming/compression/CompressedInputStreamTest.java
index fea6d2b..30670fb 100644
--- a/test/unit/org/apache/cassandra/streaming/compression/CompressedInputStreamTest.java
+++ b/test/unit/org/apache/cassandra/streaming/compression/CompressedInputStreamTest.java
@@ -70,7 +70,7 @@ public class CompressedInputStreamTest
         Map<Long, Long> index = new HashMap<Long, Long>();
         for (long l = 0L; l < 1000; l++)
         {
-            index.put(l, writer.getFilePointer());
+            index.put(l, writer.position());
             writer.writeLong(l);
         }
         writer.finish();