]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-bdb/back-bdb.h
Memory context tweaks for other ops
[openldap] / servers / slapd / back-bdb / back-bdb.h
index 50f400688b750fb23f6e9c4d0f0fb490b077622c..21d6184f61dfc464cc7ed6d87d8ab0c421b1ec9d 100644 (file)
@@ -30,6 +30,8 @@ LDAP_BEGIN_DECL
 
 #define BDB_MAX_ADD_LOOP       30
 
+#define        BDB_ALIASES     1
+
 #ifdef BDB_SUBDIRS
 #define BDB_TMP_SUBDIR "tmp"
 #define BDB_LG_SUBDIR  "log"
@@ -63,6 +65,9 @@ LDAP_BEGIN_DECL
 /* The default search IDL stack cache depth */
 #define DEFAULT_SEARCH_STACK_DEPTH     16
 
+/* The minimum we can function with */
+#define MINIMUM_SEARCH_STACK_DEPTH     8
+
 /* for the IDL cache */
 #define SLAP_IDL_CACHE 1
 
@@ -110,7 +115,6 @@ struct bdb_info {
 
        int                     bi_ndatabases;
        struct bdb_db_info **bi_databases;
-       ldap_pvt_thread_mutex_t bi_database_mutex;
        int             bi_db_opflags;  /* db-specific flags */
 
        slap_mask_t     bi_defaultmask;
@@ -133,7 +137,7 @@ struct bdb_info {
        ID                      bi_lastid;
        ldap_pvt_thread_mutex_t bi_lastid_mutex;
 #if defined(LDAP_CLIENT_UPDATE) || defined(LDAP_SYNC)
-       LDAP_LIST_HEAD(pl, slap_op) psearch_list;
+       LDAP_LIST_HEAD(pl, slap_op) bi_psearch_list;
 #endif
 #ifdef SLAP_IDL_CACHE
        int             bi_idl_cache_max_size;
@@ -141,7 +145,8 @@ struct bdb_info {
        Avlnode         *bi_idl_tree;
        bdb_idl_cache_entry_t   *bi_idl_lru_head;
        bdb_idl_cache_entry_t   *bi_idl_lru_tail;
-       ldap_pvt_thread_mutex_t bi_idl_tree_mutex;
+       ldap_pvt_thread_rdwr_t bi_idl_tree_rwlock;
+       ldap_pvt_thread_mutex_t bi_idl_tree_lrulock;
 #endif
 };
 
@@ -155,6 +160,7 @@ struct bdb_info {
 struct bdb_op_info {
        BackendDB*      boi_bdb;
        DB_TXN*         boi_txn;
+       DB_LOCK         boi_lock;       /* used when no txn */
        u_int32_t       boi_err;
        u_int32_t       boi_locker;
        int             boi_acl_cache;