Commit 077f29a9 authored by Sergei Golubchik's avatar Sergei Golubchik

Merge branch 'merge/merge-tokudb-5.6' into 10.0

5.6.31-77.0
parents 3863e723 4f2d2143
SET(TOKUDB_VERSION 5.6.30-76.3) SET(TOKUDB_VERSION 5.6.31-77.0)
# PerconaFT only supports x86-64 and cmake-2.8.9+ # PerconaFT only supports x86-64 and cmake-2.8.9+
IF(CMAKE_VERSION VERSION_LESS "2.8.9") IF(CMAKE_VERSION VERSION_LESS "2.8.9")
MESSAGE(STATUS "CMake 2.8.9 or higher is required by TokuDB") MESSAGE(STATUS "CMake 2.8.9 or higher is required by TokuDB")
...@@ -82,10 +82,6 @@ IF(DEFINED TOKUDB_NOPATCH_CONFIG) ...@@ -82,10 +82,6 @@ IF(DEFINED TOKUDB_NOPATCH_CONFIG)
ADD_DEFINITIONS("-DTOKUDB_NOPATCH_CONFIG=${TOKUDB_NOPATCH_CONFIG}") ADD_DEFINITIONS("-DTOKUDB_NOPATCH_CONFIG=${TOKUDB_NOPATCH_CONFIG}")
ENDIF() ENDIF()
IF(DEFINED TOKUDB_CHECK_JEMALLOC)
ADD_DEFINITIONS("-DTOKUDB_CHECK_JEMALLOC=${TOKUDB_CHECK_JEMALLOC}")
ENDIF()
macro(set_cflags_if_supported) macro(set_cflags_if_supported)
foreach(flag ${ARGN}) foreach(flag ${ARGN})
string(REGEX REPLACE "-" "_" temp_flag ${flag}) string(REGEX REPLACE "-" "_" temp_flag ${flag})
......
...@@ -420,6 +420,8 @@ static void print_db_env_struct (void) { ...@@ -420,6 +420,8 @@ static void print_db_env_struct (void) {
"int (*set_client_pool_threads)(DB_ENV *, uint32_t)", "int (*set_client_pool_threads)(DB_ENV *, uint32_t)",
"int (*set_cachetable_pool_threads)(DB_ENV *, uint32_t)", "int (*set_cachetable_pool_threads)(DB_ENV *, uint32_t)",
"int (*set_checkpoint_pool_threads)(DB_ENV *, uint32_t)", "int (*set_checkpoint_pool_threads)(DB_ENV *, uint32_t)",
"void (*set_check_thp)(DB_ENV *, bool new_val)",
"bool (*get_check_thp)(DB_ENV *)",
NULL}; NULL};
sort_and_dump_fields("db_env", true, extra); sort_and_dump_fields("db_env", true, extra);
......
...@@ -132,6 +132,7 @@ struct __toku_db_env_internal { ...@@ -132,6 +132,7 @@ struct __toku_db_env_internal {
int datadir_lockfd; int datadir_lockfd;
int logdir_lockfd; int logdir_lockfd;
int tmpdir_lockfd; int tmpdir_lockfd;
bool check_thp; // if set check if transparent huge pages are disables
uint64_t (*get_loader_memory_size_callback)(void); uint64_t (*get_loader_memory_size_callback)(void);
uint64_t default_lock_timeout_msec; uint64_t default_lock_timeout_msec;
uint64_t (*get_lock_timeout_callback)(uint64_t default_lock_timeout_msec); uint64_t (*get_lock_timeout_callback)(uint64_t default_lock_timeout_msec);
......
This diff is collapsed.
...@@ -69,10 +69,6 @@ Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved. ...@@ -69,10 +69,6 @@ Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved.
#pragma interface /* gcc class implementation */ #pragma interface /* gcc class implementation */
#endif #endif
#if !defined(TOKUDB_CHECK_JEMALLOC)
#define TOKUDB_CHECK_JEMALLOC 1
#endif
#if 100000 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 100099 #if 100000 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 100099
// mariadb 10.0 // mariadb 10.0
#define TOKU_USE_DB_TYPE_TOKUDB 1 #define TOKU_USE_DB_TYPE_TOKUDB 1
......
...@@ -266,7 +266,6 @@ static int tokudb_init_func(void *p) { ...@@ -266,7 +266,6 @@ static int tokudb_init_func(void *p) {
db_env = NULL; db_env = NULL;
tokudb_hton = (handlerton *) p; tokudb_hton = (handlerton *) p;
#if TOKUDB_CHECK_JEMALLOC
if (tokudb::sysvars::check_jemalloc) { if (tokudb::sysvars::check_jemalloc) {
typedef int (*mallctl_type)( typedef int (*mallctl_type)(
const char*, const char*,
...@@ -293,7 +292,6 @@ static int tokudb_init_func(void *p) { ...@@ -293,7 +292,6 @@ static int tokudb_init_func(void *p) {
goto error; goto error;
} }
} }
#endif
r = tokudb_set_product_name(); r = tokudb_set_product_name();
if (r) { if (r) {
...@@ -538,6 +536,8 @@ static int tokudb_init_func(void *p) { ...@@ -538,6 +536,8 @@ static int tokudb_init_func(void *p) {
db_env, db_env,
tokudb_get_loader_memory_size_callback); tokudb_get_loader_memory_size_callback);
db_env->set_check_thp(db_env, tokudb::sysvars::check_jemalloc);
r = db_env->open( r = db_env->open(
db_env, db_env,
tokudb_home, tokudb_home,
......
$TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 $TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 --loose-tokudb-cache-size=512M --loose-tokudb-block-size=1M
...@@ -71,6 +71,7 @@ tables = [ ...@@ -71,6 +71,7 @@ tables = [
] ]
# Code generation stats here # Code generation stats here
print "source include/have_tokudb.inc;"
print "# Tokutek" print "# Tokutek"
print "# Test that bulk fetch works with various table types" print "# Test that bulk fetch works with various table types"
print "" print ""
......
...@@ -56,6 +56,7 @@ write_range_queries = [ ...@@ -56,6 +56,7 @@ write_range_queries = [
timeouts = [0, 500] timeouts = [0, 500]
# Here's where all the magic happens # Here's where all the magic happens
print "source include/have_tokudb.inc;"
print "# Tokutek" print "# Tokutek"
print "# Blocking row lock tests;" print "# Blocking row lock tests;"
print "# Generated by %s on %s;" % (__file__, datetime.date.today()) print "# Generated by %s on %s;" % (__file__, datetime.date.today())
......
...@@ -23,6 +23,7 @@ def sqlgen_explain_and_do(query): ...@@ -23,6 +23,7 @@ def sqlgen_explain_and_do(query):
def sqlgen_drop_table(): def sqlgen_drop_table():
print "drop table t;" print "drop table t;"
print "source include/have_tokudb.inc;"
print "# Tokutek" print "# Tokutek"
print "# Test that replace into and insert ignore insertions " print "# Test that replace into and insert ignore insertions "
print "# work under various index schemas. " print "# work under various index schemas. "
......
...@@ -22,6 +22,7 @@ def gen_test(n): ...@@ -22,6 +22,7 @@ def gen_test(n):
print "DROP TABLE t;" print "DROP TABLE t;"
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_bin.py" print "# this test is generated by change_bin.py"
print "# test binary expansion is hot" print "# test binary expansion is hot"
print "--source include/big_test.inc" print "--source include/big_test.inc"
......
...@@ -26,6 +26,7 @@ def gen_test(n): ...@@ -26,6 +26,7 @@ def gen_test(n):
print "DROP TABLE t;" print "DROP TABLE t;"
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_char_rename.py" print "# this test is generated by change_char_rename.py"
print "# test char expansion + rename is hot" print "# test char expansion + rename is hot"
print "--disable_warnings" print "--disable_warnings"
......
import sys import sys
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_blob.py" print "# this test is generated by change_blob.py"
print "# generate hot blob expansion test cases" print "# generate hot blob expansion test cases"
print "--disable_warnings" print "--disable_warnings"
......
...@@ -22,6 +22,7 @@ def gen_test(n): ...@@ -22,6 +22,7 @@ def gen_test(n):
print "DROP TABLE t;" print "DROP TABLE t;"
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_char.py" print "# this test is generated by change_char.py"
print "# test char expansion" print "# test char expansion"
print "--source include/big_test.inc" print "--source include/big_test.inc"
......
...@@ -23,6 +23,7 @@ def gen_test(n): ...@@ -23,6 +23,7 @@ def gen_test(n):
print "DROP TABLE t;" print "DROP TABLE t;"
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_char_binary.py" print "# this test is generated by change_char_binary.py"
print "# test that char(X) <-> binary(X) is not hot" print "# test that char(X) <-> binary(X) is not hot"
print "--disable_warnings" print "--disable_warnings"
......
...@@ -23,6 +23,7 @@ def gen_test(n): ...@@ -23,6 +23,7 @@ def gen_test(n):
print "DROP TABLE t;" print "DROP TABLE t;"
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_char_charbinary.py" print "# this test is generated by change_char_charbinary.py"
print "# test that char(X) <-> char(X) binary is not hot" print "# test that char(X) <-> char(X) binary is not hot"
print "--disable_warnings" print "--disable_warnings"
......
...@@ -26,6 +26,7 @@ def gen_test(n): ...@@ -26,6 +26,7 @@ def gen_test(n):
print "DROP TABLE t;" print "DROP TABLE t;"
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_char_rename.py" print "# this test is generated by change_char_rename.py"
print "# test char expansion + rename is hot" print "# test char expansion + rename is hot"
print "--disable_warnings" print "--disable_warnings"
......
...@@ -25,6 +25,7 @@ def gen_test(types, values): ...@@ -25,6 +25,7 @@ def gen_test(types, values):
print "DROP TABLE ti;" print "DROP TABLE ti;"
print "DROP TABLE t;" print "DROP TABLE t;"
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_int.py" print "# this test is generated by change_int.py"
print "# test int expansion is hot" print "# test int expansion is hot"
print "--disable_warnings" print "--disable_warnings"
......
...@@ -25,6 +25,7 @@ def gen_test(types): ...@@ -25,6 +25,7 @@ def gen_test(types):
print "DROP TABLE t;" print "DROP TABLE t;"
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_int_key.py" print "# this test is generated by change_int_key.py"
print "# ensure that changing an int column that is part of a key is not hot" print "# ensure that changing an int column that is part of a key is not hot"
print "--disable_warnings" print "--disable_warnings"
......
...@@ -21,6 +21,7 @@ def gen_tests(int_types, modifiers): ...@@ -21,6 +21,7 @@ def gen_tests(int_types, modifiers):
for from_modifier in range(len(modifiers)): for from_modifier in range(len(modifiers)):
gen_tests_for_int(from_int, from_modifier, int_types, modifiers) gen_tests_for_int(from_int, from_modifier, int_types, modifiers)
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_int_not_supported.py" print "# this test is generated by change_int_not_supported.py"
print "# ensure that int types are only expanded and are not cnverted to some other type" print "# ensure that int types are only expanded and are not cnverted to some other type"
print "--disable_warnings" print "--disable_warnings"
......
...@@ -27,6 +27,7 @@ def gen_test(types, values): ...@@ -27,6 +27,7 @@ def gen_test(types, values):
print "DROP TABLE ti;" print "DROP TABLE ti;"
print "DROP TABLE t;" print "DROP TABLE t;"
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_int_rename.py" print "# this test is generated by change_int_rename.py"
print "--disable_warnings" print "--disable_warnings"
print "DROP TABLE IF EXISTS t, ti;" print "DROP TABLE IF EXISTS t, ti;"
......
...@@ -6,6 +6,7 @@ old_types = [ 'VARCHAR(1)', 'VARBINARY(1)', 'INT', 'CHAR(1)', 'BINARY(1)' ] ...@@ -6,6 +6,7 @@ old_types = [ 'VARCHAR(1)', 'VARBINARY(1)', 'INT', 'CHAR(1)', 'BINARY(1)' ]
new_types = [ 'VARCHAR(2)', 'VARBINARY(2)', 'BIGINT', 'CHAR(2)', 'BINARY(2)' ] new_types = [ 'VARCHAR(2)', 'VARBINARY(2)', 'BIGINT', 'CHAR(2)', 'BINARY(2)' ]
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test generated by change_multiple_columns.py" print "# this test generated by change_multiple_columns.py"
print "# this test generated multiple column changes which should all fail since we support only one at a time" print "# this test generated multiple column changes which should all fail since we support only one at a time"
print "--disable_warnings" print "--disable_warnings"
......
import sys import sys
def main(): def main():
print "source include/have_tokudb.inc;"
print "# this test is generated by change_text.py" print "# this test is generated by change_text.py"
print "# generate hot text expansion test cases" print "# generate hot text expansion test cases"
print "--disable_warnings" print "--disable_warnings"
......
...@@ -53,6 +53,9 @@ select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx; ...@@ -53,6 +53,9 @@ select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
connection conn_a; connection conn_a;
commit; commit;
# verify that the lock on the 1st transaction is released and replaced by the lock for the 2nd transaction # verify that the lock on the 1st transaction is released and replaced by the lock for the 2nd transaction
let $wait_condition= select count(*)=1 from information_schema.tokudb_locks where locks_dname='./test/t-main';
source include/wait_condition.inc;
replace_column 1 TRX_ID 2 MYSQL_ID; replace_column 1 TRX_ID 2 MYSQL_ID;
select * from information_schema.tokudb_locks; select * from information_schema.tokudb_locks;
select * from information_schema.tokudb_lock_waits; select * from information_schema.tokudb_lock_waits;
......
...@@ -44,6 +44,9 @@ eval select * from information_schema.tokudb_locks; ...@@ -44,6 +44,9 @@ eval select * from information_schema.tokudb_locks;
connection conn_a; connection conn_a;
commit; commit;
# verify that the lock on the 1st transaction is released and replaced by the lock for the 2nd transaction # verify that the lock on the 1st transaction is released and replaced by the lock for the 2nd transaction
let $wait_condition= select count(*)=1 from information_schema.tokudb_locks where locks_dname='./test/t-main';
source include/wait_condition.inc;
replace_column 1 TRX_ID 2 MYSQL_ID; replace_column 1 TRX_ID 2 MYSQL_ID;
select * from information_schema.tokudb_locks; select * from information_schema.tokudb_locks;
......
$TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 $TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 --loose-tokudb-cache-size=512M --loose-tokudb-block-size=1M
$TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 $TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 --loose-tokudb-cache-size=512M --loose-tokudb-block-size=1M
$TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 $TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 --loose-tokudb-cache-size=512M --loose-tokudb-block-size=1M
$TOKUDB_OPT $TOKUDB_LOAD_ADD $TOKUDB_BACKUP_OPT $TOKUDB_BACKUP_LOAD_ADD --loose-tokudb-check-jemalloc=0 $TOKUDB_OPT $TOKUDB_LOAD_ADD $TOKUDB_BACKUP_OPT $TOKUDB_BACKUP_LOAD_ADD --loose-tokudb-check-jemalloc=0 --loose-tokudb-cache-size=512M --loose-tokudb-block-size=1M
$TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 $TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 --loose-tokudb-cache-size=512M --loose-tokudb-block-size=1M
$TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 $TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 --loose-tokudb-cache-size=512M --loose-tokudb-block-size=1M
--read-only=true --tokudb-rpl-unique-checks=false --tokudb-rpl-lookup-rows=false --read-only=true --loose-tokudb-rpl-unique-checks=false --loose-tokudb-rpl-lookup-rows=false
$TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 $TOKUDB_OPT $TOKUDB_LOAD_ADD --loose-tokudb-check-jemalloc=0 --loose-tokudb-cache-size=512M --loose-tokudb-block-size=1M
...@@ -74,9 +74,7 @@ char* gdb_path = NULL; ...@@ -74,9 +74,7 @@ char* gdb_path = NULL;
my_bool gdb_on_fatal = FALSE; my_bool gdb_on_fatal = FALSE;
#endif #endif
#if TOKUDB_CHECK_JEMALLOC my_bool check_jemalloc = TRUE;
uint check_jemalloc = 0;
#endif
static MYSQL_SYSVAR_ULONGLONG( static MYSQL_SYSVAR_ULONGLONG(
cache_size, cache_size,
...@@ -416,19 +414,14 @@ static MYSQL_SYSVAR_BOOL( ...@@ -416,19 +414,14 @@ static MYSQL_SYSVAR_BOOL(
true); true);
#endif #endif
#if TOKUDB_CHECK_JEMALLOC static MYSQL_SYSVAR_BOOL(
static MYSQL_SYSVAR_UINT(
check_jemalloc, check_jemalloc,
check_jemalloc, check_jemalloc,
0, PLUGIN_VAR_READONLY|PLUGIN_VAR_RQCMDARG,
"check if jemalloc is linked", "check if jemalloc is linked and transparent huge pages are disabled",
NULL, NULL,
NULL, NULL,
1, TRUE);
0,
1,
0);
#endif
//****************************************************************************** //******************************************************************************
...@@ -948,9 +941,7 @@ st_mysql_sys_var* system_variables[] = { ...@@ -948,9 +941,7 @@ st_mysql_sys_var* system_variables[] = {
MYSQL_SYSVAR(gdb_on_fatal), MYSQL_SYSVAR(gdb_on_fatal),
#endif #endif
#if TOKUDB_CHECK_JEMALLOC
MYSQL_SYSVAR(check_jemalloc), MYSQL_SYSVAR(check_jemalloc),
#endif
// session vars // session vars
MYSQL_SYSVAR(alter_print_error), MYSQL_SYSVAR(alter_print_error),
......
...@@ -108,9 +108,7 @@ extern char* gdb_path; ...@@ -108,9 +108,7 @@ extern char* gdb_path;
extern my_bool gdb_on_fatal; extern my_bool gdb_on_fatal;
#endif #endif
#if TOKUDB_CHECK_JEMALLOC extern my_bool check_jemalloc;
extern uint check_jemalloc;
#endif
#if TOKUDB_DEBUG #if TOKUDB_DEBUG
// used to control background job manager // used to control background job manager
......
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