summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xBuild-tools/Do-compile58
-rwxr-xr-xBuild-tools/Do-rpm11
-rw-r--r--Docs/manual.texi16
-rw-r--r--tools/mysqlmanager.c20
4 files changed, 71 insertions, 34 deletions
diff --git a/Build-tools/Do-compile b/Build-tools/Do-compile
index 9409e3752df..c03ca84c29d 100755
--- a/Build-tools/Do-compile
+++ b/Build-tools/Do-compile
@@ -19,7 +19,7 @@ if ($opt_innodb || $opt_bdb)
chomp($host=`hostname`);
$full_host_name=$host;
-info("Compiling MySQL$version_suffix at $host$suffix, stage: $opt_stage\n");
+info("Compiling MySQL$version_suffix at $host, stage: $opt_stage\n");
$connect_option= ($opt_tcpip ? "--host=$host" : "");
$host =~ /^([^.-]*)/;
$host=$1 . $opt_suffix;
@@ -65,10 +65,11 @@ $sendmail=find("/usr/lib/sendmail","/usr/sbin/sendmail");
$sur= $opt_sur ? "/my/local/bin/sur" : "";
delete $ENV{'MYSQL_PWD'}; # Reset possibly password
delete $ENV{'MY_BASEDIR_VERSION'};
-$ENV{'MYSQL_TCP_PORT'}= $mysql_tcp_port= 3334 + $opt_build_thread;
+$ENV{'MYSQL_TCP_PORT'}= $mysql_tcp_port= 3334 + $opt_build_thread*2;
$ENV{'MYSQL_UNIX_PORT'}=$mysql_unix_port="$opt_tmp/mysql$opt_suffix.build";
$ENV{"PERL5LIB"}="$pwd/$host/perl5:$pwd/$host/perl5/site_perl";
$slave_port=$mysql_tcp_port+16;
+$manager_port=$mysql_tcp_port+1;
if (-x "$host/bin/mysqladmin")
{
@@ -78,6 +79,7 @@ if (-x "$host/bin/mysqladmin")
log_system("$host/bin/mysqladmin --no-defaults -u root -P 9306 -h $host -s shutdown");
log_system("$host/bin/mysqladmin --no-defaults -u root -P 9307 -h $host -s shutdown");
}
+kill_all("mysqlmanager");
if ($opt_stage == 0)
{
@@ -110,7 +112,7 @@ if ($opt_stage == 0 && ! $opt_use_old_distribution)
# Fix file times; This is needed because the time for files may be
# in the future
- system("touch timestamp; find $var -newer timestamp -print | xargs touch; rm -f timestamp");
+ system("touch timestamp; find . -newer timestamp -print | xargs touch; rm -f timestamp");
sleep(2);
# Ensure that files we don't want to rebuild are newer than other files
foreach $name ("configure",
@@ -207,13 +209,13 @@ if ($opt_stage <= 4 && !$opt_no_test)
$tar_file =~ /(mysql-[^\/]*)\.tar/;
$ver=$1;
$test_dir="$pwd/$host/test/$ver";
-$ENV{"LD_LIBRARY_PATH"}= "$testdir/lib:" . $ENV{"LD_LIBRARY_PATH"};
+$ENV{"LD_LIBRARY_PATH"}= "$test_dir/lib:" . $ENV{"LD_LIBRARY_PATH"};
if ($opt_stage <= 5 && !$opt_no_test && !$opt_no_mysqltest)
{
system("mkdir $bench_tmpdir") if (! -d $bench_tmpdir);
safe_cd("${test_dir}/mysql-test");
- check_system("./mysql-test-run --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --sleep=10", "tests were successful");
+ check_system("./mysql-test-run --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --manager-port=$manager_port --sleep=10", "tests were successful");
}
# Start the server if we are going to run any of the benchmarks
@@ -235,7 +237,7 @@ if (!$opt_no_test)
{
$extra.=" --innodb_data_file_path=ibdata1:100M";
}
- safe_system("./bin/mysqld --no-defaults --basedir . --datadir ./data --skip-l\ocking $extra >> $log 2>&1 &");
+ safe_system("./bin/mysqld --no-defaults --basedir . --datadir ./data --skip-locking $extra >> $log 2>&1 &");
sleep(2);
}
@@ -315,7 +317,7 @@ exit 0;
sub usage
{
print <<EOF;
-$0 version 1.2
+$0 version 1.3
$0 takes the following options:
@@ -329,7 +331,7 @@ Compile with support for Innodb tables
Compile with support for Berkeley DB tables
--user 'user_name'
-Mail 'user_name'\@analytikerna.se if something went wrong.
+Mail 'user_name'\@mysql.com if something went wrong.
If user is empty then no mail is sent.
--distribution 'distribution_file'
@@ -528,3 +530,43 @@ sub rm_all
}
}
}
+
+sub kill_all
+{
+ my ($pattern) = @_;
+ my ($USER,$BSD,$LINUX,$pscmd, $user, $pid);
+ $user=$ENV{'USER'};
+ $BSD = -f '/vmunix' || $ENV{"OS"} eq "SunOS4";
+ $LINUX = $^O eq 'linux';
+ $pscmd = $BSD ? "/bin/ps -auxww" : $LINUX ? "/bin/ps axuw" : "/bin/ps -ef";
+
+ open(PS, "$pscmd|") || die "can't run $pscmd: $!";
+
+ # Catch any errors with eval. A bad pattern, for instance.
+ process:
+ while ($cand = <PS>)
+ {
+ chop($cand);
+ ($pid_user, $pid) = split(' ', $cand);
+ next if $pid == $$;
+ next process if (! ($cand =~ $pattern) || $pid_user ne $user)
+ &killpid($pid);
+ }
+}
+
+sub killpid
+{
+ local($pid) = @_;
+ kill 15, $pid;
+ for (1..5)
+ {
+ sleep 2;
+ return if kill(0, $pid) == 0;
+ }
+ kill 9, $pid;
+ for (1..5) {
+ sleep 2;
+ return if kill(0, $pid) == 0;
+ }
+ print LOG "$pid will not die!\n";
+}
diff --git a/Build-tools/Do-rpm b/Build-tools/Do-rpm
index 046ba93a1dd..09e141184c8 100755
--- a/Build-tools/Do-rpm
+++ b/Build-tools/Do-rpm
@@ -90,10 +90,7 @@ while test $# -gt 0; do
done
echo "Removing old MySQL packages"
-rm -rf $rpmdir/BUILD/mysql-*
-rm -f $rpmdir/SOURCES/mysql-*
-rm -f $rpmdir/SRPMS/MySQL-*
-rm -f $rpmdir/SPEC/mysql-*
+rm -f $bpath/NEW-RPMS/MySQL-*rpm
if [ ! -d "$logdir" ]; then
echo "$logdir does not exist, creating"
@@ -111,6 +108,12 @@ log=$logdir/Log-RPM-`date +%y%m%d-%H%M`
(
set -x
+# remove old stuff
+rm -rf $rpmdir/BUILD/mysql-*
+rm -f $rpmdir/SOURCES/mysql-*
+rm -f $rpmdir/SRPMS/MySQL-*
+rm -f $rpmdir/SPEC/mysql-*
+
# Copy MySQL source and spec files
#Sasha: I left the scp stuff commented out instead of deleted to make it
diff --git a/Docs/manual.texi b/Docs/manual.texi
index 8fad44c6ee0..4e544032792 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -24206,17 +24206,11 @@ for most systems, but one should be aware of it.
@cindex design, limitations
@cindex limitations, design
-Because MySQL uses extremely fast table locking (multiple readers /
-single writers) the biggest remaining problem is a mix of a steady stream of
-inserts and slow selects on the same table.
-
-We believe that for a huge number of systems the extremely fast
-performance in other cases make this choice a win. This case is usually
-also possible to solve by having multiple copies of the table, but it
-takes more effort and hardware.
-
-We are also working on some extensions to solve this problem for some
-common application niches.
+When using the MyISAM table handler, MySQL uses extremely fast table
+locking (multiple readers / single writers). The biggest problem with
+this table type is a if you have a mix of a steady stream of updates and
+slow selects on the same table. If this is a problem with some tables,
+you can use another table type for these. @xref{Table types}.
MySQL can work with both transactional and not transactional tables. To
be able to work smoothly with not transactional tables (which can't
diff --git a/tools/mysqlmanager.c b/tools/mysqlmanager.c
index 071e14562a7..3a95b4e9a49 100644
--- a/tools/mysqlmanager.c
+++ b/tools/mysqlmanager.c
@@ -21,27 +21,25 @@
**/
#include <my_global.h>
-#include <my_sys.h>
-#include <m_string.h>
+#include <my_pthread.h>
#include <mysql.h>
#include <mysql_version.h>
-#include <m_ctype.h>
-#include <my_config.h>
+#include <mysqld_error.h>
+#include <my_sys.h>
#include <my_dir.h>
+#include <m_string.h>
+#include <m_ctype.h>
#include <hash.h>
-#include <mysqld_error.h>
-#include <stdio.h>
-#include <stdlib.h>
#include <getopt.h>
#include <stdarg.h>
#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
#include <errno.h>
#include <violite.h>
-#include <my_pthread.h>
#include <md5.h>
+#include <signal.h>
+#ifdef HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
#define MANAGER_VERSION "1.0"
#define MANAGER_GREETING "MySQL Server Management Daemon v. 1.0"