@Override
    public PooledByteBufferPair getPooledBufferPair(final int minKeyCapacity, final int minValueCapacity) {
        final ByteBuffer keyBuffer = getBuffer(minKeyCapacity);
        final ByteBuffer valueBuffer = getBuffer(minValueCapacity);
        return new PooledByteBufferPairImpl(this::release, keyBuffer, valueBuffer);
    }
An unbounded self-populating pool of directly allocated ByteBuffers.
When using one of the methods to get/use a buffer from the pool the
smallest available buffer that is greater than or equal to the required
capacity will be provided. All buffers will be cleared on return to
the pool.
<p>
As this pool is un-bounded it could grow very large under high contention.
<p>
This impl uses a {@link ConcurrentSkipListMap} keyed on capacity and insert time
with no synchronisation.
stroom-bytebuffer/src/main/java/stroom/bytebuffer/ByteBufferPoolImpl.java