mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-27 18:19:52 -05:00
Add mdb.c:txnid_t for readability.
Maybe later we'll test txnid wraparound with it defined to ushort.
This commit is contained in:
parent
bf9d722bec
commit
b1cfff4aeb
1 changed files with 15 additions and 10 deletions
|
|
@ -168,6 +168,11 @@
|
|||
*/
|
||||
typedef ULONG pgno_t;
|
||||
|
||||
/** A transaction ID.
|
||||
* See struct MDB_txn.mt_txnid for details.
|
||||
*/
|
||||
typedef ULONG txnid_t;
|
||||
|
||||
/** @defgroup debug Debug Macros
|
||||
* @{
|
||||
*/
|
||||
|
|
@ -382,7 +387,7 @@ typedef struct MDB_rxbody {
|
|||
* started from so we can avoid overwriting any data used in that
|
||||
* particular version.
|
||||
*/
|
||||
ULONG mrb_txnid;
|
||||
txnid_t mrb_txnid;
|
||||
/** The process ID of the process owning this reader txn. */
|
||||
pid_t mrb_pid;
|
||||
/** The thread ID of the thread owning this txn. */
|
||||
|
|
@ -431,7 +436,7 @@ typedef struct MDB_txbody {
|
|||
* This is recorded here only for convenience; the value can always
|
||||
* be determined by reading the main database meta pages.
|
||||
*/
|
||||
ULONG mtb_txnid;
|
||||
txnid_t mtb_txnid;
|
||||
/** 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.
|
||||
|
|
@ -641,7 +646,7 @@ typedef struct MDB_meta {
|
|||
/** Any persistent environment flags. @ref mdb_env */
|
||||
#define mm_flags mm_dbs[0].md_flags
|
||||
pgno_t mm_last_pg; /**< last used page in file */
|
||||
ULONG mm_txnid; /**< txnid that committed this page */
|
||||
txnid_t mm_txnid; /**< txnid that committed this page */
|
||||
} MDB_meta;
|
||||
|
||||
/** Auxiliary DB info.
|
||||
|
|
@ -669,7 +674,7 @@ struct MDB_txn {
|
|||
* Only committed write transactions increment the ID. If a transaction
|
||||
* aborts, the ID may be re-used by the next writer.
|
||||
*/
|
||||
ULONG mt_txnid;
|
||||
txnid_t mt_txnid;
|
||||
MDB_env *mt_env; /**< the DB environment */
|
||||
/** The list of pages that became unused during this transaction.
|
||||
* This is an #IDL.
|
||||
|
|
@ -754,7 +759,7 @@ typedef struct MDB_oldpages {
|
|||
*/
|
||||
struct MDB_oldpages *mo_next;
|
||||
/** The ID of the transaction in which these pages were freed. */
|
||||
ULONG mo_txnid;
|
||||
txnid_t mo_txnid;
|
||||
/** An #IDL of the pages */
|
||||
pgno_t mo_pages[1]; /* dynamic */
|
||||
} MDB_oldpages;
|
||||
|
|
@ -966,7 +971,7 @@ mdb_alloc_page(MDB_cursor *mc, int num)
|
|||
/* See if there's anything in the free DB */
|
||||
MDB_cursor m2;
|
||||
MDB_node *leaf;
|
||||
ULONG *kptr, oldest;
|
||||
txnid_t *kptr, oldest;
|
||||
|
||||
m2.mc_txn = txn;
|
||||
m2.mc_dbi = FREE_DBI;
|
||||
|
|
@ -974,13 +979,13 @@ mdb_alloc_page(MDB_cursor *mc, int num)
|
|||
m2.mc_flags = 0;
|
||||
mdb_search_page(&m2, NULL, 0);
|
||||
leaf = NODEPTR(m2.mc_pg[m2.mc_top], 0);
|
||||
kptr = (ULONG *)NODEKEY(leaf);
|
||||
kptr = (txnid_t *)NODEKEY(leaf);
|
||||
|
||||
{
|
||||
unsigned int i;
|
||||
oldest = txn->mt_txnid - 1;
|
||||
for (i=0; i<txn->mt_env->me_txns->mti_numreaders; i++) {
|
||||
ULONG mr = txn->mt_env->me_txns->mti_readers[i].mr_txnid;
|
||||
txnid_t mr = txn->mt_env->me_txns->mti_readers[i].mr_txnid;
|
||||
if (mr && mr < oldest)
|
||||
oldest = mr;
|
||||
}
|
||||
|
|
@ -1374,7 +1379,7 @@ mdb_txn_commit(MDB_txn *txn)
|
|||
#endif
|
||||
/* write to last page of freeDB */
|
||||
key.mv_size = sizeof(pgno_t);
|
||||
key.mv_data = (char *)&txn->mt_txnid;
|
||||
key.mv_data = &txn->mt_txnid;
|
||||
data.mv_data = txn->mt_free_pgs;
|
||||
/* The free list can still grow during this call,
|
||||
* despite the pre-emptive touches above. So check
|
||||
|
|
@ -1397,7 +1402,7 @@ mdb_txn_commit(MDB_txn *txn)
|
|||
|
||||
mop = env->me_pghead;
|
||||
key.mv_size = sizeof(pgno_t);
|
||||
key.mv_data = (char *)&mop->mo_txnid;
|
||||
key.mv_data = &mop->mo_txnid;
|
||||
data.mv_size = MDB_IDL_SIZEOF(mop->mo_pages);
|
||||
data.mv_data = mop->mo_pages;
|
||||
mdb_cursor_put(&mc, &key, &data, 0);
|
||||
|
|
|
|||
Loading…
Reference in a new issue