NAME

POE::Component::MessageQueue::Storage::BigMemory -- In-memory storage engine optimized for a large number of messages.

SYNOPSIS

  use POE;
  use POE::Component::MessageQueue;
  use POE::Component::MessageQueue::Storage::BigMemory;
  use strict;

  POE::Component::MessageQueue->new({
    storage => POE::Component::MessageQueue::Storage::BigMemory->new()
  });

  POE::Kernel->run();
  exit;

DESCRIPTION

An in-memory storage engine that is optimised for a large number of messages. Its an alternative to POE::Componenent::MessageQueue::Storage::Memory, which stores everything in a Perl ARARY, which can slow the MQ to a CRAWL when the number of messsages in this store gets big.

store() is a little bit slower per message in this module and it uses more memory per message. Everything else should be considerably more efficient, though, especially when the number of messages starts to climb. Many operations in Storage::Memory are O(n*n). Most operations in this module are O(1)!

I wouldn't suggest using this as your main storage engine because if messages aren't removed by consumers, it will continue to consume more memory until it explodes. Check-out POE::Component::MessageQueue::Storage::Complex which can use this module internally to keep messages in memory for a period of time before moving them into persistent storage.

CONSTRUCTOR PARAMETERS

None to speak of!

SUPPORTED STOMP HEADERS

persistent

Ignored. Nothing is persistent in this store.

expire-after

Ignored. All messages are kept until handled.

deliver-after

Fully Supported.

SEE ALSO

POE::Component::MessageQueue, POE::Component::MessageQueue::Storage

Other storage engines:

POE::Component::MessageQueue::Storage::Memory, POE::Component::MessageQueue::Storage::FileSystem, POE::Component::MessageQueue::Storage::DBI, POE::Component::MessageQueue::Storage::Generic, POE::Component::MessageQueue::Storage::Generic::DBI, POE::Component::MessageQueue::Storage::Throttled, POE::Component::MessageQueue::Storage::Complex, POE::Component::MessageQueue::Storage::Default