Class IoUringBufferRingConfig


  • public final class IoUringBufferRingConfig
    extends java.lang.Object
    Configuration class for an IoUringBufferRing. It will configure the buffer ring size, buffer group id and the chunk size.
    • Constructor Detail

      • IoUringBufferRingConfig

        public IoUringBufferRingConfig​(short bgId,
                                       short bufferRingSize,
                                       int maxUnreleasedBuffers,
                                       IoUringBufferRingAllocator allocator)
        Create a new configuration.
        Parameters:
        bgId - the buffer group id to use (must be non-negative).
        bufferRingSize - the size of the ring
        maxUnreleasedBuffers - the maximum buffers that were allocated out of this buffer ring and are unreleased yet. Once this threshold is hit the usage of the buffer ring will be temporary disabled.
        allocator - the IoUringBufferRingAllocator to use to allocate ByteBufs.
      • IoUringBufferRingConfig

        public IoUringBufferRingConfig​(short bgId,
                                       short bufferRingSize,
                                       int batchSize,
                                       int maxUnreleasedBuffers,
                                       boolean incremental,
                                       IoUringBufferRingAllocator allocator)
        Create a new configuration.
        Parameters:
        bgId - the buffer group id to use (must be non-negative).
        bufferRingSize - the size of the ring
        batchSize - the size of the batch on how many buffers are added everytime we need to expand the buffer ring.
        maxUnreleasedBuffers - the maximum buffers that can be allocated out of this buffer ring and are unreleased yet. Once this threshold is hit the usage of the buffer ring will be temporarily disabled.
        incremental - true if the buffer ring is using incremental buffer consumption.
        allocator - the IoUringBufferRingAllocator to use to allocate ByteBufs.
    • Method Detail

      • bufferGroupId

        public short bufferGroupId()
        Returns the buffer group id to use.
        Returns:
        the buffer group id to use.
      • bufferRingSize

        public short bufferRingSize()
        Returns the size of the ring.
        Returns:
        the size of the ring.
      • batchSize

        public int batchSize()
        Returns the size of the batch on how many buffers are added everytime we need to expand the buffer ring.
        Returns:
        batch size.
      • maxUnreleasedBuffers

        public int maxUnreleasedBuffers()
        Returns the maximum buffers that can be allocated out of this buffer ring and are unreleased yet
        Returns:
        the max unreleased buffers.
      • isIncremental

        public boolean isIncremental()
        Returns true if incremental mode should be used for the buffer ring.
        Returns:
        true if incremental mode is used, false otherwise.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object