Motr  M0
m0_cm Struct Reference

#include <cm.h>

Collaboration diagram for m0_cm:
Collaboration graph

Data Fields

struct m0_sm cm_mach
 
uint64_t cm_id
 
m0_time_t cm_epoch
 
struct m0_sm_group cm_sm_group
 
const struct m0_cm_opscm_ops
 
struct m0_reqh_service cm_service
 
const struct m0_cm_typecm_type
 
struct m0_tl cm_aggr_grps_in
 
uint64_t cm_aggr_grps_in_nr
 
struct m0_cm_ag_id cm_sw_last_updated_hi
 
struct m0_cm_ag_id cm_last_out_hi
 
struct m0_cm_ag_id cm_last_processed_out
 
struct m0_tl cm_aggr_grps_out
 
uint64_t cm_aggr_grps_out_nr
 
struct m0_chan cm_wait
 
struct m0_mutex cm_wait_mutex
 
struct m0_chan cm_complete
 
struct m0_chan cm_proxy_init_wait
 
struct m0_tl cm_proxies
 
struct m0_tl cm_failed_proxies
 
uint64_t cm_proxy_nr
 
struct m0_bitmap cm_proxy_update_map
 
uint64_t cm_nr_proxy_updated
 
uint64_t cm_proxy_active_nr
 
struct m0_cm_cp_pump cm_cp_pump
 
struct m0_cm_sw_update cm_sw_update
 
struct m0_cm_ag_store cm_ag_store
 
struct m0_cm_ast_run cm_asts_run
 
bool cm_done
 
bool cm_reset
 
bool cm_quiesce
 
bool cm_abort
 

Detailed Description

Copy machine replica.

Definition at line 166 of file cm.h.

Field Documentation

◆ cm_abort

bool cm_abort

Command to abort current cm operation.

Definition at line 282 of file cm.h.

◆ cm_ag_store

struct m0_cm_ag_store cm_ag_store

Definition at line 261 of file cm.h.

◆ cm_aggr_grps_in

struct m0_tl cm_aggr_grps_in

List of aggregation groups having incoming copy packets for this copy machine replica. Copy machine provides various interfaces over this list to implement sliding window.

See also
struct m0_cm_aggr_group::cag_cm_in_linkage

Definition at line 203 of file cm.h.

◆ cm_aggr_grps_in_nr

uint64_t cm_aggr_grps_in_nr

Definition at line 205 of file cm.h.

◆ cm_aggr_grps_out

struct m0_tl cm_aggr_grps_out

List of aggregation groups having outgoing copy packets from this copy machine replica.

See also
struct m0_cm_aggr_group::cag_cm_out_linkage

Definition at line 231 of file cm.h.

◆ cm_aggr_grps_out_nr

uint64_t cm_aggr_grps_out_nr

Definition at line 233 of file cm.h.

◆ cm_asts_run

struct m0_cm_ast_run cm_asts_run

Definition at line 263 of file cm.h.

◆ cm_complete

struct m0_chan cm_complete

Definition at line 238 of file cm.h.

◆ cm_cp_pump

struct m0_cm_cp_pump cm_cp_pump

Copy packet pump FOM for this copy machine.

Definition at line 257 of file cm.h.

◆ cm_done

bool cm_done

Definition at line 265 of file cm.h.

◆ cm_epoch

m0_time_t cm_epoch

Represents beginning of copy machine operation.

Definition at line 177 of file cm.h.

◆ cm_failed_proxies

struct m0_tl cm_failed_proxies

Definition at line 248 of file cm.h.

◆ cm_id

uint64_t cm_id

Copy machine id. Copy machines are identified by this id. Copy machines can be located with this id by querying some configuration information.

Definition at line 174 of file cm.h.

◆ cm_last_out_hi

struct m0_cm_ag_id cm_last_out_hi

Definition at line 222 of file cm.h.

◆ cm_last_processed_out

struct m0_cm_ag_id cm_last_processed_out

Definition at line 224 of file cm.h.

◆ cm_mach

struct m0_sm cm_mach

Definition at line 167 of file cm.h.

◆ cm_nr_proxy_updated

uint64_t cm_nr_proxy_updated

Definition at line 253 of file cm.h.

◆ cm_ops

const struct m0_cm_ops* cm_ops

Copy machine operations.

Definition at line 188 of file cm.h.

◆ cm_proxies

struct m0_tl cm_proxies

List of m0_cm_proxy objects representing remote replicas.

See also
struct m0_cm_proxy::px_linkage

Definition at line 246 of file cm.h.

◆ cm_proxy_active_nr

uint64_t cm_proxy_active_nr

Definition at line 254 of file cm.h.

◆ cm_proxy_init_wait

struct m0_chan cm_proxy_init_wait

Definition at line 240 of file cm.h.

◆ cm_proxy_nr

uint64_t cm_proxy_nr

Definition at line 250 of file cm.h.

◆ cm_proxy_update_map

struct m0_bitmap cm_proxy_update_map

Definition at line 252 of file cm.h.

◆ cm_quiesce

bool cm_quiesce

Command to quiesce pumping new copy packet. This will cause sns repair/rebalance to quiesce.

Definition at line 277 of file cm.h.

◆ cm_reset

bool cm_reset

True if cm should start fresh. False if an operation is resuming post quiesce.

Definition at line 271 of file cm.h.

◆ cm_service

struct m0_reqh_service cm_service

Request handler service instance this copy machine belongs to.

Definition at line 191 of file cm.h.

◆ cm_sm_group

struct m0_sm_group cm_sm_group

State machine group for this copy machine type. Each replica uses the mutex embedded in their state machine group to serialise their state transitions and operations (cm_sm_group.s_lock)

Definition at line 185 of file cm.h.

◆ cm_sw_last_updated_hi

struct m0_cm_ag_id cm_sw_last_updated_hi

Saved aggregation group identifier for the last processed aggregation group with the highest identifier in the sliding window. This is mainly referred while advancing the sliding window. This also resolves the issue, where an aggregation group with the highest identifier in the sliding window was just finalised and sliding window could not advance before that due to unavailability of buffers. Thus in this case, there's a possibility of allocating an aggregation group with the previously processed group identifier during the later sliding window updates. Thus saving the highest processed aggregation group identifier from the sliding window avoids this situation.

Definition at line 220 of file cm.h.

◆ cm_sw_update

struct m0_cm_sw_update cm_sw_update

Definition at line 259 of file cm.h.

◆ cm_type

const struct m0_cm_type* cm_type

Copy machine type, this copy machine is an instance of.

Definition at line 194 of file cm.h.

◆ cm_wait

struct m0_chan cm_wait

Definition at line 235 of file cm.h.

◆ cm_wait_mutex

struct m0_mutex cm_wait_mutex

Definition at line 236 of file cm.h.


The documentation for this struct was generated from the following file: