Motr  M0
aggregtion group store fom
Collaboration diagram for aggregtion group store fom:

Enumerations

enum  ag_store_update_fom_phase {
  AG_STORE_INIT = M0_FOM_PHASE_INIT, AG_STORE_FINI = M0_FOM_PHASE_FINISH, AG_STORE_INIT_WAIT, AG_STORE_START,
  AG_STORE_UPDATE, AG_STORE_UPDATE_WAIT, AG_STORE_COMPLETE, AG_STORE_NR
}
 

Functions

static struct m0_cmstore2cm (struct m0_cm_ag_store *store)
 
static struct m0_cm_ag_storefom2store (struct m0_fom *fom)
 
static int ag_store_alloc (struct m0_cm_ag_store *store)
 
static int ag_store_init_load (struct m0_cm_ag_store *store, struct m0_cm_ag_store_data **data)
 
static void in_out_set (struct m0_cm *cm, struct m0_cm_ag_store *store, struct m0_cm_ag_store_data *s_data)
 
static int ag_store_init (struct m0_cm_ag_store *store)
 
static int ag_store_start (struct m0_cm_ag_store *store)
 
static int ag_store_init_wait (struct m0_cm_ag_store *store)
 
static int ag_store__update (struct m0_cm_ag_store *store)
 
static int ag_store_update (struct m0_cm_ag_store *store)
 
static int ag_store_update_wait (struct m0_cm_ag_store *store)
 
static int ag_store_complete (struct m0_cm_ag_store *store)
 
static uint64_t ag_store_fom_locality (const struct m0_fom *fom)
 
static int ag_store_fom_tick (struct m0_fom *fom)
 
static void ag_store_fom_fini (struct m0_fom *fom)
 
M0_INTERNAL void m0_cm_ag_store_init (struct m0_cm_type *cmtype)
 
M0_INTERNAL void m0_cm_ag_store_complete (struct m0_cm_ag_store *store)
 
M0_INTERNAL void m0_cm_ag_store_fini (struct m0_cm_ag_store *store)
 
M0_INTERNAL bool m0_cm_ag_store_is_complete (struct m0_cm_ag_store *store)
 
M0_INTERNAL void m0_cm_ag_store_fom_start (struct m0_cm *cm)
 

Variables

static const struct m0_fom_type_ops ag_store_update_fom_type_ops
 
static struct m0_sm_state_descr ag_store_update_sd [AG_STORE_NR]
 
struct m0_sm_conf ag_store_update_conf
 
static int(* ag_store_action [])(struct m0_cm_ag_store *store)
 
static const struct m0_fom_ops ag_store_update_fom_ops
 

Detailed Description

Implementation of aggregation group store FOM. Provides mechanism to handle blocking operations like persisting aggregation group information (i.e. last processed aggregation group). When copy machine operation starts, aggregation group store fom reads persistent store and initialises copy machine to start processing from previously incomplete aggregation group after operations like quiesce and abort. In case of additional failures copy machine is reset and store information is discarded.

Enumeration Type Documentation

◆ ag_store_update_fom_phase

Enumerator
AG_STORE_INIT 
AG_STORE_FINI 
AG_STORE_INIT_WAIT 
AG_STORE_START 
AG_STORE_UPDATE 
AG_STORE_UPDATE_WAIT 
AG_STORE_COMPLETE 
AG_STORE_NR 

Definition at line 56 of file ag_store.c.

Function Documentation

◆ ag_store__update()

static int ag_store__update ( struct m0_cm_ag_store store)
static

Definition at line 321 of file ag_store.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ag_store_alloc()

static int ag_store_alloc ( struct m0_cm_ag_store store)
static

Definition at line 127 of file ag_store.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ag_store_complete()

static int ag_store_complete ( struct m0_cm_ag_store store)
static

Definition at line 421 of file ag_store.c.

Here is the call graph for this function:

◆ ag_store_fom_fini()

static void ag_store_fom_fini ( struct m0_fom fom)
static

Definition at line 497 of file ag_store.c.

Here is the call graph for this function:

◆ ag_store_fom_locality()

static uint64_t ag_store_fom_locality ( const struct m0_fom fom)
static

Definition at line 476 of file ag_store.c.

◆ ag_store_fom_tick()

static int ag_store_fom_tick ( struct m0_fom fom)
static

Definition at line 480 of file ag_store.c.

Here is the call graph for this function:

◆ ag_store_init()

static int ag_store_init ( struct m0_cm_ag_store store)
static

Definition at line 208 of file ag_store.c.

Here is the call graph for this function:

◆ ag_store_init_load()

static int ag_store_init_load ( struct m0_cm_ag_store store,
struct m0_cm_ag_store_data **  data 
)
static

Definition at line 155 of file ag_store.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ag_store_init_wait()

static int ag_store_init_wait ( struct m0_cm_ag_store store)
static

Definition at line 272 of file ag_store.c.

Here is the call graph for this function:

◆ ag_store_start()

static int ag_store_start ( struct m0_cm_ag_store store)
static

Definition at line 258 of file ag_store.c.

Here is the call graph for this function:

◆ ag_store_update()

static int ag_store_update ( struct m0_cm_ag_store store)
static

Definition at line 344 of file ag_store.c.

Here is the call graph for this function:

◆ ag_store_update_wait()

static int ag_store_update_wait ( struct m0_cm_ag_store store)
static

Definition at line 386 of file ag_store.c.

Here is the call graph for this function:

◆ fom2store()

static struct m0_cm_ag_store* fom2store ( struct m0_fom fom)
static

Definition at line 122 of file ag_store.c.

Here is the caller graph for this function:

◆ in_out_set()

static void in_out_set ( struct m0_cm cm,
struct m0_cm_ag_store store,
struct m0_cm_ag_store_data s_data 
)
static

Setting in and out AG id and epoch to in-memory store and its original cm.

Definition at line 188 of file ag_store.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_cm_ag_store_complete()

M0_INTERNAL void m0_cm_ag_store_complete ( struct m0_cm_ag_store store)

Definition at line 519 of file ag_store.c.

Here is the caller graph for this function:

◆ m0_cm_ag_store_fini()

M0_INTERNAL void m0_cm_ag_store_fini ( struct m0_cm_ag_store store)

Definition at line 524 of file ag_store.c.

Here is the caller graph for this function:

◆ m0_cm_ag_store_fom_start()

M0_INTERNAL void m0_cm_ag_store_fom_start ( struct m0_cm cm)

Definition at line 534 of file ag_store.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_cm_ag_store_init()

M0_INTERNAL void m0_cm_ag_store_init ( struct m0_cm_type cmtype)

Definition at line 512 of file ag_store.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_cm_ag_store_is_complete()

M0_INTERNAL bool m0_cm_ag_store_is_complete ( struct m0_cm_ag_store store)

Definition at line 529 of file ag_store.c.

Here is the caller graph for this function:

◆ store2cm()

static struct m0_cm* store2cm ( struct m0_cm_ag_store store)
static

Definition at line 117 of file ag_store.c.

Here is the caller graph for this function:

Variable Documentation

◆ ag_store_action

int(* ag_store_action[])(struct m0_cm_ag_store *store)
static
Initial value:
= {
}
static int ag_store_init(struct m0_cm_ag_store *store)
Definition: ag_store.c:208
static int ag_store_init_wait(struct m0_cm_ag_store *store)
Definition: ag_store.c:272
static int ag_store_start(struct m0_cm_ag_store *store)
Definition: ag_store.c:258
static int ag_store_update(struct m0_cm_ag_store *store)
Definition: ag_store.c:344
static int ag_store_complete(struct m0_cm_ag_store *store)
Definition: ag_store.c:421
static int ag_store_update_wait(struct m0_cm_ag_store *store)
Definition: ag_store.c:386

Definition at line 467 of file ag_store.c.

◆ ag_store_update_conf

struct m0_sm_conf ag_store_update_conf
Initial value:
= {
.scf_name = "sm: store update conf",
.scf_nr_states = ARRAY_SIZE(ag_store_update_sd),
.scf_state = ag_store_update_sd,
}
static struct m0_sm_state_descr ag_store_update_sd[AG_STORE_NR]
Definition: ag_store.c:70
#define ARRAY_SIZE(a)
Definition: misc.h:45

Definition at line 111 of file ag_store.c.

◆ ag_store_update_fom_ops

const struct m0_fom_ops ag_store_update_fom_ops
static
Initial value:
= {
.fo_fini = ag_store_fom_fini,
.fo_tick = ag_store_fom_tick,
.fo_home_locality = ag_store_fom_locality
}
static int ag_store_fom_tick(struct m0_fom *fom)
Definition: ag_store.c:480
static void ag_store_fom_fini(struct m0_fom *fom)
Definition: ag_store.c:497
static uint64_t ag_store_fom_locality(const struct m0_fom *fom)
Definition: ag_store.c:476

Definition at line 506 of file ag_store.c.

◆ ag_store_update_fom_type_ops

const struct m0_fom_type_ops ag_store_update_fom_type_ops
static
Initial value:
= {
}

Definition at line 67 of file ag_store.c.

◆ ag_store_update_sd

struct m0_sm_state_descr ag_store_update_sd[AG_STORE_NR]
static

Definition at line 70 of file ag_store.c.