]> git.sur5r.net Git - openldap/commitdiff
ITS#8226 optimization
authorHoward Chu <hyc@openldap.org>
Tue, 1 Aug 2017 21:08:50 +0000 (22:08 +0100)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 11 Oct 2017 19:10:57 +0000 (12:10 -0700)
Don't release read txn unless there has actually been a new write txn

servers/slapd/back-mdb/search.c

index d0db9183370e4aed940cec31203cb1f6de480ec7..6084c6f0158ad758da08719026a015bbd4b42315 100644 (file)
@@ -1124,8 +1124,11 @@ loop_continue:
                if ( moi == &opinfo && !wwctx.flag && mdb->mi_rtxn_size ) {
                        wwctx.nentries++;
                        if ( wwctx.nentries >= mdb->mi_rtxn_size ) {
+                               MDB_envinfo ei;
                                wwctx.nentries = 0;
-                               mdb_rtxn_snap( op, &wwctx );
+                               mdb_env_info(mdb->mi_dbenv, &ei);
+                               if ( ei.me_last_txnid > mdb_txn_id( ltid ))
+                                       mdb_rtxn_snap( op, &wwctx );
                        }
                }
                if ( wwctx.flag ) {