org.infinispan.marshall
Class AdaptiveBufferSizePredictor

java.lang.Object
  extended by org.infinispan.marshall.AdaptiveBufferSizePredictor
All Implemented Interfaces:
BufferSizePredictor

public class AdaptiveBufferSizePredictor
extends Object
implements BufferSizePredictor

The BufferSizePredictor that automatically increases and decreases the predicted buffer size on feed back.

It gradually increases the expected number of bytes if the previous buffer fully filled the allocated buffer. It gradually decreases the expected number of bytes if the read operation was not able to fill a certain amount of the allocated buffer two times consecutively. Otherwise, it keeps returning the same prediction. TODO: Object type hints could be useful at giving more type-specific predictions

Since:
5.0
Author:
Trustin Lee, Galder ZamarreƱo

Constructor Summary
AdaptiveBufferSizePredictor()
          Creates a new predictor with the default parameters.
AdaptiveBufferSizePredictor(int minimum, int initial, int maximum)
          Creates a new predictor with the specified parameters.
 
Method Summary
 int nextSize(Object obj)
          Provide the next buffer size taking in account the object to store in the buffer.
 void recordSize(int previousSize)
          Record the size of the of data in the last buffer used.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AdaptiveBufferSizePredictor

public AdaptiveBufferSizePredictor()
Creates a new predictor with the default parameters. With the default parameters, the expected buffer size starts from 512, does not go down below 16, and does not go up above 65536.


AdaptiveBufferSizePredictor

public AdaptiveBufferSizePredictor(int minimum,
                                   int initial,
                                   int maximum)
Creates a new predictor with the specified parameters.

Parameters:
minimum - the inclusive lower bound of the expected buffer size
initial - the initial buffer size when no feed back was received
maximum - the inclusive upper bound of the expected buffer size
Method Detail

nextSize

public int nextSize(Object obj)
Description copied from interface: BufferSizePredictor
Provide the next buffer size taking in account the object to store in the buffer.

Specified by:
nextSize in interface BufferSizePredictor
Parameters:
obj - instance that will be stored in the buffer
Returns:
int representing the next predicted buffer size

recordSize

public void recordSize(int previousSize)
Description copied from interface: BufferSizePredictor
Record the size of the of data in the last buffer used.

Specified by:
recordSize in interface BufferSizePredictor
Parameters:
previousSize - int representing the size of the last object buffered.

-->

Copyright © 2011 JBoss, a division of Red Hat. All Rights Reserved.