]> 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>
Wed, 26 Feb 2025 09:40:17 +0000 (09:40 +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-20-test): Jule Anger <janger@samba.org>
Autobuild-Date(v4-20-test): Wed Feb 26 09:40:17 UTC 2025 on atb-devel-224

python/samba/provision/__init__.py

index 56ca74964078861bda8573547717525a3a7c51ef..b2e06350f3430dce9a125cd530d04d5a54c201c3 100644 (file)
@@ -1294,12 +1294,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