-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathpquery3-run.conf
266 lines (223 loc) · 16.4 KB
/
pquery3-run.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
#!/bin/bash
# Created by Mohit Joshi, Percona LLC
################################################################################
# Welcome to the pquery v3.0 configuration file (pquery3-run.conf). Feel free #
# to copy this file, edit the copy & change the CONFIGURATION_FILE variable #
# in pquery-run.sh to match! #
# Please do not change this file unless your name is listed above. As a #
# template/default, it is the only configuration file for pquery v3.0 which #
# is maintained whenever pquery-run.sh is updated. #
################################################################################
# ################### User configurable variables: generics 1 ##################
# pquery3-ps: Percona Server, pquery3-ms: MySQL #
################################################################################
PQUERY_BIN=${SCRIPT_PWD}/pquery/pquery3-ps
################################################################################
# If enabled, high quality generated SQL is used (the generator is located in #
# percona-qa/generator) #
################################################################################
USE_GENERATOR_INSTEAD_OF_INFILE=0
################################################################################
# If enabled, and if USE_GENERATOR_INSTEAD_OF_INFILE=1, then the INFILE #
# is added to the generator output #
################################################################################
ADD_INFILE_TO_GENERATED_SQL=0
################################################################################
# Options for pquery v3.0 used to define the type of DDLs/DMLs/SQLs to be #
# executed. Default options added. #
# Please modify the parameters as per needs before starting the runs. #
################################################################################
DYNAMIC_QUERY_PARAMETER="--tables 10 --records 100 --log-all-queries --log-failed-queries"
SEED=
################################################################################
# Should be used with caution when a large INFILE is used. It is ideal for #
# small input files (feature testing) #
# Default: main-ms-ps-md.sql (mtr_to_sql.sh of all major distro's + engine mix #
# Use main-ws.sql for mysql-fb #
################################################################################
INFILE=${SCRIPT_PWD}/pquery/pquery.sql
################################################################################
# Set to the right distribution + version to match mysqld options (as generated#
# by generate_mysqld_options.sh) #
# ex. mysqld_options_ps_56.txt, mysqld_options_ms_56.txt, #
# mysqld_options_ms_57.txt, mysqld_options_ps_55.txt #
################################################################################
OPTIONS_INFILE=${SCRIPT_PWD}/pquery/mysqld_options_ms_80.txt
# TokuDB options list
TOKUDB_OPTIONS_INFILE=${SCRIPT_PWD}/pquery/mysqld_options_tokudb.txt
# MySQL Basedir. Required for all runs, including PXC
BASEDIR=$HOME/mysql-8.0/bld_01jan2020/install
################################################################################
# Working directory. Here we keep the log files, option list, failed items. #
# Please leave $RANDOMD! #
################################################################################
WORKDIR=$HOME/test_p/$RANDOMD
################################################################################
# Run directory. Keeps a copy of the data dir template & stores mysqld runs #
# (--datadir=x). Pls leave $RANDOMD! #
################################################################################
RUNDIR=/tmp/$RANDOMD
# Sysbench data load. Normally set to 0 (off)
SYSBENCH_DATALOAD=0
################################################################################
# User configurable variables: generics 2 #
################################################################################
################################################################################
# Number of individual trials to execute (one can always interrupt with ctrl+c #
################################################################################
TRIALS=3
################################################################################
# Add random mysqld --options to MYEXTRA using an input file. 1=On, 0=off. #
# (Auto-disabled if PXC=1) #
################################################################################
ADD_RANDOM_OPTIONS=1
################################################################################
# Add random tokudb --options to MYEXTRA using an input file. 1=On, 0=off. #
# (Auto-disabled if PXC=1) #
################################################################################
ADD_RANDOM_TOKUDB_OPTIONS=0
################################################################################
# Max nr of random options to add (minimum is always 1). #
# Recommended: 4. Counts per ADD_RANDOM_... option above (x2) #
################################################################################
MAX_NR_OF_RND_OPTS_TO_ADD=5
################################################################################
# Save only trials that generate a core file (good for initial few runs where #
# there are lot of crashes/asserts) #
################################################################################
SAVE_TRIALS_WITH_CORE_OR_VALGRIND_ONLY=0
################################################################################
# Saves per-trial SQL even if SAVE_TRIALS_WITH_CORE_OR_VALGRIND_ONLY=1. #
# Main usecase: full server lockups/hangs #
################################################################################
SAVE_SQL=0
################################################################################
# Store a copy of the INFILE SQL input file in the work directory (not related #
# to per-trial SQL) #
################################################################################
STORE_COPY_OF_INFILE=0
################################################################################
# x sec max trial runtime within which pquery tries to process #
# QUERIES_PER_THREAD x THREADS queries against 1 mysqld #
################################################################################
PQUERY_RUN_TIMEOUT=100
################################################################################
# x sec incremented in each trial. The first trial will run for #
# PQUERY_RUN_TIMEOUT sec. The next run will be incremented by x sec and #
# so on... #
# ex. if PQUERY_RUN_TIMEOUT=100 and TIMEOUT_INCREMENT=10 #
# Trial1=100, Trial2=110s, Trial3=120s #
# To disable set TIMEOUT_INCREMENT=0 #
################################################################################
TIMEOUT_INCREMENT=10
################################################################################
# Maximum number of queries executed per thread (THREADS) per trial (small = #
# faster reduction, large = more crashes) #
################################################################################
QUERIES_PER_THREAD=100000
################################################################################
# Used when USE_GENERATOR_INSTEAD_OF_INFILE=1. Default: 20000. Generating 10K #
# queries takes about 15 seconds on SSD #
################################################################################
QUERIES_PER_GENERATOR_RUN=25000
################################################################################
# Run the SQL Generator every x trials. Default is 10. This aids runs as less #
# time is spent generating queries #
################################################################################
GENERATE_NEW_QUERIES_EVERY_X_TRIALS=10
################################################################################
# Extra options to pass to mysqld AND at data directory init time, for example #
# MYINIT="--early-plugin-load=keyring_file.so --keyring_file_data=keyring #
# --innodb_sys_tablespace_encrypt=ON" #
################################################################################
MYINIT="--early-plugin-load=keyring_file.so --keyring_file_data=keyring"
################################################################################
# Extra options to pass to mysqld. Examples below #
################################################################################
MYEXTRA="--early-plugin-load=keyring_file.so --keyring_file_data=keyring"
###############################################################################
# 5.6/5.7 #
# MYSAFE: See http://bugs.mysql.com/?id=73916 re: testing env setup. MYSAFE #
# ensures cleaner/better QA runs #
###############################################################################
MYSAFE="--no-defaults --max_allowed_packet=33554432 --maximum-bulk_insert_buffer_size=1M --maximum-join_buffer_size=1M --maximum-max_heap_table_size=1M --maximum-max_join_size=1M --maximum-myisam_max_sort_file_size=1M --maximum-myisam_mmap_size=1M --maximum-myisam_sort_buffer_size=1M --maximum-optimizer_trace_max_mem_size=1M --maximum-preload_buffer_size=1M --maximum-query_alloc_block_size=1M --maximum-query_prealloc_size=1M --maximum-range_alloc_block_size=1M --maximum-read_buffer_size=1M --maximum-read_rnd_buffer_size=1M --maximum-sort_buffer_size=1M --maximum-tmp_table_size=1M --maximum-transaction_alloc_block_size=1M --maximum-transaction_prealloc_size=1M --log-output=none --sql_mode=ONLY_FULL_GROUP_BY"
################################################################################
# Number of threads to use. Default: 1. Set to >1 to enable multi-threaded #
# runs. Also see MULTI_THREADED_TESTC_LINES #
################################################################################
THREADS=20
################################################################################
# Only takes effect if THREADS>1. pquery-run will take this amount of lines #
# to form individual testcases for multi-threaded runs. IOW, if THREADS=1, #
# pquery-run will just run one client, continously getting random queries out #
# of INFILE, untill QUERIES_PER_THREAD queries is reached (if mysqld does not #
# crash earlier). On the other hand, if THREADS>1, pquery-run will take a #
# random chunk out of INFILE (to the amount of MULTI_THREADED_TESTC_LINES #
# lines) _before_ starting each trial run. It will then run pquery, with #
# THREADS threads, only using that smaller chunk extracted from INFILE. These #
# individual SQL input files are saved in the trial's dirtory. You may want to #
# keep this number small to ensure that true-multi-threaded testcase reduction #
# using reducer.sh is still sufficiently fast (25K lines takes a few days to #
# reduce), while keeping it large enough to ensure crashes/asserts to start #
# with. #
################################################################################
MULTI_THREADED_TESTC_LINES=25000
################################################################################
# User configurable variables to enable query correctness testing #
# Note: if/when using RocksDB as a primary or secondary engine, it must be #
# spelled correctly as: RocksDB. Variations like: rocksdb will cause failures #
# in this script #
################################################################################
################################################################################
# Set to 1 to enable query correctness testing. Normally set to 0 (off) #
################################################################################
QUERY_CORRECTNESS_TESTING=0
################################################################################
# Sets the result comparison modes: 0: errors/warnings, 1: 'changed rows' #
# comparision, 2: actual query results #
################################################################################
QUERY_CORRECTNESS_MODE=2
################################################################################
# Number of queries sampled/used per trial (executed against both engines #
# below, then results are compared) #
################################################################################
QC_NR_OF_STATEMENTS_PER_TRIAL=2000
################################################################################
# Primary comparison engine for query correctness testing. Make sure to match #
# this with MYEXTRA ('left engine') #
################################################################################
QC_PRI_ENGINE=InnoDB
################################################################################
# Secondary comparison engine for query correctness testing. Make sure to #
# match this with MYEXTRA2 ('right engine') #
################################################################################
QC_SEC_ENGINE=InnoDB
################################################################################
# Used for secondary mysqld (RocksDB testing) #
################################################################################
MYEXTRA2="--default-tmp-storage-engine=MyISAM --default-storage-engine=InnoDB --collation-server=latin1_bin"
################################################################################
# User configurable variables to enable query duration testing #
################################################################################
################################################################################
# Partially implemented only. Needs further development. #
################################################################################
QUERY_DURATION_TESTING=0
################################################################################
# User configurable variables to enable crash recovery testing only #
################################################################################
################################################################################
# Set to 1 to make this a crash recovery test (terminates server after x #
# seconds and then attempts crash recovery) #
################################################################################
CRASH_RECOVERY_TESTING=0
################################################################################
# Currently using simple.sql for crash recovery testing. This can be changed/ #
# expanded upon #
################################################################################
CRASH_RECOVERY_INFILE=${SCRIPT_PWD}/simple.sql
################################################################################
# Kill the server x seconds before the end of the trial. Ensure trial duration #
# is somewhat larger then this #
################################################################################
CRASH_RECOVERY_KILL_BEFORE_END_SEC=20