FreeBSD ZFS
The Zettabyte File System
Data Fields

sa_os Struct Reference

Since the offset/index information into the actual data will usually be identical we can share that information with all handles that have the exact same offsets. More...

#include <sa_impl.h>

Collaboration diagram for sa_os:
Collaboration graph
[legend]

Data Fields

kmutex_t sa_lock
boolean_t sa_need_attr_registration
boolean_t sa_force_spill
uint64_t sa_master_obj
uint64_t sa_reg_attr_obj
uint64_t sa_layout_attr_obj
int sa_num_attrs
sa_attr_table_tsa_attr_table
 private attr table
sa_update_cb_tsa_update_cb
avl_tree_t sa_layout_num_tree
 keyed by layout number
avl_tree_t sa_layout_hash_tree
 keyed by layout hash value
int sa_user_table_sz
sa_attr_type_tsa_user_table
 user name->attr mapping table

Detailed Description

Since the offset/index information into the actual data will usually be identical we can share that information with all handles that have the exact same offsets.

You would typically only have a large number of different table of contents if you had a several variable sized attributes.

Two AVL trees are used to track the attribute layout numbers. one is keyed by number and will be consulted when a DMU_OT_SA object is first read. The second tree is keyed by the hash signature of the attributes and will be consulted when an attribute is added to determine if we already have an instance of that layout. Both of these tree's are interconnected. The only difference is that when an entry is found in the "hash" tree the list of attributes will need to be compared against the list of attributes you have in hand. The assumption is that typically attributes will just be updated and adding a completely new attribute is a very rare operation.

Definition at line 137 of file sa_impl.h.


Field Documentation

private attr table

Definition at line 145 of file sa_impl.h.

Definition at line 140 of file sa_impl.h.

Definition at line 143 of file sa_impl.h.

keyed by layout hash value

Definition at line 148 of file sa_impl.h.

keyed by layout number

Definition at line 147 of file sa_impl.h.

kmutex_t sa_os::sa_lock

Definition at line 138 of file sa_impl.h.

Definition at line 141 of file sa_impl.h.

Definition at line 139 of file sa_impl.h.

Definition at line 144 of file sa_impl.h.

Definition at line 142 of file sa_impl.h.

Definition at line 146 of file sa_impl.h.

user name->attr mapping table

Definition at line 150 of file sa_impl.h.

Definition at line 149 of file sa_impl.h.


The documentation for this struct was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines