The branch, master has been updated
via e705dbbc676 provision: always use a large transaction index cache
via 5092d7f46b8 netcmd: Increase the transaction_index_cache_size to
200k for schemaupgrade
from 51f38ac7f3d s3:utils: Fix 'Usage:' for 'net ads enctypes'
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit e705dbbc6765454813375fee9f6a3365b947e021
Author: Douglas Bagnall <[email protected]>
Date: Fri Jan 31 10:31:32 2025 +1300
provision: always use a large transaction index cache
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 <[email protected]>
Reviewed-by: Andrew Bartlett <[email protected]>
Autobuild-User(master): Douglas Bagnall <[email protected]>
Autobuild-Date(master): Tue Feb 4 22:47:35 UTC 2025 on atb-devel-224
commit 5092d7f46b8491e4a2d973a00aff4d6c0e77945e
Author: Andréas Leroux <[email protected]>
Date: Thu May 2 10:29:52 2024 +0200
netcmd: Increase the transaction_index_cache_size to 200k for schemaupgrade
Increasing this value greatly improve the performances of schema
upgrade for large domains (>200k entries).
The value 200000 is chosen because it is already used in join.py, and
should be sufficient for known domains.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15795
Signed-off-by: Andréas Leroux <[email protected]>
Reviewed-by: Douglas Bagnall <[email protected]>
Reviewed-by: Andrew Bartlett <[email protected]>
-----------------------------------------------------------------------
Summary of changes:
python/samba/netcmd/domain/schemaupgrade.py | 6 +++++-
python/samba/provision/__init__.py | 9 +++------
2 files changed, 8 insertions(+), 7 deletions(-)
Changeset truncated at 500 lines:
diff --git a/python/samba/netcmd/domain/schemaupgrade.py
b/python/samba/netcmd/domain/schemaupgrade.py
index ff00a771b20..33b942ca460 100644
--- a/python/samba/netcmd/domain/schemaupgrade.py
+++ b/python/samba/netcmd/domain/schemaupgrade.py
@@ -244,7 +244,11 @@ class cmd_domain_schema_upgrade(Command):
temp_folder = None
- samdb = SamDB(url=H, session_info=system_session(), credentials=creds,
lp=lp)
+ # we set the transaction_index_cache_size to 200,000 to ensure it is
+ # not too small, if it's too small the performance of the upgrade will
+ # be negatively impacted. (similarly to the join operation)
+ samdb = SamDB(url=H, session_info=system_session(), credentials=creds,
lp=lp,
+ options=['transaction_index_cache_size:200000'])
# we're not going to get far if the config doesn't allow schema updates
if lp.get("dsdb:schema update allowed") is None:
diff --git a/python/samba/provision/__init__.py
b/python/samba/provision/__init__.py
index dea50aa364e..f091ccf2f18 100644
--- a/python/samba/provision/__init__.py
+++ b/python/samba/provision/__init__.py
@@ -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
--
Samba Shared Repository