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
9bd6a0b9
Commit
9bd6a0b9
authored
Sep 30, 2004
by
tomas@poseidon.ndb.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-ndb-merge
parents
07700678
caa8bbae
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
111 additions
and
57 deletions
+111
-57
mysql-test/include/have_ndb.inc
mysql-test/include/have_ndb.inc
+3
-0
mysql-test/install_test_db.sh
mysql-test/install_test_db.sh
+7
-2
mysql-test/mysql-test-run.sh
mysql-test/mysql-test-run.sh
+71
-40
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+30
-15
No files found.
mysql-test/include/have_ndb.inc
View file @
9bd6a0b9
...
...
@@ -2,3 +2,6 @@
disable_query_log
;
show
variables
like
"have_ndbcluster"
;
enable_query_log
;
connect
(
server1
,
127.0
.
0.1
,
root
,,
test
,
$MASTER_MYPORT
,
$MASTER_MYSOCK
);
connect
(
server2
,
127.0
.
0.1
,
root
,,
test
,
$MASTER_MYPORT1
,
$MASTER_MYSOCK1
);
connection
server1
;
mysql-test/install_test_db.sh
View file @
9bd6a0b9
...
...
@@ -36,8 +36,13 @@ then
data
=
var/slave-data
ldata
=
$fix_bin
/var/slave-data
else
data
=
var/master-data
ldata
=
$fix_bin
/var/master-data
if
[
x
$1
=
x
"-1"
]
then
data
=
var/master-data1
else
data
=
var/master-data
fi
ldata
=
$fix_bin
/
$data
fi
mdata
=
$data
/mysql
...
...
mysql-test/mysql-test-run.sh
View file @
9bd6a0b9
...
...
@@ -198,9 +198,11 @@ DYLD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$DYLD_LIBRARY_PATH"
export
LD_LIBRARY_PATH DYLD_LIBRARY_PATH
MASTER_RUNNING
=
0
MASTER1_RUNNING
=
0
MASTER_MYPORT
=
9306
MASTER_MYPORT1
=
9307
SLAVE_RUNNING
=
0
SLAVE_MYPORT
=
930
7
SLAVE_MYPORT
=
930
8
# leave room for 2 masters for cluster tests
MYSQL_MANAGER_PORT
=
9305
# needs to be out of the way of slaves
NDBCLUSTER_PORT
=
9350
MYSQL_MANAGER_PW_FILE
=
$MYSQL_TEST_DIR
/var/tmp/manager.pwd
...
...
@@ -254,9 +256,9 @@ while test $# -gt 0; do
--extern
)
USE_RUNNING_SERVER
=
"1"
;;
--with-ndbcluster
)
USE_NDBCLUSTER
=
"--ndbcluster"
;;
--ndbconnectstring
=
*
)
--ndb
-
connectstring
=
*
)
USE_NDBCLUSTER
=
"--ndbcluster"
;
USE_RUNNING_NDBCLUSTER
=
`
$ECHO
"
$1
"
|
$SED
-e
"s;--ndbconnectstring=;;"
`
;;
USE_RUNNING_NDBCLUSTER
=
`
$ECHO
"
$1
"
|
$SED
-e
"s;--ndb
-
connectstring=;;"
`
;;
--tmpdir
=
*
)
MYSQL_TMP_DIR
=
`
$ECHO
"
$1
"
|
$SED
-e
"s;--tmpdir=;;"
`
;;
--local-master
)
MASTER_MYPORT
=
3306
;
...
...
@@ -437,6 +439,7 @@ MANAGER_PID_FILE="$MYRUN_DIR/manager.pid"
MASTER_MYDDIR
=
"
$MYSQL_TEST_DIR
/var/master-data"
MASTER_MYSOCK
=
"
$MYSQL_TMP_DIR
/master.sock"
MASTER_MYSOCK1
=
$MYSQL_MYSOCK
"1"
MASTER_MYPID
=
"
$MYRUN_DIR
/master.pid"
MASTER_MYLOG
=
"
$MYSQL_TEST_DIR
/var/log/master.log"
MASTER_MYERR
=
"
$MYSQL_TEST_DIR
/var/log/master.err"
...
...
@@ -450,7 +453,7 @@ SLAVE_MYERR="$MYSQL_TEST_DIR/var/log/slave.err"
CURRENT_TEST
=
"
$MYSQL_TEST_DIR
/var/log/current_test"
SMALL_SERVER
=
"--key_buffer_size=1M --sort_buffer=256K --max_heap_table_size=1M"
export
MASTER_MYPORT
SLAVE_MYPORT MYSQL_TCP_PORT MASTER_MYSOCK
export
MASTER_MYPORT
MASTER_MYPORT1 SLAVE_MYPORT MYSQL_TCP_PORT MASTER_MYSOCK MASTER_MYSOCK1
if
[
x
$SOURCE_DIST
=
x1
]
;
then
MY_BASEDIR
=
$MYSQL_TEST_DIR
...
...
@@ -749,13 +752,22 @@ report_stats () {
mysql_install_db
()
{
$ECHO
"Removing Stale Files"
$RM
-rf
$MASTER_MYDDIR
$SLAVE_MYDDIR
$MY_LOG_DIR
/
*
$RM
-rf
$MASTER_MYDDIR
$
MASTER_MYDDIR
"1"
$
SLAVE_MYDDIR
$MY_LOG_DIR
/
*
$ECHO
"Installing Master Databases"
$INSTALL_DB
if
[
$?
!=
0
]
;
then
error
"Could not install master test DBs"
exit
1
fi
if
[
!
-z
"
$USE_NDBCLUSTER
"
]
then
$ECHO
"Installing Master Databases 1"
$INSTALL_DB
-1
if
[
$?
!=
0
]
;
then
error
"Could not install master test DBs 1"
exit
1
fi
fi
$ECHO
"Installing Slave Databases"
$INSTALL_DB
-slave
if
[
$?
!=
0
]
;
then
...
...
@@ -894,10 +906,10 @@ manager_term()
ident
=
$2
if
[
$USE_MANAGER
=
0
]
;
then
# Shutdown time must be high as slave may be in reconnect
$MYSQLADMIN
--no-defaults
-uroot
--socket
=
$MYSQL_TMP_DIR
/
$ident
.sock
--connect_timeout
=
5
--shutdown_timeout
=
70 shutdown
>>
$MYSQL_MANAGER_LOG
2>&1
$MYSQLADMIN
--no-defaults
-uroot
--socket
=
$MYSQL_TMP_DIR
/
$ident
.sock
$3
--connect_timeout
=
5
--shutdown_timeout
=
70 shutdown
>>
$MYSQL_MANAGER_LOG
2>&1
res
=
$?
# Some systems require an extra connect
$MYSQLADMIN
--no-defaults
-uroot
--socket
=
$MYSQL_TMP_DIR
/
$ident
.sock
--connect_timeout
=
1 ping
>>
$MYSQL_MANAGER_LOG
2>&1
$MYSQLADMIN
--no-defaults
-uroot
--socket
=
$MYSQL_TMP_DIR
/
$ident
.sock
$3
--connect_timeout
=
1 ping
>>
$MYSQL_MANAGER_LOG
2>&1
if
test
$res
=
0
then
wait_for_pid
$pid
...
...
@@ -916,17 +928,18 @@ EOF
start_master
()
{
if
[
x
$MASTER_RUNNING
=
x1
]
||
[
x
$LOCAL_MASTER
=
x1
]
;
then
eval
"this_master_running=
\$
MASTER
$1_RUNNING
"
if
[
x
$this_master_running
=
x1
]
||
[
x
$LOCAL_MASTER
=
x1
]
;
then
return
fi
# Remove stale binary logs except for 2 tests which need them
if
[
"
$tname
"
!=
"rpl_crash_binlog_ib_1b"
]
&&
[
"
$tname
"
!=
"rpl_crash_binlog_ib_2b"
]
&&
[
"
$tname
"
!=
"rpl_crash_binlog_ib_3b"
]
then
$RM
-f
$MYSQL_TEST_DIR
/var/log/master-bin.
*
$RM
-f
$MYSQL_TEST_DIR
/var/log/master-bin
$1
.
*
fi
# Remove old master.info and relay-log.info files
$RM
-f
$MYSQL_TEST_DIR
/var/master-data
/master.info
$MYSQL_TEST_DIR
/var/master-data
/relay-log.info
$RM
-f
$MYSQL_TEST_DIR
/var/master-data
$1
/master.info
$MYSQL_TEST_DIR
/var/master-data
$1
/relay-log.info
#run master initialization shell script if one exists
...
...
@@ -935,20 +948,27 @@ start_master()
/bin/sh
$master_init_script
fi
cd
$BASEDIR
# for gcov
if
[
-n
"
$1
"
]
;
then
id
=
`
$EXPR
$1
+ 101
`
;
this_master_myport
=
`
$EXPR
$MASTER_MYPORT
+
$1
`
else
id
=
1
;
this_master_myport
=
$MASTER_MYPORT
fi
if
[
-z
"
$DO_BENCH
"
]
then
master_args
=
"--no-defaults --log-bin=
$MYSQL_TEST_DIR
/var/log/master-bin
\
--server-id=
1
\
master_args
=
"--no-defaults --log-bin=
$MYSQL_TEST_DIR
/var/log/master-bin
$1
\
--server-id=
$id
\
--basedir=
$MY_BASEDIR
\
--port=
$
MASTER_MYPORT
\
--port=
$
this_master_myport
\
--local-infile
\
--exit-info=256
\
--core
\
$USE_NDBCLUSTER
\
--datadir=
$MASTER_MYDDIR
\
--pid-file=
$MASTER_MYPID
\
--socket=
$MASTER_MYSOCK
\
--log=
$MASTER_MYLOG
\
--datadir=
$MASTER_MYDDIR
$1
\
--pid-file=
$MASTER_MYPID
$1
\
--socket=
$MASTER_MYSOCK
$1
\
--log=
$MASTER_MYLOG
$1
\
--character-sets-dir=
$CHARSETSDIR
\
--default-character-set=
$CHARACTER_SET
\
--tmpdir=
$MYSQL_TMP_DIR
\
...
...
@@ -959,14 +979,14 @@ start_master()
$SMALL_SERVER
\
$EXTRA_MASTER_OPT
$EXTRA_MASTER_MYSQLD_OPT
"
else
master_args
=
"--no-defaults --log-bin=
$MYSQL_TEST_DIR
/var/log/master-bin
\
--server-id=
1
--rpl-recovery-rank=1
\
master_args
=
"--no-defaults --log-bin=
$MYSQL_TEST_DIR
/var/log/master-bin
$1
\
--server-id=
$id
--rpl-recovery-rank=1
\
--basedir=
$MY_BASEDIR
--init-rpl-role=master
\
--port=
$
MASTER_MYPORT
\
--port=
$
this_master_myport
\
--local-infile
\
--datadir=
$MASTER_MYDDIR
\
--pid-file=
$MASTER_MYPID
\
--socket=
$MASTER_MYSOCK
\
--datadir=
$MASTER_MYDDIR
$1
\
--pid-file=
$MASTER_MYPID
$1
\
--socket=
$MASTER_MYSOCK
$1
\
--character-sets-dir=
$CHARSETSDIR
\
--default-character-set=
$CHARACTER_SET
\
--core
\
...
...
@@ -1024,9 +1044,9 @@ EOF
else
manager_launch master
$MASTER_MYSQLD
$master_args
fi
sleep_until_file_created
$MASTER_MYPID
$wait_for_master
sleep_until_file_created
$MASTER_MYPID
$1
$wait_for_master
wait_for_master
=
$SLEEP_TIME_FOR_SECOND_MASTER
MASTER_RUNNING
=
1
eval
"MASTER
$1_RUNNING
=1"
}
start_slave
()
...
...
@@ -1202,22 +1222,23 @@ stop_slave_threads ()
stop_master
()
{
if
[
x
$MASTER_RUNNING
=
x1
]
eval
"this_master_running=
\$
MASTER
$1_RUNNING
"
if
[
x
$this_master_running
=
x1
]
then
# For embedded server we don't stop anyting but mark that
# MASTER_RUNNING=0 to get cleanup when calling start_master().
if
[
x
$USE_EMBEDDED_SERVER
!=
x1
]
;
then
pid
=
`
$CAT
$MASTER_MYPID
`
manager_term
$pid
master
if
[
$?
!=
0
]
&&
[
-f
$MASTER_MYPID
]
pid
=
`
$CAT
$MASTER_MYPID
$1
`
manager_term
$pid
master
$1
if
[
$?
!=
0
]
&&
[
-f
$MASTER_MYPID
$1
]
then
# try harder!
$ECHO
"master not cooperating with mysqladmin, will try manual kill"
kill
$pid
sleep_until_file_deleted
$pid
$MASTER_MYPID
if
[
-f
$MASTER_MYPID
]
;
then
sleep_until_file_deleted
$pid
$MASTER_MYPID
$1
if
[
-f
$MASTER_MYPID
$1
]
;
then
$ECHO
"master refused to die. Sending SIGKILL"
kill
-9
`
$CAT
$MASTER_MYPID
`
$RM
-f
$MASTER_MYPID
kill
-9
`
$CAT
$MASTER_MYPID
$1
`
$RM
-f
$MASTER_MYPID
$1
else
$ECHO
"master responded to SIGTERM "
fi
...
...
@@ -1225,7 +1246,7 @@ stop_master ()
sleep
$SLEEP_TIME_AFTER_RESTART
fi
fi
MASTER_RUNNING
=
0
eval
"MASTER
$1_RUNNING
=0"
fi
}
...
...
@@ -1235,6 +1256,7 @@ mysql_stop ()
$ECHO
"Shutting-down MySQL daemon"
$ECHO
""
stop_master
stop_master 1
$ECHO
"Master shutdown finished"
stop_slave
stop_slave 1
...
...
@@ -1365,8 +1387,12 @@ run_testcase ()
;;
esac
stop_master
stop_master 1
echo
"CURRENT_TEST:
$tname
"
>>
$MASTER_MYERR
start_master
if
[
-n
"
$USE_NDBCLUSTER
"
-a
-z
"
$DO_BENCH
"
]
;
then
start_master 1
fi
TZ
=
$MY_TZ
;
export
TZ
else
# If we had extra master opts to the previous run
...
...
@@ -1377,8 +1403,12 @@ run_testcase ()
then
EXTRA_MASTER_OPT
=
""
stop_master
stop_master 1
echo
"CURRENT_TEST:
$tname
"
>>
$MASTER_MYERR
start_master
if
[
-n
"
$USE_NDBCLUSTER
"
-a
-z
"
$DO_BENCH
"
]
;
then
start_master 1
fi
else
echo
"CURRENT_TEST:
$tname
"
>>
$MASTER_MYERR
fi
...
...
@@ -1532,11 +1562,11 @@ then
if
[
!
-z
"
$USE_NDBCLUSTER
"
]
then
if
[
-z
"
$USE_RUNNING_NDBCLUSTER
"
]
then
# Kill any running ndbcluster stuff
./ndb/ndbcluster
--data-dir
=
$MYSQL_TEST_DIR
/var
--port-base
=
$NDBCLUSTER_PORT
--stop
fi
if
[
-z
"
$USE_RUNNING_NDBCLUSTER
"
]
then
# Kill any running ndbcluster stuff
./ndb/ndbcluster
--data-dir
=
$MYSQL_TEST_DIR
/var
--port-base
=
$NDBCLUSTER_PORT
--stop
fi
fi
# Remove files that can cause problems
...
...
@@ -1545,6 +1575,7 @@ then
# Remove old berkeley db log files that can confuse the server
$RM
-f
$MASTER_MYDDIR
/log.
*
$RM
-f
$MASTER_MYDDIR
"1"
/log.
*
wait_for_master
=
$SLEEP_TIME_FOR_FIRST_MASTER
wait_for_slave
=
$SLEEP_TIME_FOR_FIRST_SLAVE
...
...
@@ -1556,7 +1587,7 @@ then
if
[
-z
"
$USE_RUNNING_NDBCLUSTER
"
]
then
echo
"Starting ndbcluster"
if
[
"
$DO_BENCH
"
=
1
]
if
[
"
$DO_BENCH
"
=
1
-a
!
"
$DO_SMALL_BENCH
"
=
1
]
then
NDBCLUSTER_OPTS
=
""
else
...
...
sql/ha_ndbcluster.cc
View file @
9bd6a0b9
...
...
@@ -147,7 +147,25 @@ int execute_no_commit(ha_ndbcluster *h, NdbConnection *trans)
int
m_batch_execute
=
0
;
if
(
false
&&
m_batch_execute
)
return
0
;
return
trans
->
execute
(
NoCommit
);
return
trans
->
execute
(
NoCommit
,
AbortOnError
,
1
);
}
inline
int
execute_commit
(
ha_ndbcluster
*
h
,
NdbConnection
*
trans
)
{
int
m_batch_execute
=
0
;
if
(
false
&&
m_batch_execute
)
return
0
;
return
trans
->
execute
(
Commit
,
AbortOnError
,
1
);
}
inline
int
execute_no_commit_ie
(
ha_ndbcluster
*
h
,
NdbConnection
*
trans
)
{
int
m_batch_execute
=
0
;
if
(
false
&&
m_batch_execute
)
return
0
;
return
trans
->
execute
(
NoCommit
,
IgnoreError
,
1
);
}
/*
...
...
@@ -801,17 +819,15 @@ void ha_ndbcluster::release_metadata()
int
ha_ndbcluster
::
get_ndb_lock_type
(
enum
thr_lock_type
type
)
{
int
lm
;
if
(
type
==
TL_WRITE_ALLOW_WRITE
)
lm
=
NdbOperation
::
LM_Exclusive
;
return
NdbOperation
::
LM_Exclusive
;
else
if
(
uses_blob_value
(
retrieve_all_fields
))
/*
TODO use a new scan mode to read + lock + keyinfo
*/
lm
=
NdbOperation
::
LM_Exclusive
;
return
NdbOperation
::
LM_Exclusive
;
else
lm
=
NdbOperation
::
LM_CommittedRead
;
return
lm
;
return
NdbOperation
::
LM_CommittedRead
;
}
static
const
ulong
index_type_flags
[]
=
...
...
@@ -994,7 +1010,7 @@ int ha_ndbcluster::pk_read(const byte *key, uint key_len, byte *buf)
}
}
if
(
trans
->
execute
(
NoCommit
,
IgnoreError
)
!=
0
)
if
(
execute_no_commit_ie
(
this
,
trans
)
!=
0
)
{
table
->
status
=
STATUS_NOT_FOUND
;
DBUG_RETURN
(
ndb_err
(
trans
));
...
...
@@ -1115,7 +1131,7 @@ int ha_ndbcluster::unique_index_read(const byte *key,
}
}
if
(
trans
->
execute
(
NoCommit
,
IgnoreError
)
!=
0
)
if
(
execute_no_commit_ie
(
this
,
trans
)
!=
0
)
{
table
->
status
=
STATUS_NOT_FOUND
;
DBUG_RETURN
(
ndb_err
(
trans
));
...
...
@@ -1192,7 +1208,7 @@ inline int ha_ndbcluster::next_result(byte *buf)
}
else
{
if
(
ops_pending
&&
(
trans
->
execute
(
Commit
)
!=
0
))
if
(
ops_pending
&&
(
execute_commit
(
this
,
trans
)
!=
0
))
DBUG_RETURN
(
ndb_err
(
trans
));
trans
->
restart
();
}
...
...
@@ -1626,7 +1642,7 @@ int ha_ndbcluster::write_row(byte *record)
}
else
{
if
(
trans
->
execute
(
Commit
)
!=
0
)
if
(
execute_commit
(
this
,
trans
)
!=
0
)
{
skip_auto_increment
=
true
;
no_uncommitted_rows_execute_failure
();
...
...
@@ -2668,14 +2684,13 @@ THR_LOCK_DATA **ha_ndbcluster::store_lock(THD *thd,
enum
thr_lock_type
lock_type
)
{
DBUG_ENTER
(
"store_lock"
);
if
(
lock_type
!=
TL_IGNORE
&&
m_lock
.
type
==
TL_UNLOCK
)
{
/* If we are not doing a LOCK TABLE, then allow multiple
writers */
if
((
lock_type
>=
TL_WRITE_
CONCURRENT_INSERT
&&
if
((
lock_type
>=
TL_WRITE_
ALLOW_WRITE
&&
lock_type
<=
TL_WRITE
)
&&
!
thd
->
in_lock_tables
)
lock_type
=
TL_WRITE_ALLOW_WRITE
;
...
...
@@ -2913,7 +2928,7 @@ int ndbcluster_commit(THD *thd, void *ndb_transaction)
"stmt"
:
"all"
));
DBUG_ASSERT
(
ndb
&&
trans
);
if
(
trans
->
execute
(
Commit
)
!=
0
)
if
(
execute_commit
(
0
,
trans
)
!=
0
)
{
const
NdbError
err
=
trans
->
getNdbError
();
const
NdbOperation
*
error_op
=
trans
->
getNdbErrorOperation
();
...
...
@@ -4118,7 +4133,7 @@ ndb_get_table_statistics(Ndb* ndb, const char * table,
if
(
pOp
==
NULL
)
break
;
NdbResultSet
*
rs
=
pOp
->
readTuples
(
Ndb
ScanOperation
::
LM_Dirty
);
NdbResultSet
*
rs
=
pOp
->
readTuples
(
Ndb
Operation
::
LM_CommittedRead
);
if
(
rs
==
0
)
break
;
...
...
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