Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
52275250
Commit
52275250
authored
Dec 01, 2010
by
Marc Alff
Browse files
Options
Browse Files
Download
Plain Diff
Local merge
parents
033c6c39
8690e937
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
279 additions
and
80 deletions
+279
-80
BUILD/build_mccge.sh
BUILD/build_mccge.sh
+223
-70
mysql-test/suite/perfschema/r/myisam_file_io.result
mysql-test/suite/perfschema/r/myisam_file_io.result
+1
-0
mysql-test/suite/perfschema/r/thread_cache.result
mysql-test/suite/perfschema/r/thread_cache.result
+5
-0
mysql-test/suite/perfschema/t/myisam_file_io.test
mysql-test/suite/perfschema/t/myisam_file_io.test
+8
-0
mysql-test/suite/perfschema/t/thread_cache.test
mysql-test/suite/perfschema/t/thread_cache.test
+42
-10
No files found.
BUILD/build_mccge.sh
View file @
52275250
...
...
@@ -42,9 +42,7 @@ cat <<EOF
Options used with this script always override any default behaviour.
The default package is MySQL Cluster Carrier Grade (standard) Edition.
For developers, the default package is MySQL Cluster Carrier Grade
Extended Edition, and the default build behaviour is to build with
autotools. If you want to skip autotools and start from a source code
release you can use the --no-autotools flag.
Extended Edition.
More information for developers can be found in --help,
--sysadmin-help, and --extended-help.
...
...
@@ -102,7 +100,8 @@ cat <<EOF
If your building on a Solaris SPARC machine and you want to compile
using SunStudio you must set
--compiler=forte; if you want to build using the Intel compiler on
Linux, you need to set --compiler=icc.
Linux, you need to set --compiler=icc. If you want to use the AMD
compiler Open64 set --compiler=open64.
A synonym for forte is SunStudio, so one can also use
--compiler=SunStudio.
...
...
@@ -150,14 +149,32 @@ Usage: $0 [options]
--without-debug Build non-debug version
--use-comment Set the comment in the build
--with-fast-mutexes Use try/retry method of acquiring mutex
--without-fast-mutexes Don't use try/retry method of acquiring mutex
--without-perfschema Don't build with performance schema
--generate-feedback path Compile with feedback using the specified directory
to store the feedback files
--use-feedback path Compile using feedback information from the specified
directory
--with-debug Build debug version
--extra-debug-flag flag Add -Dflag to compiler flags
InnoDB supports the following debug flags,
UNIV_DEBUG, UNIV_SYNC_DEBUG, UNIV_MEM_DEBUG,
UNIV_DEBUG_THREAD_CREATION, UNIV_DEBUG_LOCK_VALIDATE,
UNIV_DEBUG_PRINT, UNIV_DEBUG_FILE_ACCESS,
UNIV_LIGHT_MEM_DEBUG, UNIV_LOG_DEBUG,
UNIV_IBUF_COUNT_DEBUG, UNIV_SEARCH_DEBUG,
UNIV_LOG_LSN_DEBUG, UNIV_ZIP_DEBUG, UNIV_AHI_DEBUG,
UNIV_DEBUG_VALGRIND, UNIV_SQL_DEBUG, UNIV_AIO_DEBUG,
UNIV_BTR_DEBUG, UNIV_LRU_DEBUG, UNIV_BUF_DEBUG,
UNIV_HASH_DEBUG, UNIV_LIST_DEBUG, UNIV_IBUF_DEBUG
--with-link-time-optimizer
Link time optimizations enabled (Requires GCC 4.5
if GCC used), available for icc as well. This flag
is only considered if also fast is set.
--with-mso Special flag used by Open64 compiler (requres at
least version 4.2.3) that enables optimisations
for multi-core scalability.
--configure-only Stop after running configure.
--use-autotools Start by running autoconf, automake,.. tools
--no-autotools Start from configure
--print-only Print commands that the script will execute,
but do not actually execute
--prefix=path Build with prefix 'path'
...
...
@@ -170,7 +187,7 @@ Usage: $0 [options]
MySQL use
--commercial Use commercial libraries
--gpl Use gpl libraries
--compiler=[gcc|icc|forte|SunStudio
]
Select compiler
--compiler=[gcc|icc|forte|SunStudio
|open64]
Select compiler
--cpu=[x86|x86_64|sparc|itanium] Select CPU type
x86 => x86 and 32-bit binary
x86_64 => x86 and 64 bit binary
...
...
@@ -389,7 +406,8 @@ extended_usage()
platforms supported by this script.
The --fast option adds -mtune=cpu_arg to the C/C++ flags (provides
support for Nocona, K8, and other processors).
support for Nocona, K8, and other processors), this option is valid
when gcc is the compiler.
Use of the --debug option adds -g to the C/C++ flags.
...
...
@@ -397,10 +415,35 @@ extended_usage()
by calling the script as follows:
CC="/usr/local/bin/gcc" CXX="/usr/local/bin/gcc" BUILD/build_mccge.sh
FreeBSD/x86/gcc
---------------
No flags are used. Instead, configure determines the proper flags to
use.
Feedback profiler on gcc
------------------------
Using gcc --generate-feedback=path causes the following flags to be added
to the compiler flags.
--fprofile-generate
--fprofile-dir=path
Using gcc with --use-feedback=path causes the following flags to be added
to the compiler flags. --fprofile-correction indicates MySQL is a multi-
threaded application and thus counters can be inconsistent with each other
and the compiler should take this into account.
--fprofile-use
--fprofile-dir=path
--fprofile-correction
Feedback compilation using Open64
---------------------------------
Using Open64 with --generate-feedback=path causes the following flags to
be added to the compiler flags.
-fb-create path/feedback
Using Open64 with --use-feedback=path causes the following flags to be
added to the compiler flags.
--fb-opt path/feedback
Linux/x86+Itanium/gcc
-------------
...
...
@@ -410,6 +453,9 @@ extended_usage()
added to the C/C++ flags. (To build a 32-bit binary on a 64-bit CPU,
use the --32 option as described previously.)
When gcc 4.5 is used and the user set --with-link-time-optimizer then
also --flto is added to compiler flags and linker flags.
Linux/x86+Itanium/icc
-------------
Flags used:
...
...
@@ -433,6 +479,19 @@ extended_usage()
added to the C/C++ flags; this provides optimisations specific to Core
2 Duo. This is added only when the --fast flag is set.
Linux/x86/Open64
----------------
For normal builds use -O3, when fast flag is set one also adds
--march=auto to generate optimized builds for the CPU used. If
--with-link-time-optimizer is set also -ipa is set. There is also
a special flag --with-mso which can be set to get --mso set which
activates optimisation for multi-core scalability.
FreeBSD/x86/gcc
---------------
No flags are used. Instead, configure determines the proper flags to
use.
Solaris/x86/gcc
---------------
All builds on Solaris are by default 64-bit, so -m64 is always used in
...
...
@@ -653,6 +712,9 @@ parse_compiler()
forte
|
SunStudio
|
sunstudio
)
compiler
=
"forte"
;;
open64
|
Open64
)
compiler
=
"open64"
;;
*
)
echo
"Unknown compiler '
$compiler
'"
exit
1
...
...
@@ -686,6 +748,15 @@ parse_options()
--with-fast-mutexes
)
with_fast_mutexes
=
"yes"
;;
--without-fast-mutexes
)
with_fast_mutexes
=
"no"
;;
--without-perfschema
)
with_perfschema
=
"no"
;;
--with-mso
)
with_mso
=
"yes"
;;
--use-tcmalloc
)
use_tcmalloc
=
"yes"
;;
...
...
@@ -693,6 +764,10 @@ parse_options()
with_debug_flag
=
"yes"
fast_flag
=
"no"
;;
--extra-debug-flag
)
shift
extra_debug_flags
=
"
$extra_debug_flags
-D
$1
"
;;
--debug
)
compile_debug_flag
=
"yes"
;;
...
...
@@ -712,6 +787,14 @@ parse_options()
compiler
=
`
get_key_value
"
$1
"
`
parse_compiler
;;
--generate-feedback
)
shift
GENERATE_FEEDBACK_PATH
=
"
$1
"
;;
--use-feedback
)
shift
USE_FEEDBACK_PATH
=
"
$1
"
;;
--cpu
=
*
)
cpu_type
=
`
get_key_value
"
$1
"
`
parse_cpu_type
...
...
@@ -746,12 +829,6 @@ parse_options()
--parallelism
=
*
)
parallelism
=
`
get_key_value
"
$1
"
`
;;
--use-autotools
)
use_autotools
=
"yes"
;;
--no-autotools
)
use_autotools
=
"no"
;;
--configure-only
)
just_configure
=
"yes"
;;
...
...
@@ -896,6 +973,9 @@ set_cpu_base()
#
init_configure_commands
()
{
path
=
`
dirname
$0
`
cp
$path
/cmake_configure.sh
$path
/../configure
chmod
+x
$path
/../configure
cflags
=
"
$c_warnings
$base_cflags
$compiler_flags
"
cxxflags
=
"
$cxx_warnings
$base_cxxflags
$compiler_flags
"
configure
=
"./configure
$base_configs
$with_flags
"
...
...
@@ -1084,6 +1164,7 @@ set_with_debug_flags()
loc_debug_flags
=
"-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS "
compiler_flags
=
"
$compiler_flags
$loc_debug_flags
"
fi
compiler_flags
=
"
$compiler_flags
$extra_debug_flags
"
fi
}
...
...
@@ -1105,7 +1186,7 @@ set_no_omit_frame_pointer_for_developers()
#
set_debug_flag
()
{
if
test
"x
$compile_debug_flag
s
"
=
"xyes"
;
then
if
test
"x
$compile_debug_flag
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-g"
fi
}
...
...
@@ -1152,7 +1233,9 @@ set_base_configs()
fi
base_configs
=
"
$base_configs
--with-pic"
base_configs
=
"
$base_configs
--with-csv-storage-engine"
if
test
"x
$with_perfschema
"
!=
"xno"
;
then
base_configs
=
"
$base_configs
--with-perfschema"
fi
}
#
...
...
@@ -1251,6 +1334,19 @@ set_gcc_special_options()
fi
}
#
# If we discover a Core 2 Duo architecture and we have enabled the fast
# flag, we enable a compile especially optimised for Core 2 Duo. This
# feature is currently available on Intel's icc compiler only.
#
set_icc_special_options
()
{
if
test
"x
$fast_flag
"
=
"xyes"
&&
test
"x
$cpu_arg
"
=
"xcore2"
&&
\
test
"x
$compiler
"
=
"xicc"
;
then
compiler_flags
=
"
$compiler_flags
-xT"
fi
}
set_cc_and_cxx_for_gcc
()
{
if
test
"x
$CC
"
=
"x"
;
then
...
...
@@ -1271,26 +1367,23 @@ set_cc_and_cxx_for_icc()
fi
}
set_cc_and_cxx_for_
forte
()
set_cc_and_cxx_for_
open64
()
{
if
test
"x
$CC
"
=
"x"
;
then
CC
=
"
cc
"
CC
=
"
opencc -static-libgcc -fno-exceptions
"
fi
if
test
"x
$CXX
"
=
"x"
;
then
CXX
=
"
CC
"
CXX
=
"
openCC -static-libgcc -fno-exceptions
"
fi
}
#
# If we discover a Core 2 Duo architecture and we have enabled the fast
# flag, we enable a compile especially optimised for Core 2 Duo. This
# feature is currently available on Intel's icc compiler only.
#
set_icc_special_options
()
set_cc_and_cxx_for_forte
()
{
if
test
"x
$fast_flag
"
=
"xyes"
&&
test
"x
$cpu_arg
"
=
"xcore2"
&&
\
test
"x
$compiler
"
=
"xicc"
;
then
compiler_flags
=
"
$compiler_flags
-xT"
if
test
"x
$CC
"
=
"x"
;
then
CC
=
"cc"
fi
if
test
"x
$CXX
"
=
"x"
;
then
CXX
=
"CC"
fi
}
...
...
@@ -1357,12 +1450,45 @@ get_gcc_version()
fi
}
#
# Link time optimizer (interprocedural optimizations) for Open64
#
check_for_open64_link_time_optimizer
()
{
if
test
"x
$with_link_time_optimizer
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-ipa"
LDFLAGS
=
"
$LDFLAGS
-ipa"
fi
}
#
# Link time optimizer (interprocedural optimizations) for icc
#
check_for_icc_link_time_optimizer
()
{
if
test
"x
$with_link_time_optimizer
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-ipo"
LDFLAGS
=
"
$LDFLAGS
-ipo"
fi
}
#
# Link time optimizer (interprocedural optimizations) for forte
#
check_for_forte_link_time_optimizer
()
{
if
test
"x
$with_link_time_optimizer
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-ipo"
LDFLAGS
=
"
$LDFLAGS
-ipo"
fi
}
#
# Link Time Optimizer in GCC (LTO) uses a parameter -flto
# which was added to GCC 4.5, if --with-link-time-optimizer
# is set then use this feature
#
check_for_link_time_optimizer
()
check_for_
gcc_
link_time_optimizer
()
{
get_gcc_version
if
test
"
$gcc_version
"
-ge
405
&&
\
...
...
@@ -1371,11 +1497,37 @@ check_for_link_time_optimizer()
LDFLAGS
=
"
$LDFLAGS
-flto"
fi
}
set_feedback_for_gcc
()
{
if
test
"x
$GENERATE_FEEDBACK_PATH
"
!=
"x"
;
then
compiler_flags
=
"
$compiler_flags
-fprofile-generate"
compiler_flags
=
"
$compiler_flags
-fprofile-dir=
$GENERATE_FEEDBACK_PATH
"
elif
test
"x
$USE_FEEDBACK_PATH
"
!=
"x"
;
then
compiler_flags
=
"
$compiler_flags
-fprofile-use"
compiler_flags
=
"
$compiler_flags
-fprofile-correction"
compiler_flags
=
"
$compiler_flags
-fprofile-dir=
$USE_FEEDBACK_PATH
"
fi
}
set_feedback_for_open64
()
{
if
test
"x
$GENERATE_FEEDBACK_PATH
"
!=
"x"
;
then
compiler_flags
=
"
$compiler_flags
--fb-create=
$GENERATE_FEEDBACK_PATH
/feedback"
elif
test
"x
$USE_FEEDBACK_PATH
"
!=
"x"
;
then
compiler_flags
=
"
$compiler_flags
--fb-opt=
$USE_FEEDBACK_PATH
/feedback"
fi
}
#
# Linux Section
#
set_linux_configs
()
{
# Default to use --with-fast-mutexes on Linux
if
test
"x
$with_fast_mutexes
"
=
"x"
;
then
base_configs
=
"
$base_configs
--with-fast-mutexes"
fi
if
test
"x
$cpu_base_type
"
!=
"xx86"
&&
\
test
"x
$cpu_base_type
"
!=
"xitanium"
;
then
usage
"Only x86 and Itanium CPUs supported for Linux"
...
...
@@ -1392,19 +1544,14 @@ set_linux_configs()
if
test
"x
$fast_flag
"
!=
"xno"
;
then
if
test
"x
$fast_flag
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-O3"
check_for_link_time_optimizer
check_for_
gcc_
link_time_optimizer
else
compiler_flags
=
"
$compiler_flags
-O
2
"
compiler_flags
=
"
$compiler_flags
-O
3
"
fi
else
compiler_flags
=
"
$compiler_flags
-O0"
fi
check_64_bits
if
test
"x
$m64
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-m64"
else
compiler_flags
=
"
$compiler_flags
-m32"
fi
set_feedback_for_gcc
# configure will set proper compiler flags for gcc on Linux
elif
test
"x
$compiler
"
=
"xicc"
;
then
compiler_flags
=
"
$compiler_flags
-mp -restrict"
...
...
@@ -1414,16 +1561,36 @@ set_linux_configs()
fi
if
test
"x
$fast_flag
"
!=
"xno"
;
then
compiler_flags
=
"
$compiler_flags
-O3 -unroll2 -ip"
if
test
"x
$fast_flag
"
=
"xyes"
&&
\
test
"x
$with_link_time_optimizer
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-ipo"
LDFLAGS
=
"
$LDFLAGS
-ipo"
if
test
"x
$fast_flag
"
=
"xyes"
;
then
check_for_icc_link_time_optimizer
fi
fi
elif
test
"x
$compiler
"
=
"xopen64"
;
then
set_cc_and_cxx_for_open64
if
test
"x
$fast_flag
"
!=
"xno"
;
then
if
test
"x
$fast_flag
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-O3"
# Generate code specific for the machine you run on
compiler_flags
=
"
$compiler_flags
-march=auto"
check_for_open64_link_time_optimizer
if
test
"x
$with_mso
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-mso"
fi
else
compiler_flags
=
"
$compiler_flags
-O3"
fi
fi
set_feedback_for_open64
else
usage
"Only gcc
and icc
compilers supported for Linux"
usage
"Only gcc
,icc and Open64
compilers supported for Linux"
exit
1
fi
check_64_bits
if
test
"x
$m64
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-m64"
else
compiler_flags
=
"
$compiler_flags
-m32"
fi
}
#
...
...
@@ -1475,7 +1642,7 @@ set_solaris_configs()
if
test
"x
$fast_flag
"
=
"xyes"
;
then
LDFLAGS
=
"
$LDFLAGS
-O3"
compiler_flags
=
"
$compiler_flags
-O3"
check_for_link_time_optimizer
check_for_
gcc_
link_time_optimizer
else
if
test
"x
$fast_flag
"
=
"xgeneric"
;
then
LDFLAGS
=
"
$LDFLAGS
-O2"
...
...
@@ -1498,10 +1665,7 @@ set_solaris_configs()
if
test
"x
$fast_flag
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-xtarget=native"
compiler_flags
=
"
$compiler_flags
-xunroll=3"
if
test
"x
$with_link_time_optimizer
"
=
"xyes"
;
then
compiler_flags
=
"
$compiler_flags
-xipo"
LDFLAGS
=
"
$LDFLAGS
-xipo"
fi
check_for_forte_link_time_optimizer
else
compiler_flags
=
"
$compiler_flags
-xtarget=generic"
fi
...
...
@@ -1612,17 +1776,6 @@ set_default_package()
fi
}
set_autotool_flags
()
{
if
test
"x
$use_autotools
"
=
"x"
;
then
if
test
"x
$developer_flag
"
=
"xno"
;
then
use_autotools
=
"no"
else
use_autotools
=
"yes"
fi
fi
}
set_defaults_based_on_environment
()
{
if
test
!
-z
"
$MYSQL_DEVELOPER
"
;
then
...
...
@@ -1674,25 +1827,28 @@ base_cxxflags=
base_configs
=
debug_flags
=
cxxflags
=
extra_debug_flags
=
m64
=
explicit_size_set
=
datadir
=
commands
=
use_autotools
=
engine_configs
=
ASFLAGS
=
LDFLAGS
=
use_tcmalloc
=
without_comment
=
"yes"
with_fast_mutexes
=
with_perfschema
=
"yes"
with_link_time_optimizer
=
with_mso
=
gcc_version
=
"0"
generate_feedback_path
=
use_feedback_path
=
set_defaults_based_on_environment
parse_options
"
$@
"
set_autotool_flags
set_default_package
set
-e
...
...
@@ -1793,9 +1949,6 @@ set_ccache_usage
# Set up commands variable from variables prepared for base
# configurations, compiler flags, and warnings flags.
#
if
test
"x
$use_autotools
"
=
"xyes"
;
then
init_auto_commands
fi
init_configure_commands
if
test
"x
$just_configure
"
!=
"xyes"
;
then
...
...
@@ -1806,8 +1959,8 @@ fi
# The commands variable now contains the entire command to be run for
# the build; we either execute it, or merely print it out.
#
if
test
"x
$just_print
"
=
"xyes"
;
then
echo
"
$commands
"
else
echo
"Running command:"
echo
"
$commands
"
if
test
"x
$just_print
"
!=
"xyes"
;
then
eval
"set -x;
$commands
"
fi
mysql-test/suite/perfschema/r/myisam_file_io.result
View file @
52275250
...
...
@@ -16,6 +16,7 @@ operation, number_of_bytes,
substring(object_name, locate("no_index_tab", object_name)) as short_name
from performance_schema.events_waits_history_long
where operation not like "tell"
and event_name like "wait/io/file/myisam/%"
order by thread_id, event_id;
event_name short_source operation number_of_bytes short_name
wait/io/file/myisam/kfile mi_create.c: create NULL no_index_tab.MYI
...
...
mysql-test/suite/perfschema/r/thread_cache.result
View file @
52275250
flush status;
SET @saved_thread_cache_size = @@global.thread_cache_size;
set global thread_cache_size = 0;
show variables like "thread_cache_size";
...
...
@@ -32,3 +33,7 @@ select @thread_id_increment;
@thread_id_increment
1
set global thread_cache_size = @saved_thread_cache_size;
show status like "performance_schema_thread%";
Variable_name Value
Performance_schema_thread_classes_lost 0
Performance_schema_thread_instances_lost 0
mysql-test/suite/perfschema/t/myisam_file_io.test
View file @
52275250
...
...
@@ -46,6 +46,13 @@ insert into no_index_tab set a = 'foo', b = 1;
# Verification
# Note that mi_create.c contains mysql_file_tell() calls in debug only,
# so the result are filtered to remove 'tell'.
# Note that even after setting other instruments to enabled='NO'
# and truncating the events_waits_history_long table,
# some events -- that were already started but not completed --
# for other instruments could still be added in the history.
# To protect against that, an extra where clause
# "and event_name like "wait/io/file/myisam/%"
# is added to the select to filter out the result.
select
event_name
,
left
(
source
,
locate
(
":"
,
source
))
as
short_source
,
...
...
@@ -53,6 +60,7 @@ select event_name,
substring
(
object_name
,
locate
(
"no_index_tab"
,
object_name
))
as
short_name
from
performance_schema
.
events_waits_history_long
where
operation
not
like
"tell"
and
event_name
like
"wait/io/file/myisam/%"
order
by
thread_id
,
event_id
;
# In case of failures, this will tell if file io are lost.
...
...
mysql-test/suite/perfschema/t/thread_cache.test
View file @
52275250
...
...
@@ -20,6 +20,8 @@
# Setup
flush
status
;
SET
@
saved_thread_cache_size
=
@@
global
.
thread_cache_size
;
set
global
thread_cache_size
=
0
;
...
...
@@ -40,7 +42,7 @@ let $con2_ID=`select connection_id()`;
let
$con2_THREAD_ID
=
`select thread_id from performance_schema.threads
where PROCESSLIST_ID = connection_id()`
;
connection
default
;
--
connection
default
--
disable_query_log
eval
select
(
$con2_ID
-
$con1_ID
)
into
@
id_increment
;
...
...
@@ -52,7 +54,15 @@ select @id_increment;
# Expect 1, THREAD_ID is incremented for each new connection
select
@
thread_id_increment
;
disconnect
con2
;
--
disconnect
con2
--
connection
default
# Wait for the disconnect con2 to complete
let
$wait_condition
=
select
count
(
*
)
=
2
from
performance_schema
.
threads
where
name
like
"thread/sql/one_connection"
;
--
source
include
/
wait_condition
.
inc
connect
(
con3
,
localhost
,
root
,
,
);
...
...
@@ -61,10 +71,16 @@ let $con3_ID=`select connection_id()`;
let
$con3_THREAD_ID
=
`select thread_id from performance_schema.threads
where PROCESSLIST_ID = connection_id()`
;
disconnect
con3
;
disconnect
con1
;
--
disconnect
con3
--
disconnect
con1
--
connection
default
connection
default
;
# Wait for the disconnect con1 and con3 to complete
let
$wait_condition
=
select
count
(
*
)
=
1
from
performance_schema
.
threads
where
name
like
"thread/sql/one_connection"
;
--
source
include
/
wait_condition
.
inc
--
disable_query_log
eval
select
(
$con3_ID
-
$con2_ID
)
into
@
id_increment
;
...
...
@@ -92,7 +108,7 @@ let $con2_ID=`select connection_id()`;
let
$con2_THREAD_ID
=
`select thread_id from performance_schema.threads
where PROCESSLIST_ID = connection_id()`
;
connection
default
;
--
connection
default
--
disable_query_log
eval
select
(
$con2_ID
-
$con1_ID
)
into
@
id_increment
;
...
...
@@ -102,7 +118,15 @@ eval select ($con2_THREAD_ID - $con1_THREAD_ID) into @thread_id_increment;
select
@
id_increment
;
select
@
thread_id_increment
;
disconnect
con2
;
--
disconnect
con2
--
connection
default
# Wait for the disconnect con2 to complete
let
$wait_condition
=
select
count
(
*
)
=
2
from
performance_schema
.
threads
where
name
like
"thread/sql/one_connection"
;
--
source
include
/
wait_condition
.
inc
connect
(
con3
,
localhost
,
root
,
,
);
...
...
@@ -111,10 +135,16 @@ let $con3_ID=`select connection_id()`;
let
$con3_THREAD_ID
=
`select thread_id from performance_schema.threads
where PROCESSLIST_ID = connection_id()`
;
disconnect
con3
;
disconnect
con1
;
--
disconnect
con3
--
disconnect
con1
connection
default
;
--
connection
default
# Wait for the disconnect con1 and con3 to complete
let
$wait_condition
=
select
count
(
*
)
=
1
from
performance_schema
.
threads
where
name
like
"thread/sql/one_connection"
;
--
source
include
/
wait_condition
.
inc
--
disable_query_log
eval
select
(
$con3_ID
-
$con2_ID
)
into
@
id_increment
;
...
...
@@ -132,3 +162,5 @@ select @thread_id_increment;
set
global
thread_cache_size
=
@
saved_thread_cache_size
;
show
status
like
"performance_schema_thread%"
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment