Skip to content

Buffer Types

melissa.server.deep_learning.buffer.BufferType

Bases: IntEnum

Enum representing the different types of buffer strategies available for sampling.

  • FIFO = 0
  • FIRO = 1
  • Reservoir = 2
  • FIFOEvictReservoir = 3
  • SimPairedReservoir = 4
  • BatchReservoir = 5

Creating a buffer

melissa.server.deep_learning.buffer.make_buffer(buffer_size, buffer_t=BufferType.FIFO, per_server_watermark=None, pseudo_epochs=None, sweep_size=None, nb_time_steps=None, comm_size=1, metric_logger=None, use_legacy=False)

Factory function to create different types of buffers based on the specified buffer type.

This function initializes and returns a buffer (queue) object based on the given buffer size and type. The function raises a ValueError if the necessary parameters are not provided for the selected buffer type.

Parameters
  • buffer_size (int): The maximum size of the buffer.
  • buffer_t (BufferType, optional): The type of buffer to create. Default is BufferType.FIFO.
  • per_server_watermark (int, optional): A threshold used for Reservoir and FIRO buffers.
  • pseudo_epochs (int, optional): The number of iterations for FIRO pseudo-offline mode.
  • sweep_size (int, optional): The number of distinct simulation trajectories.
  • nb_time_steps (int, optional): The number of time steps per simulation trajectory.
  • comm_size (int, optional): The number of parallel processes or threads.
  • metric_logger (BaseLogger, optional): Existing logger used for additional buffer-specific metrics logging.
  • use_legacy (bool, False): Revert to the original legacy version instead.
Returns

BaseQueueLegacy | PolicyQueue: A buffer object of the specified type.

Buffer Classes

melissa.server.deep_learning.buffer.FIFO

Bases: PolicyQueue[DequeStorage]

melissa.server.deep_learning.buffer.FIRO

Bases: PolicyQueue[DequeStorage]

melissa.server.deep_learning.buffer.Reservoir

Bases: PolicyQueue[ListStorage]

A policy-driven queue specifically configured for reservoir sampling algorithms.

melissa.server.deep_learning.buffer.FIFOEvictReservoir

Bases: PolicyQueue[ListStorage]

A buffer that evicts the oldest data (FIFO) on write and allows random multiple reads of the same data (Reservoir).

melissa.server.deep_learning.SimPairedReservoir

Bases: PolicyQueue[SimPairedStorage]

save_state()

Delegates state capture to the storage object.

load_from_state(state)

Delegates state restoration to the storage object.