summaryrefslogtreecommitdiff
path: root/storage/tokudb/scripts/setup.mysql.bash
diff options
context:
space:
mode:
Diffstat (limited to 'storage/tokudb/scripts/setup.mysql.bash')
-rwxr-xr-xstorage/tokudb/scripts/setup.mysql.bash83
1 files changed, 60 insertions, 23 deletions
diff --git a/storage/tokudb/scripts/setup.mysql.bash b/storage/tokudb/scripts/setup.mysql.bash
index 6ae604e34c1..85132350289 100755
--- a/storage/tokudb/scripts/setup.mysql.bash
+++ b/storage/tokudb/scripts/setup.mysql.bash
@@ -5,6 +5,39 @@ function usage() {
echo "--mysqlbuild=$mysqlbuild --shutdown=$shutdown --install=$install --startup=$startup"
}
+function download_file() {
+ local file=$1
+ s3get $s3bucket $file $file
+}
+
+function download_tarball() {
+ local tarball=$1
+ if [ ! -f $tarball ] ; then
+ download_file $tarball
+ if [ $? -ne 0 ] ; then test 0 = 1; return; fi
+ fi
+ if [ ! -f $tarball.md5 ] ; then
+ download_file $tarball.md5
+ if [ $? -ne 0 ] ; then test 0 = 1; return; fi
+ fi
+}
+
+function install_tarball() {
+ local basedir=$1; local tarball=$2
+ tar -x -z -f $basedir/$tarball
+ if [ $? -ne 0 ] ; then test 0 = 1; return; fi
+}
+
+function check_md5() {
+ local tarball=$1
+ md5sum --check $tarball.md5
+ if [ $? -ne 0 ] ; then
+ # support jacksum md5 output which is almost the same as md5sum
+ diff -b <(cat $tarball.md5) <(md5sum $tarball)
+ if [ $? -ne 0 ] ; then test 0 = 1; return; fi
+ fi
+}
+
mysqlbuild=
shutdown=1
install=1
@@ -64,30 +97,24 @@ basedir=$PWD
mysqltarball=$mysqlbuild.tar.gz
-if [ -f $mysqlbuild.tar.gz ] ; then
- compression=-z
- mysqltarball=$mysqlbuild.tar.gz
-elif [ -f $mysqlbuild.tar.bz2 ] ; then
- compression=-j
- mysqltarball=$mysqlbuild.tar.bz2
-fi
-
-# get the release
-if [ ! -f $mysqltarball ] ; then
- s3get $s3bucket $mysqltarball $mysqltarball
- if [ $? -ne 0 ] ; then exit 1; fi
-fi
-if [ ! -f $mysqltarball.md5 ] ; then
- s3get $s3bucket $mysqltarball.md5 $mysqltarball.md5
- if [ $? -ne 0 ] ; then exit 1; fi
-fi
+# get the tarball
+download_tarball $mysqltarball
+if [ $? -ne 0 ] ; then exit 1; fi
# check the md5 sum
-md5sum --check $mysqltarball.md5
-if [ $? -ne 0 ] ; then
- # support jacksum md5 output which is almost the same as md5sum
- diff -b <(cat $mysqltarball.md5) <(md5sum $mysqltarball)
- if [ $? -ne 0 ] ; then exit 1; fi
+check_md5 $mysqltarball
+if [ $? -ne 0 ] ; then exit 1; fi
+
+tokudbtarball=""
+if [[ $mysqltarball =~ ^(Percona-Server.*)\.(Linux\.x86_64.*)$ ]] ; then
+ tar tzf $mysqltarball | egrep ha_tokudb.so >/dev/null 2>&1
+ if [ $? -ne 0 ] ; then
+ tokudbtarball=${BASH_REMATCH[1]}.TokuDB.${BASH_REMATCH[2]}
+ download_tarball $tokudbtarball
+ if [ $? -ne 0 ] ; then exit 1; fi
+ check_md5 $tokudbtarball
+ if [ $? -ne 0 ] ; then exit 1; fi
+ fi
fi
# set ldpath
@@ -126,8 +153,14 @@ if [ ! -d $mysqlbuild ] || [ $install -ne 0 ] ; then
rm mysql
if [ -d $mysqlbuild ] ; then $sudo rm -rf $mysqlbuild; fi
- tar -x $compression -f $basedir/$mysqltarball
+ install_tarball $basedir $mysqltarball
if [ $? -ne 0 ] ; then exit 1; fi
+
+ if [ $tokudbtarball ] ; then
+ install_tarball $basedir $tokudbtarball
+ if [ $? -ne 0 ] ; then exit 1; fi
+ fi
+
ln -s $mysqldir /usr/local/mysql
if [ $? -ne 0 ] ; then exit 1; fi
ln -s $mysqldir /usr/local/$mysqlbuild
@@ -180,6 +213,10 @@ if [ $startup -ne 0 ] ; then
else
default_arg="--defaults-file=$defaultsfile"
fi
+ j=/usr/local/mysql/lib/mysql/libjemalloc.so
+ if [ -f $j ] ; then
+ default_arg="$default_arg --malloc-lib=$j"
+ fi
$sudo -b bash -c "$ldpath /usr/local/mysql/bin/mysqld_safe $default_arg $mysqld_args" >/dev/null 2>&1 &
fi
sleep $sleeptime