Examples of ReceiveBufferSizePredictor


Examples of com.facebook.presto.jdbc.internal.netty.channel.ReceiveBufferSizePredictor

        }
        this.writeSpinCount = writeSpinCount;
    }

    public ReceiveBufferSizePredictor getReceiveBufferSizePredictor() {
        ReceiveBufferSizePredictor predictor = this.predictor;
        if (predictor == null) {
            try {
                this.predictor = predictor = getReceiveBufferSizePredictorFactory().getPredictor();
            } catch (Exception e) {
                throw new ChannelException(
View Full Code Here

Examples of com.facebook.presto.jdbc.internal.netty.channel.ReceiveBufferSizePredictor

            throw new ChannelException(e);
        }
    }

    public ReceiveBufferSizePredictor getReceiveBufferSizePredictor() {
        ReceiveBufferSizePredictor predictor = this.predictor;
        if (predictor == null) {
            try {
                this.predictor = predictor = getReceiveBufferSizePredictorFactory().getPredictor();
            } catch (Exception e) {
                throw new ChannelException(
View Full Code Here

Examples of com.facebook.presto.jdbc.internal.netty.channel.ReceiveBufferSizePredictor

    }

    @Override
    boolean process() throws IOException {

        ReceiveBufferSizePredictor predictor =
            channel.getConfig().getReceiveBufferSizePredictor();

        byte[] buf = new byte[predictor.nextReceiveBufferSize()];
        DatagramPacket packet = new DatagramPacket(buf, buf.length);
        try {
            channel.socket.receive(packet);
        } catch (InterruptedIOException e) {
            // Can happen on interruption.
View Full Code Here

Examples of com.facebook.presto.jdbc.internal.netty.channel.ReceiveBufferSizePredictor

    @Override
    protected boolean read(SelectionKey k) {
        final SocketChannel ch = (SocketChannel) k.channel();
        final NioSocketChannel channel = (NioSocketChannel) k.attachment();

        final ReceiveBufferSizePredictor predictor =
            channel.getConfig().getReceiveBufferSizePredictor();
        final int predictedRecvBufSize = predictor.nextReceiveBufferSize();
        final ChannelBufferFactory bufferFactory = channel.getConfig().getBufferFactory();

        int ret = 0;
        int readBytes = 0;
        boolean failure = true;

        ByteBuffer bb = recvBufferPool.get(predictedRecvBufSize).order(bufferFactory.getDefaultOrder());
        try {
            while ((ret = ch.read(bb)) > 0) {
                readBytes += ret;
                if (!bb.hasRemaining()) {
                    break;
                }
            }
            failure = false;
        } catch (ClosedChannelException e) {
            // Can happen, and does not need a user attention.
        } catch (Throwable t) {
            fireExceptionCaught(channel, t);
        }

        if (readBytes > 0) {
            bb.flip();

            final ChannelBuffer buffer = bufferFactory.getBuffer(readBytes);
            buffer.setBytes(0, bb);
            buffer.writerIndex(readBytes);

            // Update the predictor.
            predictor.previousReceiveBufferSize(readBytes);

            // Fire the event.
            fireMessageReceived(channel, buffer);
        }
View Full Code Here

Examples of com.facebook.presto.jdbc.internal.netty.channel.ReceiveBufferSizePredictor

    }

    @Override
    protected boolean read(final SelectionKey key) {
        final NioDatagramChannel channel = (NioDatagramChannel) key.attachment();
        ReceiveBufferSizePredictor predictor =
            channel.getConfig().getReceiveBufferSizePredictor();
        final ChannelBufferFactory bufferFactory = channel.getConfig().getBufferFactory();
        final DatagramChannel nioChannel = (DatagramChannel) key.channel();
        final int predictedRecvBufSize = predictor.nextReceiveBufferSize();

        final ByteBuffer byteBuffer = bufferAllocator.get(predictedRecvBufSize).order(bufferFactory.getDefaultOrder());

        boolean failure = true;
        SocketAddress remoteAddress = null;
        try {
            // Receive from the channel in a non blocking mode. We have already been notified that
            // the channel is ready to receive.
            remoteAddress = nioChannel.receive(byteBuffer);
            failure = false;
        } catch (ClosedChannelException e) {
            // Can happen, and does not need a user attention.
        } catch (Throwable t) {
            fireExceptionCaught(channel, t);
        }

        if (remoteAddress != null) {
            // Flip the buffer so that we can wrap it.
            byteBuffer.flip();

            int readBytes = byteBuffer.remaining();
            if (readBytes > 0) {
                // Update the predictor.
                predictor.previousReceiveBufferSize(readBytes);

                final ChannelBuffer buffer = bufferFactory.getBuffer(readBytes);
                buffer.setBytes(0, byteBuffer);
                buffer.writerIndex(readBytes);

                // Update the predictor.
                predictor.previousReceiveBufferSize(readBytes);

                // Notify the interested parties about the newly arrived message.
                fireMessageReceived(
                        channel, buffer, remoteAddress);
            }
View Full Code Here

Examples of com.firefly.net.ReceiveBufferSizePredictor

  private static Log log = LogFactory.getInstance().getLog("firefly-system");

  @Test
  public void testAdaptive() {
    ReceiveBufferSizePredictor receiveBufferSizePredictor = new AdaptiveReceiveBufferSizePredictor();
    receiveBufferSizePredictor.previousReceiveBufferSize(960);
    receiveBufferSizePredictor.previousReceiveBufferSize(960);
    receiveBufferSizePredictor.previousReceiveBufferSize(960);
    log.debug("current buf size: " + receiveBufferSizePredictor.nextReceiveBufferSize());
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), is(1024));

    receiveBufferSizePredictor.previousReceiveBufferSize(1025);
    receiveBufferSizePredictor.previousReceiveBufferSize(1300);
    log.debug("current buf size: " + receiveBufferSizePredictor.nextReceiveBufferSize());
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), greaterThan(1024));

    receiveBufferSizePredictor.previousReceiveBufferSize(4000);
    log.debug("current buf size: " + receiveBufferSizePredictor.nextReceiveBufferSize());
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), greaterThan(2000));
  }
View Full Code Here

Examples of com.firefly.net.ReceiveBufferSizePredictor

    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), greaterThan(2000));
  }

  @Test
  public void testFix() {
    ReceiveBufferSizePredictor receiveBufferSizePredictor = new FixedReceiveBufferSizePredictor(1024 * 8);
    receiveBufferSizePredictor.previousReceiveBufferSize(960);
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), is(1024 * 8));
    receiveBufferSizePredictor.previousReceiveBufferSize(40000);
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), is(1024 * 8));
  }
 
View Full Code Here

Examples of com.firefly.net.ReceiveBufferSizePredictor

  }

  private boolean read(SelectionKey k) {
    final SocketChannel ch = (SocketChannel) k.channel();
    final TcpSession session = (TcpSession) k.attachment();
    final ReceiveBufferSizePredictor predictor = session
        .getReceiveBufferSizePredictor();
    final int predictedRecvBufSize = predictor.nextReceiveBufferSize();

    int ret = 0;
    int readBytes = 0;
    boolean failure = true;

    ByteBuffer bb = receiveBufferPool.acquire(predictedRecvBufSize);
    try {
      while ((ret = ch.read(bb)) > 0) {
        readBytes += ret;
        if (!bb.hasRemaining())
          break;
      }
      failure = false;
    } catch (ClosedChannelException e) {
      // Can happen, and does not need a user attention.
    } catch (Throwable t) {
      eventManager.executeExceptionTask(session, t);
    }

    if (readBytes > 0) {
      bb.flip();
      receiveBufferPool.release(bb);

      // Update the predictor.
      predictor.previousReceiveBufferSize(readBytes);
      session.setReadBytes(readBytes);
      session.setLastReadTime(TIME_PROVIDER.currentTimeMillis());
      // Decode
     
      try {
View Full Code Here

Examples of com.firefly.net.ReceiveBufferSizePredictor

  private static Log log = LogFactory.getInstance().getLog("firefly-system");

  @Test
  public void testAdaptive() {
    ReceiveBufferSizePredictor receiveBufferSizePredictor = new AdaptiveReceiveBufferSizePredictor();
    receiveBufferSizePredictor.previousReceiveBufferSize(960);
    receiveBufferSizePredictor.previousReceiveBufferSize(960);
    receiveBufferSizePredictor.previousReceiveBufferSize(960);
    log.debug("current buf size: " + receiveBufferSizePredictor.nextReceiveBufferSize());
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), is(1024));

    receiveBufferSizePredictor.previousReceiveBufferSize(1025);
    receiveBufferSizePredictor.previousReceiveBufferSize(1300);
    log.debug("current buf size: " + receiveBufferSizePredictor.nextReceiveBufferSize());
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), greaterThan(1024));

    receiveBufferSizePredictor.previousReceiveBufferSize(4000);
    log.debug("current buf size: " + receiveBufferSizePredictor.nextReceiveBufferSize());
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), greaterThan(2000));
   
    receiveBufferSizePredictor.previousReceiveBufferSize(500);
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), greaterThan(2000));
    receiveBufferSizePredictor.previousReceiveBufferSize(1000);
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), lessThan(2000));
  }
View Full Code Here

Examples of com.firefly.net.ReceiveBufferSizePredictor

    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), lessThan(2000));
  }

  @Test
  public void testFix() {
    ReceiveBufferSizePredictor receiveBufferSizePredictor = new FixedReceiveBufferSizePredictor(1024 * 8);
    receiveBufferSizePredictor.previousReceiveBufferSize(960);
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), is(1024 * 8));
    receiveBufferSizePredictor.previousReceiveBufferSize(40000);
    Assert.assertThat(receiveBufferSizePredictor.nextReceiveBufferSize(), is(1024 * 8));
  }
 
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.