Merge branch 'cassandra-3.0' into cassandra-3.11

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

Branch: refs/heads/cassandra-3.11
Commit: 991e19711f8762bbf93d6af588cef0a14668cc59
Parents: 65a4682 299782c
Author: Branimir Lambov <branimir.lam...@datastax.com>
Authored: Tue Aug 21 11:56:05 2018 +0300
Committer: Branimir Lambov <branimir.lam...@datastax.com>
Committed: Tue Aug 21 11:56:05 2018 +0300

----------------------------------------------------------------------
 .../io/sstable/IndexSummaryBuilder.java         |  4 +-
 .../cassandra/io/util/DataOutputBuffer.java     |  8 +-
 .../io/util/DataOutputBufferFixed.java          |  2 +-
 .../cassandra/io/util/SafeMemoryWriter.java     | 16 ++--
 .../cassandra/io/util/DataOutputTest.java       |  4 +-
 .../cassandra/io/util/SafeMemoryWriterTest.java | 90 ++++++++++++++++++++
 6 files changed, 110 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/991e1971/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
index 144edad,7586543..28ca468
--- a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
+++ b/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
@@@ -38,43 -37,11 +38,43 @@@ public class DataOutputBuffer extends B
      /*
       * Threshold at which resizing transitions from doubling to increasing by 
50%
       */
-     private static final long DOUBLING_THRESHOLD = 
Long.getLong(Config.PROPERTY_PREFIX + "DOB_DOUBLING_THRESHOLD_MB", 64);
+     static final long DOUBLING_THRESHOLD = 
Long.getLong(Config.PROPERTY_PREFIX + "DOB_DOUBLING_THRESHOLD_MB", 64);
  
 +    /*
 +     * Only recycle OutputBuffers up to 1Mb. Larger buffers will be trimmed 
back to this size.
 +     */
 +    private static final int MAX_RECYCLE_BUFFER_SIZE = 
Integer.getInteger(Config.PROPERTY_PREFIX + "dob_max_recycle_bytes", 1024 * 
1024);
 +
 +    private static final int DEFAULT_INITIAL_BUFFER_SIZE = 128;
 +
 +    /**
 +     * Scratch buffers used mostly for serializing in memory. It's important 
to call #recycle() when finished
 +     * to keep the memory overhead from being too large in the system.
 +     */
 +    public static final FastThreadLocal<DataOutputBuffer> scratchBuffer = new 
FastThreadLocal<DataOutputBuffer>()
 +    {
 +        protected DataOutputBuffer initialValue() throws Exception
 +        {
 +            return new DataOutputBuffer()
 +            {
 +                public void close()
 +                {
 +                    if (buffer.capacity() <= MAX_RECYCLE_BUFFER_SIZE)
 +                    {
 +                        buffer.clear();
 +                    }
 +                    else
 +                    {
 +                        buffer = 
ByteBuffer.allocate(DEFAULT_INITIAL_BUFFER_SIZE);
 +                    }
 +                }
 +            };
 +        }
 +    };
 +
      public DataOutputBuffer()
      {
 -        this(128);
 +        this(DEFAULT_INITIAL_BUFFER_SIZE);
      }
  
      public DataOutputBuffer(int size)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/991e1971/src/java/org/apache/cassandra/io/util/DataOutputBufferFixed.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/991e1971/test/unit/org/apache/cassandra/io/util/DataOutputTest.java
----------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to