SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG
DONATE


YUM REPOSITORY

 
 

MAN page from OpenSuSE 389-ds-devel-1.4.3.19~git0.bef0b5bed-lp152.2.12.1.x86_64.rpm

sds_bptree_transaction

Section: dirsrv (3)
Updated: Tue Mar 2 2021
Index 

NAME

sds_bptree_transaction 

SYNOPSIS


#include <sds.h> 

Data Fields


uint32_t checksum

uint32_t reference_count

sds_txn_state state

struct _sds_bptree_cow_instance * binst

struct _sds_bptree_instance * bi

uint64_t txn_id

sds_bptree_node_list * owned

sds_bptree_node_list * created

struct _sds_bptree_node * root

struct _sds_bptree_transaction * parent_txn

struct _sds_bptree_transaction * child_txn
 

Detailed Description

sds_bptree_transaction Manages the content and lifetime of nodes within the tree. It is the basis of our garbage collection system, using atomic reference counts to synchronise our behaviour.  

Field Documentation

 

struct _sds_bptree_instance* sds_bptree_transaction::bi

Pointer to the b+tree instance that this transaction holds.  

struct _sds_bptree_cow_instance* sds_bptree_transaction::binst

Pointer to the cow b+tree instance that created us.  

uint32_t sds_bptree_transaction::checksum

Checksum of the data in this structure.  

struct _sds_bptree_transaction* sds_bptree_transaction::child_txn

The next transaction that derives from us.  

sds_bptree_node_list* sds_bptree_transaction::created

The list of nodes that this transaction 'created'. This is used during an abort of the txn to roll back any changes that we made.  

sds_bptree_node_list* sds_bptree_transaction::owned

The list of nodes that this transaction 'owns'. When the reference count moves to 0, these nodes will be freed. This list is created during a write transaction of 'items that will not be needed when we are removed.'.

IE, when we have a txn A, then a new transaction B is made, we 'copy' node 1a to node 1b. Node 1b is 'created' by txn B, and node 1a is 'owend' by txn A, because it's the last transaction that depends on this nodes existance.  

struct _sds_bptree_transaction* sds_bptree_transaction::parent_txn

The previous transaction that we are derived from.  

uint32_t sds_bptree_transaction::reference_count

Reference count to the number of consumers of this transaction. This is atomically updated. If this is the 'active' master transaction, this is guaranteed to be 1 or greater. When a new write transaction is commited, if this reference count falls to 0, this transaction is implicitly destroy.  

struct _sds_bptree_node* sds_bptree_transaction::root

The current root node. Each transaction owns a unique root node which anchors the branches of the copy on write structure.  

sds_txn_state sds_bptree_transaction::state

The state of the transaction. All transactions start as SDS_WRITE_TXN, and upon commit move to the SDS_READ_TXN state.  

uint64_t sds_bptree_transaction::txn_id

The unique identifier of this transaction.

 

Author

Generated automatically by Doxygen for dirsrv from the source code.


 

Index

NAME
SYNOPSIS
Data Fields
Detailed Description
Field Documentation
struct _sds_bptree_instance* sds_bptree_transaction::bi
struct _sds_bptree_cow_instance* sds_bptree_transaction::binst
uint32_t sds_bptree_transaction::checksum
struct _sds_bptree_transaction* sds_bptree_transaction::child_txn
sds_bptree_node_list* sds_bptree_transaction::created
sds_bptree_node_list* sds_bptree_transaction::owned
struct _sds_bptree_transaction* sds_bptree_transaction::parent_txn
uint32_t sds_bptree_transaction::reference_count
struct _sds_bptree_node* sds_bptree_transaction::root
sds_txn_state sds_bptree_transaction::state
uint64_t sds_bptree_transaction::txn_id
Author

This document was created byman2html,using the manual pages.