Motr
M0
|
#include <domain.h>
Data Fields | |
const struct m0_stob_domain_ops * | sd_ops |
struct m0_stob_type * | sd_type |
struct m0_fid | sd_id |
char * | sd_location |
char * | sd_location_data |
struct m0_tlink | sd_domain_linkage |
uint64_t | sd_magic |
struct m0_stob_cache | sd_cache |
void * | sd_private |
Stob domain.
Description.
Stob domain is a collection of storage objects of the same type. A stob type may have multiple domains, which are linked together to its type by 'sd_domain_linkage'.
A storage domain comes with an operation to find a storage object in the domain. A domain might cache storage objects and use some kind of index to speed up object lookup. This caching and indexing are not visible at the generic level.
Maintenance of stob domain lifetime is responsibility of user.
Domain fid has the following structure:
8 bits 120 bits
+-------------------—+-------------------------------------------—+ | stob domain type id | stob domain key | +-------------------—+-------------------------------------------—+
Stob cache.
Stob domain doesn't contain list of initialised stobs. Instead, it has a stob cache. This cache is maintained implicitly and there is no public interface for it.
A stob may be finalised and removed from stob cache at some time after reference count is set to 0. This semantics is hidden.
Stob domain location
Location is a string that has the next format:
* location ::= <type name> ":" <implementation dependent location data> *
Consequently, stob type name parameter is omitted in m0_stob_domain_{init,create}().
struct m0_stob_cache sd_cache |
struct m0_tlink sd_domain_linkage |
Linkage into m0_stob_type::st_domains list
const struct m0_stob_domain_ops* sd_ops |
void* sd_private |
struct m0_stob_type* sd_type |