Below is the list of changes that have just been committed into a local
5.1 repository of andrey. When andrey does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.1955 05/11/11 15:25:31 andrey@lmy004. +4 -0
2 More --bdb variables
- added bdb-cache-parts
- modified bdb-cache-size to support more than 4G
- added bdb-region-size (size of memory pool for storing file names used in transaction)
sql/set_var.cc
1.143 05/11/11 15:25:18 andrey@lmy004. +6 -2
- added bdb-cache-parts
- modified bdb-cache-size to support more than 4G
- added bdb-region-size (size of memory pool for storing file names used in transaction)
sql/mysqld.cc
1.489 05/11/11 15:25:18 andrey@lmy004. +18 -4
- added bdb-cache-parts
- modified bdb-cache-size to support more than 4G
- added bdb-region-size (size of memory pool for storing file names used in transaction)
sql/ha_berkeley.h
1.78 05/11/11 15:25:18 andrey@lmy004. +3 -1
- added bdb-cache-parts
- modified bdb-cache-size to support more than 4G
- added bdb-region-size (size of memory pool for storing file names used in transaction)
sql/ha_berkeley.cc
1.160 05/11/11 15:25:18 andrey@lmy004. +11 -2
- added bdb-cache-parts
- modified bdb-cache-size to support more than 4G
- added bdb-region-size (size of memory pool for storing file names used in transaction)
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: andrey
# Host: lmy004.
# Root: /work/mysql-5.1-bdb_region
--- 1.159/sql/ha_berkeley.cc 2005-11-07 16:24:36 +01:00
+++ 1.160/sql/ha_berkeley.cc 2005-11-11 15:25:18 +01:00
@@ -78,9 +78,11 @@
bool berkeley_shared_data=0;
u_int32_t berkeley_init_flags= DB_PRIVATE | DB_RECOVER, berkeley_env_flags=0,
berkeley_lock_type=DB_LOCK_DEFAULT;
-ulong berkeley_cache_size, berkeley_log_buffer_size, berkeley_log_file_size=0;
+ulong berkeley_log_buffer_size, berkeley_log_file_size=0;
+ulonglong berkeley_cache_size;
char *berkeley_home, *berkeley_tmpdir, *berkeley_logdir;
long berkeley_lock_scan_time=0;
+ulong berkeley_region_size=0, berkeley_cache_parts=1;
ulong berkeley_trans_retry=1;
ulong berkeley_max_lock;
pthread_mutex_t bdb_mutex;
@@ -204,10 +206,17 @@
DB_VERB_DEADLOCK | DB_VERB_RECOVERY,
1);
- db_env->set_cachesize(db_env, 0, berkeley_cache_size, 0);
+ if (berkeley_cache_size > (uint) ~0)
+ db_env->set_cachesize(db_env, berkeley_cache_size / (1024*1024L*1024L),
+ berkeley_cache_size % (1024L*1024L*1024L),
+ berkeley_cache_parts);
+ else
+ db_env->set_cachesize(db_env, 0, berkeley_cache_size, berkeley_cache_parts);
+
db_env->set_lg_max(db_env, berkeley_log_file_size);
db_env->set_lg_bsize(db_env, berkeley_log_buffer_size);
db_env->set_lk_detect(db_env, berkeley_lock_type);
+ db_env->set_lg_regionmax(db_env, berkeley_region_size);
if (berkeley_max_lock)
db_env->set_lk_max(db_env, berkeley_max_lock);
--- 1.77/sql/ha_berkeley.h 2005-11-07 16:24:37 +01:00
+++ 1.78/sql/ha_berkeley.h 2005-11-11 15:25:18 +01:00
@@ -163,7 +163,9 @@
extern bool berkeley_shared_data;
extern u_int32_t berkeley_init_flags,berkeley_env_flags, berkeley_lock_type,
berkeley_lock_types[];
-extern ulong berkeley_cache_size, berkeley_max_lock, berkeley_log_buffer_size;
+extern ulong berkeley_max_lock, berkeley_log_buffer_size;
+extern ulonglong berkeley_cache_size;
+extern ulong berkeley_region_size, berkeley_cache_parts;
extern char *berkeley_home, *berkeley_tmpdir, *berkeley_logdir;
extern long berkeley_lock_scan_time;
extern TYPELIB berkeley_lock_typelib;
--- 1.488/sql/mysqld.cc 2005-11-07 16:24:41 +01:00
+++ 1.489/sql/mysqld.cc 2005-11-11 15:25:18 +01:00
@@ -394,7 +394,9 @@
extern bool berkeley_shared_data;
extern u_int32_t berkeley_init_flags,berkeley_env_flags, berkeley_lock_type,
berkeley_lock_types[];
-extern ulong berkeley_cache_size, berkeley_max_lock, berkeley_log_buffer_size;
+extern ulong berkeley_max_lock, berkeley_log_buffer_size;
+extern ulonglong berkeley_cache_size;
+extern ulong berkeley_region_size, berkeley_cache_parts;
extern char *berkeley_home, *berkeley_tmpdir, *berkeley_logdir;
extern long berkeley_lock_scan_time;
extern TYPELIB berkeley_lock_typelib;
@@ -4582,8 +4584,10 @@
OPT_INNODB_CONCURRENCY_TICKETS,
OPT_INNODB_THREAD_SLEEP_DELAY,
OPT_BDB_CACHE_SIZE,
+ OPT_BDB_CACHE_PARTS,
OPT_BDB_LOG_BUFFER_SIZE,
OPT_BDB_MAX_LOCK,
+ OPT_BDB_REGION_SIZE,
OPT_ERROR_LOG_FILE,
OPT_DEFAULT_WEEK_FORMAT,
OPT_RANGE_ALLOC_BLOCK_SIZE, OPT_ALLOW_SUSPICIOUS_UDFS,
@@ -5398,8 +5402,12 @@
#ifdef WITH_BERKELEY_STORAGE_ENGINE
{ "bdb_cache_size", OPT_BDB_CACHE_SIZE,
"The buffer that is allocated to cache index and rows for BDB tables.",
- (gptr*) &berkeley_cache_size, (gptr*) &berkeley_cache_size, 0, GET_ULONG,
- REQUIRED_ARG, KEY_CACHE_SIZE, 20*1024, (long) ~0, 0, IO_SIZE, 0},
+ (gptr*) &berkeley_cache_size, (gptr*) &berkeley_cache_size, 0, GET_ULL,
+ REQUIRED_ARG, KEY_CACHE_SIZE, 20*1024, (ulonglong) ~0, 0, IO_SIZE, 0},
+ { "bdb_cache_parts", OPT_BDB_CACHE_PARTS,
+ "In how many parts to split the buffer of BDB cache. On some platforms the large contiguos blocks could not be allocated therefore the cache must be splitted.",
+ (gptr*) &berkeley_cache_parts, (gptr*) &berkeley_cache_parts, 0, GET_ULONG,
+ REQUIRED_ARG, 1, 1, 1024, 0, 1, 0},
/* QQ: The following should be removed soon! (bdb_max_lock preferred) */
{"bdb_lock_max", OPT_BDB_MAX_LOCK, "Synonym for bdb_max_lock.",
(gptr*) &berkeley_max_lock, (gptr*) &berkeley_max_lock, 0, GET_ULONG,
@@ -5412,6 +5420,10 @@
"The maximum number of locks you can have active on a BDB table.",
(gptr*) &berkeley_max_lock, (gptr*) &berkeley_max_lock, 0, GET_ULONG,
REQUIRED_ARG, 10000, 0, (long) ~0, 0, 1, 0},
+ {"bdb_region_size", OPT_BDB_REGION_SIZE,
+ "The size of the memory pool used for storing table names internally by BDB. Needs to be increased if many (>500) tables are processed in a single transaction. Defaults to 60K.",
+ (gptr*) &berkeley_region_size, (gptr*) &berkeley_region_size, 0, GET_ULONG,
+ OPT_ARG, 0, 0, (long) ~0, 0, 1, 0},
#endif /* WITH_BERKELEY_STORAGE_ENGINE */
{"binlog_cache_size", OPT_BINLOG_CACHE_SIZE,
"The size of the cache to hold the SQL statements for the binary log during a transaction. If you often use big, multi-statement transactions you can increase this to get more performance.",
@@ -7410,7 +7422,9 @@
#ifndef WITH_BERKELEY_STORAGE_ENGINE
bool berkeley_shared_data;
-ulong berkeley_cache_size, berkeley_max_lock, berkeley_log_buffer_size;
+ulong berkeley_max_lock, berkeley_log_buffer_size;
+ulonglong berkeley_cache_size,
+ulong berkeley_region_size, berkeley_cache_parts;
char *berkeley_home, *berkeley_tmpdir, *berkeley_logdir;
#endif
--- 1.142/sql/set_var.cc 2005-11-07 17:14:56 +01:00
+++ 1.143/sql/set_var.cc 2005-11-11 15:25:18 +01:00
@@ -61,7 +61,9 @@
/* WITH_BERKELEY_STORAGE_ENGINE */
extern bool berkeley_shared_data;
-extern ulong berkeley_cache_size, berkeley_max_lock, berkeley_log_buffer_size;
+extern ulong berkeley_max_lock, berkeley_log_buffer_size;
+extern ulonglong berkeley_cache_size;
+extern ulong berkeley_region_size, berkeley_cache_parts;
extern char *berkeley_home, *berkeley_tmpdir, *berkeley_logdir;
/* WITH_INNOBASE_STORAGE_ENGINE */
@@ -622,11 +624,13 @@
{sys_automatic_sp_privileges.name,(char*) &sys_automatic_sp_privileges, SHOW_SYS},
{"back_log", (char*) &back_log, SHOW_LONG},
{"basedir", mysql_home, SHOW_CHAR},
- {"bdb_cache_size", (char*) &berkeley_cache_size, SHOW_LONG},
+ {"bdb_cache_size", (char*) &berkeley_cache_size, SHOW_LONGLONG},
+ {"bdb_cache_parts", (char*) &berkeley_cache_parts, SHOW_LONG},
{"bdb_home", (char*) &berkeley_home, SHOW_CHAR_PTR},
{"bdb_log_buffer_size", (char*) &berkeley_log_buffer_size, SHOW_LONG},
{"bdb_logdir", (char*) &berkeley_logdir, SHOW_CHAR_PTR},
{"bdb_max_lock", (char*) &berkeley_max_lock, SHOW_LONG},
+ {"bdb_region_size", (char*) &berkeley_region_size, SHOW_LONG},
{"bdb_shared_data", (char*) &berkeley_shared_data, SHOW_BOOL},
{"bdb_tmpdir", (char*) &berkeley_tmpdir, SHOW_CHAR_PTR},
{sys_binlog_cache_size.name,(char*) &sys_binlog_cache_size, SHOW_SYS},
| Thread |
|---|
| • bk commit into 5.1 tree (andrey:1.1955) | ahristov | 11 Nov |