python join: Set index transaction cache size.
authorGary Lockyer <gary@catalyst.net.nz>
Mon, 1 Apr 2019 03:49:38 +0000 (16:49 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 4 Apr 2019 07:45:03 +0000 (07:45 +0000)
The default value is too small for joining a large domain.  So we specify a
size of 200,000 which is suitable for domains with up to 100,000 users.

At a later date this could be added as a parameter to the join, but
200,000 should be suitable for now.

Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Thu Apr  4 07:45:03 UTC 2019 on sn-devel-144

python/samba/join.py

index da8dcb050d322272414550b2660f550702a03e74..464911223193e606264a021198e3fa31fa6f4a58 100644 (file)
@@ -888,8 +888,13 @@ class DCJoinContext(object):
 
         # we now operate exclusively on the local database, which
         # we need to reopen in order to get the newly created schema
+        # 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 join will
+        # be negatively impacted.
         print("Reconnecting to local samdb")
         ctx.samdb = SamDB(url=ctx.local_samdb.url,
+                         options=[
+                             "transaction_index_cache_size:200000"],
                           session_info=system_session(),
                           lp=ctx.local_samdb.lp,
                           global_schema=False)