Motr  M0
m0_fd_perm_cache Struct Reference

#include <fd.h>

Collaboration diagram for m0_fd_perm_cache:
Collaboration graph

Data Fields

uint64_t fpc_magic
 
uint64_t fpc_omega
 
struct m0_fid fpc_gfid
 
uint32_t fpc_len
 
uint64_t * fpc_lcode
 
uint64_t * fpc_permute
 
uint64_t * fpc_inverse
 

Detailed Description

Definition at line 143 of file fd.h.

Field Documentation

◆ fpc_gfid

struct m0_fid fpc_gfid

gfid of the last file that used the layout using the relevant failure domains tree.

Definition at line 154 of file fd.h.

◆ fpc_inverse

uint64_t* fpc_inverse

Inverse column permutation.

Invariant
fpc_permute[fpc_inverse[x]] == x
fpc_inverse[fpc_permute[x]] == x

Definition at line 183 of file fd.h.

◆ fpc_lcode

uint64_t* fpc_lcode

Lehmer code of permutation. This array of m0_fd_permgrp_cache::fpc_count elements is used to generate fpc_permute[] and fpc_inverse[] arrays. Strictly speaking, it is not needed after above arrays are built, but it is kept for completeness.

Technically speaking, this array is a lexicographic number of permutation written in factorial number system (see HLD of parity declustered layout for references).

See also
http://en.wikipedia.org/wiki/Lehmer_code

Definition at line 170 of file fd.h.

◆ fpc_len

uint32_t fpc_len

Definition at line 156 of file fd.h.

◆ fpc_magic

uint64_t fpc_magic

Holds M0_FD_PRMCACHE_MAGIC.

Definition at line 145 of file fd.h.

◆ fpc_omega

uint64_t fpc_omega

Index of a tile for which the members of this permutation group were last permuted.

Definition at line 150 of file fd.h.

◆ fpc_permute

uint64_t* fpc_permute

Column permutation for failure domains. This is an array of m0_fd_permgrp_cache::fpc_count elements, without duplicates.

Definition at line 176 of file fd.h.


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