Commit dc571a55 authored by joreland@mysql.com's avatar joreland@mysql.com

Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0

into  mysql.com:/home/jonas/src/mysql-5.0
parents fea951a7 e27338ac
...@@ -24,7 +24,7 @@ description: MySQL - fast and reliable SQL database ...@@ -24,7 +24,7 @@ description: MySQL - fast and reliable SQL database
# repository is commercial it can be an internal email address or "none" # repository is commercial it can be an internal email address or "none"
# to disable logging. # to disable logging.
# #
logging: logging@openlogging.org logging: none
# #
# If this field is set, all checkins will appear to be made by this user, # If this field is set, all checkins will appear to be made by this user,
# in effect making this a single user package. Single user packages are # in effect making this a single user package. Single user packages are
......
This ALPHA build of MySQL 4.1 for the Windows platform does not come
with an installer. A full-featured installer is being developed for the
4.1 series, and it is scheduled to be released with MySQL 4.1 BETA.
** FRESH INSTALL **
To install MySQL 4.1 as a 'fresh' install, unzip this archive to a directory
of your choice (we suggest 'c:\', which will cause MySQL to be installed in
a directory named 'mysql' in 'c:\'). You should then follow the directions
in the user manual for starting/stopping MySQL:
(Windows 9x/ME) http://www.mysql.com/doc/en/Win95_start.html
(Windows NT/2000/XP) http://www.mysql.com/doc/en/NT_start.html
** UPGRADE INSTALL **
To install MySQL 4.1 as an upgrade to your current version of MySQL, you need
to perform the following steps:
* Back up your original installation (always a good idea!)
* Unzip the 4.1 archive to a directory that is different than where your
current MySQL installation is located. (Or, if you do unzip this
archive into the same location as your existing installation, do NOT
unpack the 'data' subdirectory. If you unpack the 'data' directory,
your existing databases will be overwritten.)
* Shut down all MySQL server processes/services.
* Remove the Win32 MySQL service (if appropriate for your OS):
c:\mysql\bin\mysqld-nt --remove
* Exit 'WinMySQLAdmin' (if it is running).
* If you unzipped this archive into a directory different than that
of your existing MySQL installation, copy from the archive all its
directories and their contents EXCEPT the 'data' directory into the
existing installation.
* Start the MySQL server with the '--skip-grant-tables' option. Assuming
your MySQL installation is located at 'c:\mysql', the command looks like
this:
c:\mysql\bin\mysqld-opt --skip-grant-tables
If your installation is located in some other directory, adjust the
pathname in that command (and in the following commands).
* Execute the 'mysql_fix_privilege_tables.sql' script that is located in
the 'scripts' directory:
c:\mysql\bin\mysql -f mysql < c:\mysql\scripts\mysql_fix_privilege_tables.sql
This script performs any actions necessary to convert your grant tables
to the current format. You may see some "duplicate column" warnings as
it runs; these can be ignored.
* Stop the server:
c:\mysql\bin\mysqladmin -u root shutdown
* Re-install the Win32 MySQL service (if required):
c:\mysql\bin\mysqld-nt --install
* Re-start the server or service using your normal startup procedure.
** Further Questions **
You can find further information about running MySQL on Windows in the
manual that ships in the 'Doc' subdirectory, or online at the MySQL AB
web site:
http://www.mysql.com/doc/en/Windows.html
...@@ -339,6 +339,11 @@ C_MODE_END ...@@ -339,6 +339,11 @@ C_MODE_END
#undef HAVE_FINITE #undef HAVE_FINITE
#undef LONGLONG_MIN /* These get wrongly defined in QNX 6.2 */ #undef LONGLONG_MIN /* These get wrongly defined in QNX 6.2 */
#undef LONGLONG_MAX /* standard system library 'limits.h' */ #undef LONGLONG_MAX /* standard system library 'limits.h' */
#ifdef __cplusplus
#define HAVE_RINT /* rint() and isnan() functions are not */
#define rint(a) std::rint(a) /* visible in C++ scope due to an error */
#define isnan(a) std::isnan(a) /* in the usr/include/math.h on QNX */
#endif
#endif #endif
/* We can not live without the following defines */ /* We can not live without the following defines */
......
...@@ -182,6 +182,7 @@ extern mutex_t* kernel_mutex_temp;/* mutex protecting the server, trx structs, ...@@ -182,6 +182,7 @@ extern mutex_t* kernel_mutex_temp;/* mutex protecting the server, trx structs,
#define kernel_mutex (*kernel_mutex_temp) #define kernel_mutex (*kernel_mutex_temp)
#define SRV_MAX_N_IO_THREADS 100 #define SRV_MAX_N_IO_THREADS 100
#define SRV_CONCURRENCY_THRESHOLD 20
/* Array of English strings describing the current state of an /* Array of English strings describing the current state of an
i/o handler thread */ i/o handler thread */
......
...@@ -260,7 +260,7 @@ semaphore contention and convoy problems can occur withput this restriction. ...@@ -260,7 +260,7 @@ semaphore contention and convoy problems can occur withput this restriction.
Value 10 should be good if there are less than 4 processors + 4 disks in the Value 10 should be good if there are less than 4 processors + 4 disks in the
computer. Bigger computers need bigger values. */ computer. Bigger computers need bigger values. */
ulong srv_thread_concurrency = 8; ulong srv_thread_concurrency = SRV_CONCURRENCY_THRESHOLD;
os_fast_mutex_t srv_conc_mutex; /* this mutex protects srv_conc data os_fast_mutex_t srv_conc_mutex; /* this mutex protects srv_conc data
structures */ structures */
...@@ -983,12 +983,6 @@ srv_conc_enter_innodb( ...@@ -983,12 +983,6 @@ srv_conc_enter_innodb(
srv_conc_slot_t* slot = NULL; srv_conc_slot_t* slot = NULL;
ulint i; ulint i;
if (srv_thread_concurrency >= 500) {
/* Disable the concurrency check */
return;
}
/* If trx has 'free tickets' to enter the engine left, then use one /* If trx has 'free tickets' to enter the engine left, then use one
such ticket */ such ticket */
...@@ -1134,7 +1128,7 @@ srv_conc_force_enter_innodb( ...@@ -1134,7 +1128,7 @@ srv_conc_force_enter_innodb(
trx_t* trx) /* in: transaction object associated with the trx_t* trx) /* in: transaction object associated with the
thread */ thread */
{ {
if (srv_thread_concurrency >= 500) { if (srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD) {
return; return;
} }
...@@ -1160,7 +1154,7 @@ srv_conc_force_exit_innodb( ...@@ -1160,7 +1154,7 @@ srv_conc_force_exit_innodb(
{ {
srv_conc_slot_t* slot = NULL; srv_conc_slot_t* slot = NULL;
if (srv_thread_concurrency >= 500) { if (srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD) {
return; return;
} }
...@@ -1212,11 +1206,6 @@ srv_conc_exit_innodb( ...@@ -1212,11 +1206,6 @@ srv_conc_exit_innodb(
trx_t* trx) /* in: transaction object associated with the trx_t* trx) /* in: transaction object associated with the
thread */ thread */
{ {
if (srv_thread_concurrency >= 500) {
return;
}
if (trx->n_tickets_to_enter_innodb > 0) { if (trx->n_tickets_to_enter_innodb > 0) {
/* We will pretend the thread is still inside InnoDB though it /* We will pretend the thread is still inside InnoDB though it
now leaves the InnoDB engine. In this way we save now leaves the InnoDB engine. In this way we save
......
...@@ -326,7 +326,7 @@ innodb_srv_conc_enter_innodb( ...@@ -326,7 +326,7 @@ innodb_srv_conc_enter_innodb(
/*=========================*/ /*=========================*/
trx_t* trx) /* in: transaction handle */ trx_t* trx) /* in: transaction handle */
{ {
if (UNIV_LIKELY(srv_thread_concurrency >= 20)) { if (UNIV_LIKELY(srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD)) {
return; return;
} }
...@@ -343,7 +343,7 @@ innodb_srv_conc_exit_innodb( ...@@ -343,7 +343,7 @@ innodb_srv_conc_exit_innodb(
/*========================*/ /*========================*/
trx_t* trx) /* in: transaction handle */ trx_t* trx) /* in: transaction handle */
{ {
if (UNIV_LIKELY(srv_thread_concurrency >= 20)) { if (UNIV_LIKELY(srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD)) {
return; return;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment