Skip to content

Better segment pools #311

Open
Open
@fzhinkin

Description

@fzhinkin

Currently, segment pools exist only on JVM (on other platforms, implementations are effectively no-op) and behave more like caches than pools.

There are a few directions in which we may/should develop segment pools:

  • support pools configuration (both in terms of the pool capacity and the size of allocated segments)
  • make sure every segment is returned to a pool once there are no users remaining (Track precise number of shared segment copies to return the last one into a segment pool #347)
  • support unlinking a segment from a pool (for scenarios when we have a byte-buffer backed segment and now sending it via Netty -> segment is no longer in use once we "consumed" it by wrapping into a ByteBuf, but it could not be released as a Netty owns it now)
  • support adding already allocated data into a buffer (related to Missing API: zero-copy wrapping of ByteArray with Source. #166)
  • support pools on other platforms
  • support pool-level isolation (for instance, if there are multiple threads make sure that each of them uses a separate pool, so that data used in one thread would never leak into another thread)
  • support leak tracing (Leak tracing mechanism #144)

This is an epic describing what could be done and tracking progress rather than an instruction to what should be implemented.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions