mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-15 17:41:45 +00:00
feat: Add new tunable --shm-metadata-msg-size
The shm metadata msg will be right-padded to the given size. This tunable may be used to saturate the kernel msg buffers more quickly with the effect that the ZeroMQ message queue size - on which the FairMQ shmem transport relies upon - behaves more accurately for very small queue sizes. This introduces a change for the meta msg format in the multipart case: old: | MetaHeader 1 | ... | MetaHeader n | new: | n | MetaHeader 1 | ... | MetaHeader n | padded to fMetadataMsgSize | where `n` is a `size_t` and contains the number of following meta headers. Previously, this number was infered from the msg buffer size itself which is no longer possible due to the potential padding. Implements #432
This commit is contained in:
committed by
Dennis Klein
parent
491a943c63
commit
f278e7e312
@@ -11,6 +11,7 @@
|
||||
#include <fairmq/JSONParser.h>
|
||||
#include <fairmq/SuboptParser.h>
|
||||
|
||||
#include <cstddef> // for std::size_t
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
@@ -72,6 +73,7 @@ Plugin::ProgOptions ConfigPluginProgramOptions()
|
||||
("shm-zero-segment", po::value<bool >()->default_value(false), "Shared memory: zero the shared memory segment memory after initialization (opened or created).")
|
||||
("shm-zero-segment-on-creation", po::value<bool >()->default_value(false), "Shared memory: zero the shared memory segment memory only once when created.")
|
||||
("shm-throw-bad-alloc", po::value<bool >()->default_value(true), "Shared memory: throw fair::mq::MessageBadAlloc if cannot allocate a message (retry if false).")
|
||||
("shm-metadata-msg-size", po::value<std::size_t >()->default_value(0), "Shared memory: size of the zmq metadata message (values smaller than minimum are clamped to the minimum).")
|
||||
("bad-alloc-max-attempts", po::value<int >(), "Maximum number of allocation attempts before throwing fair::mq::MessageBadAlloc. -1 is infinite. There is always at least one attempt, so 0 has safe effect as 1.")
|
||||
("bad-alloc-attempt-interval", po::value<int >()->default_value(50), "Interval between attempts if cannot allocate a message (in ms).")
|
||||
("shm-monitor", po::value<bool >()->default_value(false), "Shared memory: run monitor daemon.")
|
||||
|
Reference in New Issue
Block a user