diff options
author | Jeremy Allison <jra@samba.org> | 2006-03-29 22:19:01 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:15:46 -0500 |
commit | 81d4f40bbe202e5dae3d4d1070b02edf16a9f62e (patch) | |
tree | bbaf7d335dfd8743795a8c1aa97474b7b8e9df61 | |
parent | 70b59a3b20bc3cd3e1456dc552c43cd1da22f1b0 (diff) | |
download | samba-81d4f40bbe202e5dae3d4d1070b02edf16a9f62e.tar.gz samba-81d4f40bbe202e5dae3d4d1070b02edf16a9f62e.tar.bz2 samba-81d4f40bbe202e5dae3d4d1070b02edf16a9f62e.zip |
r14763: Add a new tuning parameter, open files database hash size,
this allows us to experiment with ensuring the tdb hash
size for our open files and locking db are appropriately
sized. Make the hash size larger by default (10007 instead
of 1049) and make the locking db hash size the same as the
open file db hash size.
Jeremy.
(This used to be commit e7225f7e813423c3e2a94af6a9d7ce8a1b50a166)
-rw-r--r-- | source3/include/local.h | 2 | ||||
-rw-r--r-- | source3/locking/brlock.c | 6 | ||||
-rw-r--r-- | source3/locking/locking.c | 3 | ||||
-rw-r--r-- | source3/param/loadparm.c | 4 |
4 files changed, 11 insertions, 4 deletions
diff --git a/source3/include/local.h b/source3/include/local.h index 916fb6e46d..fb93197636 100644 --- a/source3/include/local.h +++ b/source3/include/local.h @@ -236,7 +236,7 @@ #define MAX_LDAP_REPLICATION_SLEEP_TIME 5000 /* In milliseconds. */ /* tdb hash size for the open database. */ -#define SMB_OPEN_DATABASE_TDB_HASH_SIZE 1049 +#define SMB_OPEN_DATABASE_TDB_HASH_SIZE 10007 /* Characters we disallow in sharenames. */ #define INVALID_SHARENAME_CHARS "%<>*?|/\\+=;:\"," diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c index 8af6effb19..5078515b3e 100644 --- a/source3/locking/brlock.c +++ b/source3/locking/brlock.c @@ -289,8 +289,10 @@ void brl_init(int read_only) { if (tdb) return; - tdb = tdb_open_log(lock_path("brlock.tdb"), 0, TDB_DEFAULT|(read_only?0x0:TDB_CLEAR_IF_FIRST), - read_only?O_RDONLY:(O_RDWR|O_CREAT), 0644 ); + tdb = tdb_open_log(lock_path("brlock.tdb"), + lp_open_files_db_hash_size(), + TDB_DEFAULT|(read_only?0x0:TDB_CLEAR_IF_FIRST), + read_only?O_RDONLY:(O_RDWR|O_CREAT), 0644 ); if (!tdb) { DEBUG(0,("Failed to open byte range locking database\n")); return; diff --git a/source3/locking/locking.c b/source3/locking/locking.c index 5cb1f71555..0ecc90c794 100644 --- a/source3/locking/locking.c +++ b/source3/locking/locking.c @@ -301,7 +301,8 @@ BOOL locking_init(int read_only) return True; tdb = tdb_open_log(lock_path("locking.tdb"), - SMB_OPEN_DATABASE_TDB_HASH_SIZE, TDB_DEFAULT|(read_only?0x0:TDB_CLEAR_IF_FIRST), + lp_open_files_db_hash_size(), + TDB_DEFAULT|(read_only?0x0:TDB_CLEAR_IF_FIRST), read_only?O_RDONLY:O_RDWR|O_CREAT, 0644); diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 13f585d8d0..a80eda7a4e 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -201,6 +201,7 @@ typedef struct { int max_xmit; int max_mux; int max_open_files; + int open_files_db_hash_size; int pwordlevel; int unamelevel; int deadtime; @@ -1023,6 +1024,7 @@ static struct parm_struct parm_table[] = { {"max disk size", P_INTEGER, P_GLOBAL, &Globals.maxdisksize, NULL, NULL, FLAG_ADVANCED}, {"max open files", P_INTEGER, P_GLOBAL, &Globals.max_open_files, NULL, NULL, FLAG_ADVANCED}, {"min print space", P_INTEGER, P_LOCAL, &sDefault.iMinPrintSpace, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, + {"open files database hash size", P_INTEGER, P_GLOBAL, &Globals.open_files_db_hash_size, NULL, NULL, FLAG_ADVANCED}, {"socket options", P_GSTRING, P_GLOBAL, user_socket_options, NULL, NULL, FLAG_ADVANCED}, {"strict allocate", P_BOOL, P_LOCAL, &sDefault.bStrictAllocate, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, @@ -1498,6 +1500,7 @@ static void init_globals(BOOL first_time_only) Globals.bLargeReadwrite = True; Globals.max_log_size = 5000; Globals.max_open_files = MAX_OPEN_FILES; + Globals.open_files_db_hash_size = SMB_OPEN_DATABASE_TDB_HASH_SIZE; Globals.maxprotocol = PROTOCOL_NT1; Globals.minprotocol = PROTOCOL_CORE; Globals.security = SEC_USER; @@ -1938,6 +1941,7 @@ FN_GLOBAL_INTEGER(lp_max_wins_ttl, &Globals.max_wins_ttl) FN_GLOBAL_INTEGER(lp_min_wins_ttl, &Globals.min_wins_ttl) FN_GLOBAL_INTEGER(lp_max_log_size, &Globals.max_log_size) FN_GLOBAL_INTEGER(lp_max_open_files, &Globals.max_open_files) +FN_GLOBAL_INTEGER(lp_open_files_db_hash_size, &Globals.open_files_db_hash_size) FN_GLOBAL_INTEGER(lp_maxxmit, &Globals.max_xmit) FN_GLOBAL_INTEGER(lp_maxmux, &Globals.max_mux) FN_GLOBAL_INTEGER(lp_passwordlevel, &Globals.pwordlevel) |