]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
provision: always use a large transaction index cache
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Thu, 30 Jan 2025 21:31:32 +0000 (10:31 +1300)
committerJule Anger <janger@samba.org>
Thu, 27 Feb 2025 12:10:52 +0000 (12:10 +0000)
A larger cache costs more per transaction, but makes a large number
of operations within a transaction faster. We expect to be dealing
with the latter case here, regardless of the batch_mode parameter
and the database size. 200000 is chosen because it is also used in
join and schemaupgrade, and should be sufficient in most cases.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15795

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org>
Autobuild-Date(master): Tue Feb  4 22:47:35 UTC 2025 on atb-devel-224

(cherry picked from commit e705dbbc6765454813375fee9f6a3365b947e021)

Autobuild-User(v4-21-test): Jule Anger <janger@samba.org>
Autobuild-Date(v4-21-test): Thu Feb 27 12:10:52 UTC 2025 on atb-devel-224

python/samba/provision/__init__.py

index dea50aa364e67849c674d1b63117db6ca62d7b13..f091ccf2f1850aba11aa86629218543aeea7641b 100644 (file)
@@ -1299,12 +1299,9 @@ def setup_samdb(path, session_info, provision_backend, lp, names,
         options.append("lmdb_env_size:" + str(store_size))
     if batch_mode:
         options.append("batch_mode:1")
-    if batch_mode:
-        # Estimate the number of index records in the transaction_index_cache
-        # Numbers chosen give the prime 202481 for the default backend size,
-        # which works well for a 100,000 user database
-        cache_size = int(store_size / 42423) + 1
-        options.append("transaction_index_cache_size:" + str(cache_size))
+
+    # For bulk operations like this we use a large transaction index cache.
+    options.append("transaction_index_cache_size:200000")
 
     # Load the database, but don's load the global schema and don't connect
     # quite yet