#include <assert.h>
#include <condition_variable>
#include <functional>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <optional>
#include <ostream>
#include <queue>
#include <set>
#include <tuple>
#include <vector>
#include "../derecho_modes.hpp"
#include "../subgroup_info.hpp"
#include "connection_manager.hpp"
#include "derecho_internal.hpp"
#include "derecho_sst.hpp"
#include <derecho/conf/conf.hpp>
#include <derecho/mutils-serialization/SerializationMacros.hpp>
#include <derecho/mutils-serialization/SerializationSupport.hpp>
#include <derecho/rdmc/rdmc.hpp>
#include <derecho/sst/multicast.hpp>
#include <derecho/sst/sst.hpp>
#include <spdlog/spdlog.h>
Go to the source code of this file.
Classes | |
struct | derecho::CallbackSet |
Bundles together a set of callback functions for message delivery events. More... | |
struct | derecho::DerechoParams |
Bundles together a set of low-level parameters for configuring Derecho groups. More... | |
struct | derecho::MessageBuffer |
Represents a block of memory used to store a message. More... | |
struct | derecho::RDMCMessage |
A structure containing an RDMC message (which consists of some bytes in a registered memory region) and some associated metadata. More... | |
struct | derecho::SSTMessage |
struct | derecho::SubgroupSettings |
A collection of settings for a single subgroup that this node is a member of. More... | |
class | derecho::MulticastGroup |
Implements the low-level mechanics of tracking multicasts in a Derecho group, using RDMC to deliver messages and SST to track their arrival and stability. More... | |
Namespaces | |
derecho | |
Functions | |
struct | derecho::__attribute__ ((__packed__)) header |
The header for an individual multicast message, which will always be the first sizeof(header) bytes in the message's data buffer. More... | |
struct derecho::CallbackSet |
Bundles together a set of callback functions for message delivery events.
These will be invoked by MulticastGroup or ViewManager to hand control back to the client if it wants to implement custom logic to respond to each message's arrival. (Note, this is a client-facing constructor argument, not an internal data structure).
Definition at line 39 of file multicast_group.hpp.
Class Members | ||
---|---|---|
persistence_callback_t | global_persistence_callback | |
message_callback_t | global_stability_callback | |
persistence_callback_t | local_persistence_callback |
struct derecho::RDMCMessage |
A structure containing an RDMC message (which consists of some bytes in a registered memory region) and some associated metadata.
Note that the metadata (sender_id, index, etc.) is only stored locally, not sent over the network with the message.
Definition at line 195 of file multicast_group.hpp.
Class Members | ||
---|---|---|
message_id_t | index | The message's index (relative to other messages sent by that sender). |
MessageBuffer | message_buffer | The MessageBuffer that contains the message's body. |
uint32_t | sender_id | The unique node ID of the message's sender. |
long long unsigned int | size | The message's size in bytes. |
struct derecho::SSTMessage |
Definition at line 207 of file multicast_group.hpp.
struct derecho::SubgroupSettings |
A collection of settings for a single subgroup that this node is a member of.
Mostly extracted from SubView, but tailored specifically to what MulticastGroup needs to know about subgroups and shards.
Definition at line 223 of file multicast_group.hpp.
Class Members | ||
---|---|---|
vector< node_id_t > | members | The members of the subgroup. |
Mode | mode | The operation mode of the subgroup. |
uint32_t | num_received_offset | The offset of this node's num_received counter within the subgroup's SST section. |
DerechoParams | profile | |
int | sender_rank | This node's sender rank within the subgroup (as defined by SubView::sender_rank_of) |
vector< int > | senders | The "is_sender" flags for members of the subgroup. |
uint32_t | shard_num | This node's shard number within the subgroup. |
uint32_t | shard_rank | This node's rank within its shard of the subgroup. |
uint32_t | slot_offset | The offset of this node's slot within the subgroup's SST section. |