polardbxengine/mysql-test/suite/ndb/t/ndb_big_signals.test

199 lines
6.8 KiB
Plaintext

source include/have_ndb.inc;
# Nodes:
# NDB 1,2
# MGM 3
# API 16,32,48,49,63,127
# Save now to only look at new info in EventLog
select now() into @now;
# DUMP signals in use:
# CmvmiRelayDumpStateOrd(103003) to-node dump-state-ord ...
# CmvmiDummy(103004) report-to sent-from padding frag-size #sec sec#1-len ...
# CmvmiSendDummy(103005) report-to send-to padding frag-size #sec sec#1-len ...
# Signals internal to data node do not use transporters and associated buffers.
# Sections are stored in segmented long message buffers without explicit size
# limits.
let $section_size=32768;
echo section size 3x$section_size: DB(1) -> DB(1);
exec $NDB_MGM --verbose=0 -e
"1 DUMP 103005 1 1 1234567890 0 3 $section_size $section_size $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
# Message size is sum of:
# mandatory Protocol6 header: 3 words
# signal id: 0 or 1 word
# signal data size: 7 word (if dump commands are changed this may change)
# section lengths: 1 word (one word per section used)
# section data: $section_size
# checksum: 0 or 1 word
echo * Send biggest supported messages *;
# For MGM and API internal signal no signal id or checksum are used in messages.
let $section_size=8177;
let $msg_size=`select 3 + 0 + 7 + 1 + $section_size + 0`;
echo size $msg_size: MGM(3) -> MGM(3);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 3 103005 1 3 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo size $msg_size: API(16) -> API(16);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 16 103005 1 16 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
# For external signals signal id and checksum are used in messages.
let $section_size=8176;
let $msg_size=`select 3 + 1 + 7 + 1 + $section_size + 1`;
echo size $msg_size: DB(2) -> DB(1);
exec $NDB_MGM --verbose=0 -e "2 DUMP 103005 1 1 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo size $msg_size: DB(1) -> API(32);
exec $NDB_MGM --verbose=0 -e "1 DUMP 103005 1 32 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
let $section_size=8175;
let $msg_size=`select 3 + 1 + 7 + 1 + $section_size + 1`;
echo size $msg_size: MGM(3) -> DB(1);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 3 103005 1 1 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo size $msg_size: API(16) -> DB(1);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 16 103005 1 1 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
sleep 1;
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo * Fail send messages bigger than 32KiB bytes *;
# For MGM and API internal signal no signal id or checksum are used in messages.
let $section_size=8181;
let $msg_size=`select 3 + 0 + 7 + 1 + $section_size + 0`;
echo size $msg_size: MGM(3) -> MGM(3);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 3 103005 1 3 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo size $msg_size: API(16) -> API(16);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 16 103005 1 16 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
# For external signals signal id and checksum are used in messages.
let $section_size=8179;
let $msg_size=`select 3 + 1 + 7 + 1 + $section_size + 1`;
echo size $msg_size: DB(2) -> DB(1);
exec $NDB_MGM --verbose=0 -e "2 DUMP 103005 1 1 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo size $msg_size: DB(1) -> API(32);
exec $NDB_MGM --verbose=0 -e "1 DUMP 103005 1 32 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
let $section_size=8179;
let $msg_size=`select 3 + 1 + 7 + 1 + $section_size + 1`;
echo size $msg_size: MGM(3) -> DB(1);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 3 103005 1 1 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo size $msg_size: API(16) -> DB(1);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 16 103005 1 1 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
sleep 1;
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo * Fail send messages limited by send buffers but not bigger than 32KiB *;
# For MGM and API internal signal no signal id or checksum are used in messages.
let $section_size=8181;
let $msg_size=`select 3 + 0 + 7 + 1 + $section_size + 0`;
echo size $msg_size: MGM(3) -> MGM(3);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 3 103005 1 3 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo size $msg_size: API(16) -> API(16);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 16 103005 1 16 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
# For external signals signal id and checksum are used in messages.
let $section_size=8179;
let $msg_size=`select 3 + 1 + 7 + 1 + $section_size + 1`;
echo size $msg_size: DB(2) -> DB(1);
exec $NDB_MGM --verbose=0 -e "2 DUMP 103005 1 1 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo size $msg_size: DB(1) -> API(32);
exec $NDB_MGM --verbose=0 -e "1 DUMP 103005 1 32 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
let $section_size=8179;
let $msg_size=`select 3 + 1 + 7 + 1 + $section_size + 1`;
echo size $msg_size: MGM(3) -> DB(1);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 3 103005 1 1 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
echo size $msg_size: API(16) -> DB(1);
exec $NDB_MGM --verbose=0
-e "1 DUMP 103003 16 103005 1 1 1234567890 0 1 $section_size";
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
sleep 1;
exec $NDB_MGM --verbose=0 -e "ALL REPORT EventLog" >> $NDB_TOOLS_OUTPUT;
create temporary table ndb_output (
idx int auto_increment primary key,
output_line blob
);
disable_query_log;
eval
load data local infile '$NDB_TOOLS_OUTPUT'
into table ndb_output
character set binary
fields terminated by '\r'
(output_line, @dummy);
enable_query_log;
select
substr(output_line, 21)
from ndb_output
where
output_line like '%Dummy%'
and substr(output_line, 1, 20) >= @now
group by output_line
order by
substr(output_line, instr(output_line, 'size')),
substr(output_line, 21) desc;
drop table ndb_output;
remove_file $NDB_TOOLS_OUTPUT;