MDB_txbody Struct Reference
[Reader Lock Table]

Data Fields

uint32_t mtb_magic
uint32_t mtb_format
pthread_mutex_t mtb_mutex
txnid_t mtb_txnid
unsigned mtb_numreaders

Detailed Description

The header for the reader table. The table resides in a memory-mapped file. (This is a different file than is used for the main database.)

For POSIX the actual mutexes reside in the shared memory of this mapped file. On Windows, mutexes are named objects allocated by the kernel; we store the mutex names in this mapped file so that other processes can grab them. This same approach is also used on MacOSX/Darwin (using named semaphores) since MacOSX doesn't support process-shared POSIX mutexes. For these cases where a named object is used, the object name is derived from a 64 bit FNV hash of the environment pathname. As such, naming collisions are extremely unlikely. If a collision occurs, the results are unpredictable.


Field Documentation

Stamp identifying this as an MDB file. It must be set to MDB_MAGIC.

Format of this lock file. Must be set to MDB_LOCK_FORMAT.

pthread_mutex_t MDB_txbody::mtb_mutex

Mutex protecting access to this table. This is the reader lock that LOCK_MUTEX_R acquires.

The ID of the last transaction committed to the database. This is recorded here only for convenience; the value can always be determined by reading the main database meta pages.

The number of slots that have been used in the reader table. This always records the maximum count, it is not decremented when readers release their slots.


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

Generated on 2 Nov 2015 for MDB by  doxygen 1.6.1