Merge lp:~vjsamuel/drizzle/rplugin-innobase into lp:~drizzle-trunk/drizzle/development
- rplugin-innobase
- Merge into development
Proposed by
Vijay Samuel
Status: | Merged |
---|---|
Merged at revision: | 1712 |
Proposed branch: | lp:~vjsamuel/drizzle/rplugin-innobase |
Merge into: | lp:~drizzle-trunk/drizzle/development |
Diff against target: |
574 lines (+500/-7) 4 files modified
plugin/innobase/handler/ha_innodb.cc (+497/-3) po/POTFILES.in (+1/-0) tests/t/unsafe_binlog_innodb-master.opt (+1/-1) tests/test-run.pl (+1/-3) |
To merge this branch: | bzr merge lp:~vjsamuel/drizzle/rplugin-innobase |
Related bugs: | |
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Stewart Smith (community) | Needs Fixing | ||
Drizzle Merge Team | Pending | ||
Review via email: mp+32183@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'plugin/innobase/handler/ha_innodb.cc' |
2 | --- plugin/innobase/handler/ha_innodb.cc 2010-08-08 01:18:02 +0000 |
3 | +++ plugin/innobase/handler/ha_innodb.cc 2010-08-10 11:52:47 +0000 |
4 | @@ -88,6 +88,12 @@ |
5 | #include <drizzled/transaction_services.h> |
6 | |
7 | #include <boost/algorithm/string.hpp> |
8 | +#include <boost/program_options.hpp> |
9 | +#include <drizzled/module/option_map.h> |
10 | +#include <iostream> |
11 | + |
12 | +namespace po= boost::program_options; |
13 | +using namespace std; |
14 | |
15 | /** @file ha_innodb.cc */ |
16 | |
17 | @@ -213,10 +219,8 @@ |
18 | values */ |
19 | |
20 | static ulong innobase_fast_shutdown = 1; |
21 | -#ifdef UNIV_LOG_ARCHIVE |
22 | static my_bool innobase_log_archive = FALSE; |
23 | static char* innobase_log_arch_dir = NULL; |
24 | -#endif /* UNIV_LOG_ARCHIVE */ |
25 | static my_bool innobase_use_doublewrite = TRUE; |
26 | static my_bool innobase_use_checksums = TRUE; |
27 | static my_bool innobase_rollback_on_timeout = FALSE; |
28 | @@ -1830,6 +1834,348 @@ |
29 | char *default_path; |
30 | uint format_id; |
31 | InnobaseEngine *actuall_engine_ptr; |
32 | + const module::option_map &vm= context.getOptions(); |
33 | + |
34 | + if (vm.count("io-capacity")) |
35 | + { |
36 | + if (srv_io_capacity < 100 || srv_io_capacity > (unsigned long)~0L) |
37 | + { |
38 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for io-capacity\n")); |
39 | + exit(-1); |
40 | + } |
41 | + } |
42 | + |
43 | + if (vm.count("data-home-dir")) |
44 | + { |
45 | + innobase_data_home_dir= strdup(vm["data-home-dir"].as<string>().c_str()); |
46 | + } |
47 | + |
48 | + else |
49 | + { |
50 | + innobase_data_home_dir= NULL; |
51 | + } |
52 | + |
53 | + if (vm.count("fast-shutdown")) |
54 | + { |
55 | + if (innobase_fast_shutdown > 2) |
56 | + { |
57 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for fast-shutdown\n")); |
58 | + exit(-1); |
59 | + } |
60 | + } |
61 | + |
62 | + if (vm.count("file-format")) |
63 | + { |
64 | + innobase_file_format_name= strdup(vm["file-format"].as<string>().c_str()); |
65 | + } |
66 | + |
67 | + else |
68 | + { |
69 | + innobase_file_format_name= strdup("Antelope"); |
70 | + } |
71 | + |
72 | + if (vm.count("file-format-check")) |
73 | + { |
74 | + innobase_file_format_check= strdup(vm["file-format-check"].as<string>().c_str()); |
75 | + } |
76 | + |
77 | + else |
78 | + { |
79 | + innobase_file_format_check= strdup("on"); |
80 | + } |
81 | + |
82 | + if (vm.count("flush-log-at-trx-commit")) |
83 | + { |
84 | + if (srv_flush_log_at_trx_commit > 2) |
85 | + { |
86 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for flush-log-at-trx-commit\n")); |
87 | + exit(-1); |
88 | + } |
89 | + } |
90 | + |
91 | + if (vm.count("flush-method")) |
92 | + { |
93 | + innobase_unix_file_flush_method= strdup(vm["flush-method"].as<string>().c_str()); |
94 | + } |
95 | + |
96 | + else |
97 | + { |
98 | + innobase_unix_file_flush_method= NULL; |
99 | + } |
100 | + |
101 | + if (vm.count("log-arch-dir")) |
102 | + { |
103 | + innobase_log_arch_dir= strdup(vm["log-arch-dir"].as<string>().c_str()); |
104 | + } |
105 | + |
106 | + else |
107 | + { |
108 | + innobase_log_arch_dir= NULL; |
109 | + } |
110 | + |
111 | + if (vm.count("max-dirty-pages-pct")) |
112 | + { |
113 | + if (srv_max_buf_pool_modified_pct > 99) |
114 | + { |
115 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for max-dirty-pages-pct\n")); |
116 | + exit(-1); |
117 | + } |
118 | + } |
119 | + |
120 | + if (vm.count("max-purge-lag")) |
121 | + { |
122 | + if (srv_max_purge_lag > (unsigned long)~0L) |
123 | + { |
124 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for max-purge-lag\n")); |
125 | + exit(-1); |
126 | + } |
127 | + } |
128 | + |
129 | + if (vm.count("log-group-home-dir")) |
130 | + { |
131 | + innobase_log_group_home_dir= strdup(vm["log-group-home-dir"].as<string>().c_str()); |
132 | + } |
133 | + |
134 | + else |
135 | + { |
136 | + innobase_log_group_home_dir= NULL; |
137 | + } |
138 | + |
139 | + if (vm.count("stats-sample-pages")) |
140 | + { |
141 | + if (srv_stats_sample_pages < 8 || srv_stats_sample_pages > (unsigned long long)~0ULL) |
142 | + { |
143 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for stats-sample-pages\n")); |
144 | + exit(-1); |
145 | + } |
146 | + } |
147 | + |
148 | + if (vm.count("replication-delay")) |
149 | + { |
150 | + if (srv_replication_delay > (unsigned long)~0UL) |
151 | + { |
152 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for replication-delay\n")); |
153 | + exit(-1); |
154 | + } |
155 | + } |
156 | + |
157 | + if (vm.count("additional-mem-pool-size")) |
158 | + { |
159 | + if (innobase_additional_mem_pool_size < 512*1024L || innobase_additional_mem_pool_size > LONG_MAX) |
160 | + { |
161 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for additional-mem-pool-size\n")); |
162 | + exit(-1); |
163 | + } |
164 | + |
165 | + innobase_additional_mem_pool_size/= 1024; |
166 | + innobase_additional_mem_pool_size*= 1024; |
167 | + } |
168 | + |
169 | + if (vm.count("commit-concurrency")) |
170 | + { |
171 | + if (srv_replication_delay > 1000) |
172 | + { |
173 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for commit-concurrency\n")); |
174 | + exit(-1); |
175 | + } |
176 | + } |
177 | + |
178 | + if (vm.count("concurrency-tickets")) |
179 | + { |
180 | + if (srv_n_free_tickets_to_enter < 1L || srv_n_free_tickets_to_enter > (unsigned long)~0L) |
181 | + { |
182 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for concurrency-tickets\n")); |
183 | + exit(-1); |
184 | + } |
185 | + } |
186 | + |
187 | + if (vm.count("file-io-threads")) |
188 | + { |
189 | + if (innobase_file_io_threads < 4 || innobase_file_io_threads > 64) |
190 | + { |
191 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for file-io-threads\n")); |
192 | + exit(-1); |
193 | + } |
194 | + } |
195 | + |
196 | + if (vm.count("read-io-threads")) |
197 | + { |
198 | + if (innobase_read_io_threads < 1 || innobase_read_io_threads > 64) |
199 | + { |
200 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for read-io-threads\n")); |
201 | + exit(-1); |
202 | + } |
203 | + } |
204 | + |
205 | + if (vm.count("write-io-threads")) |
206 | + { |
207 | + if (innobase_write_io_threads < 1 || innobase_write_io_threads > 64) |
208 | + { |
209 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for write-io-threads\n")); |
210 | + exit(-1); |
211 | + } |
212 | + } |
213 | + |
214 | + if (vm.count("force-recovery")) |
215 | + { |
216 | + if (innobase_force_recovery > 6) |
217 | + { |
218 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for force-recovery\n")); |
219 | + exit(-1); |
220 | + } |
221 | + } |
222 | + |
223 | + if (vm.count("log-buffer-size")) |
224 | + { |
225 | + if (innobase_log_buffer_size < 256*1024L || innobase_log_buffer_size > LONG_MAX) |
226 | + { |
227 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for log-file-size\n")); |
228 | + exit(-1); |
229 | + } |
230 | + |
231 | + innobase_log_buffer_size/= 1024; |
232 | + innobase_log_buffer_size*= 1024; |
233 | + } |
234 | + |
235 | + if (vm.count("log-file-size")) |
236 | + { |
237 | + if (innobase_log_file_size < 1*1024*1024L || innobase_log_file_size > INT64_MAX) |
238 | + { |
239 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for log-file-size\n")); |
240 | + exit(-1); |
241 | + } |
242 | + |
243 | + innobase_log_file_size/= 1024*1024L; |
244 | + innobase_log_file_size*= 1024*1024L; |
245 | + } |
246 | + |
247 | + if (vm.count("log-files-in-group")) |
248 | + { |
249 | + if (innobase_log_files_in_group < 2 || innobase_log_files_in_group > 100) |
250 | + { |
251 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for log-files-in-group\n")); |
252 | + exit(-1); |
253 | + } |
254 | + } |
255 | + |
256 | + if (vm.count("mirrored-log-groups")) |
257 | + { |
258 | + if (innobase_mirrored_log_groups < 1 || innobase_mirrored_log_groups > 10) |
259 | + { |
260 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for mirrored-log-groups\n")); |
261 | + exit(-1); |
262 | + } |
263 | + } |
264 | + |
265 | + if (vm.count("open-files")) |
266 | + { |
267 | + if (innobase_open_files < 10L || innobase_open_files > LONG_MAX) |
268 | + { |
269 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for open-files\n")); |
270 | + exit(-1); |
271 | + } |
272 | + } |
273 | + |
274 | + if (vm.count("sync-spin-loops")) |
275 | + { |
276 | + if (srv_n_spin_wait_rounds > (unsigned long)~0L) |
277 | + { |
278 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for sync-spin-loops\n")); |
279 | + exit(-1); |
280 | + } |
281 | + } |
282 | + |
283 | + if (vm.count("spin-wait-delay")) |
284 | + { |
285 | + if (srv_spin_wait_delay > (unsigned long)~0L) |
286 | + { |
287 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for spin-wait-delay\n")); |
288 | + exit(-1); |
289 | + } |
290 | + } |
291 | + |
292 | + if (vm.count("thread-concurrency")) |
293 | + { |
294 | + if (srv_thread_concurrency > 1000) |
295 | + { |
296 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for thread-concurrency\n")); |
297 | + exit(-1); |
298 | + } |
299 | + } |
300 | + |
301 | + if (vm.count("thread-sleep-delay")) |
302 | + { |
303 | + if (srv_thread_sleep_delay > (unsigned long)~0L) |
304 | + { |
305 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for thread-sleep-delay\n")); |
306 | + exit(-1); |
307 | + } |
308 | + } |
309 | + |
310 | + if (vm.count("data-file-path")) |
311 | + { |
312 | + innobase_data_file_path= strdup(vm["data-file-path"].as<string>().c_str()); |
313 | + } |
314 | + |
315 | + else |
316 | + { |
317 | + innobase_data_file_path= NULL; |
318 | + } |
319 | + |
320 | + if (vm.count("version")) |
321 | + { |
322 | + innodb_version_str= strdup(vm["version"].as<string>().c_str()); |
323 | + } |
324 | + |
325 | + else |
326 | + { |
327 | + innodb_version_str= strdup(INNODB_VERSION_STR); |
328 | + } |
329 | + |
330 | + if (vm.count("change-buffering")) |
331 | + { |
332 | + innobase_change_buffering= strdup(vm["change-buffering"].as<string>().c_str()); |
333 | + } |
334 | + |
335 | + else |
336 | + { |
337 | + innobase_change_buffering= NULL; |
338 | + } |
339 | + |
340 | + if (vm.count("read-ahead-threshold")) |
341 | + { |
342 | + if (srv_read_ahead_threshold > 64) |
343 | + { |
344 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for read-ahead-threshold\n")); |
345 | + exit(-1); |
346 | + } |
347 | + } |
348 | + |
349 | + if (vm.count("support-xa")) |
350 | + { |
351 | + (SessionVAR(NULL,support_xa))= vm["support-xa"].as<bool>(); |
352 | + } |
353 | + |
354 | + if (vm.count("table-locks")) |
355 | + { |
356 | + (SessionVAR(NULL,table_locks))= vm["table-locks"].as<bool>(); |
357 | + } |
358 | + |
359 | + if (vm.count("strict-mode")) |
360 | + { |
361 | + (SessionVAR(NULL,strict_mode))= vm["strict-mode"].as<bool>(); |
362 | + } |
363 | + |
364 | + if (vm.count("lock-wait-timeout")) |
365 | + { |
366 | + if (vm["lock-wait-timeout"].as<unsigned long>() < 1 || vm["lock-wait-timeout"].as<unsigned long>() > 1024*1024*1024) |
367 | + { |
368 | + errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for lock-wait-timeout\n")); |
369 | + exit(-1); |
370 | + } |
371 | + |
372 | + (SessionVAR(NULL,lock_wait_timeout))= vm["lock-wait-timeout"].as<unsigned long>(); |
373 | + } |
374 | |
375 | innodb_engine_ptr= actuall_engine_ptr= new InnobaseEngine(innobase_engine_name); |
376 | |
377 | @@ -8582,6 +8928,154 @@ |
378 | "trigger a readahead.", |
379 | NULL, NULL, 56, 0, 64, 0); |
380 | |
381 | +static void init_options(drizzled::module::option_context &context) |
382 | +{ |
383 | + context("checksums", |
384 | + po::value<bool>(&innobase_use_checksums)->default_value(true)->zero_tokens(), |
385 | + "Enable InnoDB checksums validation (enabled by default). Disable with --skip-innodb-checksums."); |
386 | + context("data-home-dir", |
387 | + po::value<string>(), |
388 | + "The common part for InnoDB table spaces."); |
389 | + context("doublewrite", |
390 | + po::value<bool>(&innobase_use_doublewrite)->default_value(true)->zero_tokens(), |
391 | + "Enable InnoDB doublewrite buffer (enabled by default). Disable with --skip-innodb-doublewrite."); |
392 | + context("io-capacity", |
393 | + po::value<unsigned long>(&srv_io_capacity)->default_value(200), |
394 | + "Number of IOPs the server can do. Tunes the background IO rate"); |
395 | + context("fast-shutdown", |
396 | + po::value<unsigned long>(&innobase_fast_shutdown)->default_value(1), |
397 | + "Speeds up the shutdown process of the InnoDB storage engine. Possible values are(faster) or 2 (fastest - crash-like)."); |
398 | + context("file-per-table", |
399 | + po::value<bool>(&srv_file_per_table)->default_value(false)->zero_tokens(), |
400 | + "Stores each InnoDB table to an .ibd file in the database dir."); |
401 | + context("file-format", |
402 | + po::value<string>(), |
403 | + "File format to use for new tables in .ibd files."); |
404 | + context("file-format-check", |
405 | + po::value<string>(), |
406 | + "The highest file format in the tablespace."); |
407 | + context("flush-log-at-trx-commit", |
408 | + po::value<unsigned long>(&srv_flush_log_at_trx_commit)->default_value(1), |
409 | + "Set to 0 (write and flush once per second), 1 (write and flush at each commit) or 2 (write at commit, flush once per second)."); |
410 | + context("flush-method", |
411 | + po::value<string>(), |
412 | + "With which method to flush data."); |
413 | + context("log-arch-dir", |
414 | + po::value<string>(), |
415 | + "Where full logs should be archived."); |
416 | + context("log-archive", |
417 | + po::value<bool>(&innobase_log_archive)->default_value(false)->zero_tokens(), |
418 | + "Set to 1 if you want to have logs archived."); |
419 | + context("log-group-home-dir", |
420 | + po::value<string>(), |
421 | + "Path to InnoDB log files."); |
422 | + context("max-dirty-pages-pct", |
423 | + po::value<unsigned long>(&srv_max_buf_pool_modified_pct)->default_value(75), |
424 | + "Percentage of dirty pages allowed in bufferpool."); |
425 | + context("adaptive-flushing", |
426 | + po::value<bool>(&srv_adaptive_flushing)->default_value(true)->zero_tokens(), |
427 | + "Attempt flushing dirty pages to avoid IO bursts at checkpoints."); |
428 | + context("max-purge-lag", |
429 | + po::value<unsigned long>(&srv_max_purge_lag)->default_value(0), |
430 | + "Desired maximum length of the purge queue (0 = no limit)"); |
431 | + context("status-file", |
432 | + po::value<bool>(&innobase_create_status_file)->default_value(false)->zero_tokens(), |
433 | + "Enable SHOW INNODB STATUS output in the innodb_status.<pid> file"); |
434 | + context("stats-on-metadata", |
435 | + po::value<bool>(&innobase_stats_on_metadata)->default_value(true)->zero_tokens(), |
436 | + "Enable statistics gathering for metadata commands such as SHOW TABLE STATUS (on by default)"); |
437 | + context("stats-sample-pages", |
438 | + po::value<uint64_t>(&srv_stats_sample_pages)->default_value(8), |
439 | + "The number of index pages to sample when calculating statistics (default 8)"); |
440 | + context("adaptive-hash-index", |
441 | + po::value<bool>(&btr_search_enabled)->default_value(true)->zero_tokens(), |
442 | + "Enable InnoDB adaptive hash index (enabled by default)"); |
443 | + context("replication-delay", |
444 | + po::value<unsigned long>(&srv_replication_delay)->default_value(0), |
445 | + "Replication thread delay (ms) on the slave server if innodb_thread_concurrency is reached (0 by default)"); |
446 | + context("additional-mem-pool-size", |
447 | + po::value<long>(&innobase_additional_mem_pool_size)->default_value(8*1024*1024L), |
448 | + "Size of a memory pool InnoDB uses to store data dictionary information and other internal data structures."); |
449 | + context("autoextend-increment", |
450 | + po::value<uint32_t>(&srv_auto_extend_increment)->default_value(8L), |
451 | + "Data file autoextend increment in megabytes"); |
452 | + context("buffer-pool-size", |
453 | + po::value<int64_t>(&innobase_buffer_pool_size)->default_value(8*1024*1024L), |
454 | + "The size of the memory buffer InnoDB uses to cache data and indexes of its tables."); |
455 | + context("commit-concurrency", |
456 | + po::value<unsigned long>(&innobase_commit_concurrency)->default_value(0), |
457 | + "Helps in performance tuning in heavily concurrent environments."); |
458 | + context("concurrency-tickets", |
459 | + po::value<unsigned long>(&srv_n_free_tickets_to_enter)->default_value(500L), |
460 | + "Number of times a thread is allowed to enter InnoDB within the same SQL query after it has once got the ticket"); |
461 | + context("file-io-threads", |
462 | + po::value<long>(&innobase_file_io_threads)->default_value(4), |
463 | + "Number of file I/O threads in InnoDB."); |
464 | + context("read-io-threads", |
465 | + po::value<unsigned long>(&innobase_read_io_threads)->default_value(4), |
466 | + "Number of background read I/O threads in InnoDB."); |
467 | + context("write-io-threads", |
468 | + po::value<unsigned long>(&innobase_write_io_threads)->default_value(4), |
469 | + "Number of background write I/O threads in InnoDB."); |
470 | + context("force-recovery", |
471 | + po::value<long>(&innobase_force_recovery)->default_value(0), |
472 | + "Helps to save your data in case the disk image of the database becomes corrupt."); |
473 | + context("log-buffer-size", |
474 | + po::value<long>(&innobase_log_buffer_size)->default_value(8*1024*1024L), |
475 | + "The size of the buffer which InnoDB uses to write log to the log files on disk."); |
476 | + context("log-file-size", |
477 | + po::value<int64_t>(&innobase_log_file_size)->default_value(20*1024*1024L), |
478 | + "The size of the buffer which InnoDB uses to write log to the log files on disk."); |
479 | + context("log-files-in-group", |
480 | + po::value<long>(&innobase_log_files_in_group)->default_value(2), |
481 | + "Number of log files in the log group. InnoDB writes to the files in a circular fashion. Value 3 is recommended here."); |
482 | + context("mirrored-log-groups", |
483 | + po::value<long>(&innobase_mirrored_log_groups)->default_value(1), |
484 | + "Number of identical copies of log groups we keep for the database. Currently this should be set to 1."); |
485 | + context("open-files", |
486 | + po::value<long>(&innobase_open_files)->default_value(300L), |
487 | + "How many files at the maximum InnoDB keeps open at the same time."); |
488 | + context("sync-spin-loops", |
489 | + po::value<unsigned long>(&srv_n_spin_wait_rounds)->default_value(30L), |
490 | + "Count of spin-loop rounds in InnoDB mutexes (30 by default)"); |
491 | + context("spin-wait-delay", |
492 | + po::value<unsigned long>(&srv_spin_wait_delay)->default_value(6L), |
493 | + "Maximum delay between polling for a spin lock (6 by default)"); |
494 | + context("thread-concurrency", |
495 | + po::value<unsigned long>(&srv_thread_concurrency)->default_value(0), |
496 | + "Helps in performance tuning in heavily concurrent environments. Sets the maximum number of threads allowed inside InnoDB. Value 0 will disable the thread throttling."); |
497 | + context("thread-sleep-delay", |
498 | + po::value<unsigned long>(&srv_thread_sleep_delay)->default_value(10000L), |
499 | + "Time of innodb thread sleeping before joining InnoDB queue (usec). Value 0 disable a sleep"); |
500 | + context("data-file-path", |
501 | + po::value<string>(), |
502 | + "Path to individual files and their sizes."); |
503 | + context("version", |
504 | + po::value<string>(), |
505 | + "InnoDB version"); |
506 | + context("use-sys-malloc", |
507 | + po::value<bool>(&srv_use_sys_malloc)->default_value(true)->zero_tokens(), |
508 | + "Use OS memory allocator instead of InnoDB's internal memory allocator"); |
509 | + context("change-buffering", |
510 | + po::value<string>(), |
511 | + "Buffer changes to reduce random access: OFF, ON, inserting, deleting, changing, or purging."); |
512 | + context("read-ahead-threshold", |
513 | + po::value<unsigned long>(&srv_read_ahead_threshold)->default_value(56), |
514 | + "Number of pages that must be accessed sequentially for InnoDB to trigger a readahead."); |
515 | + context("support-xa", |
516 | + po::value<bool>()->default_value(true)->zero_tokens(), |
517 | + "Enable InnoDB support for the XA two-phase commit"); |
518 | + context("table-locks", |
519 | + po::value<bool>()->default_value(true)->zero_tokens(), |
520 | + "Enable InnoDB locking in LOCK TABLES"); |
521 | + context("strict-mode", |
522 | + po::value<bool>()->default_value(false)->zero_tokens(), |
523 | + "Use strict mode when evaluating create options."); |
524 | + context("lock-wait-timeout", |
525 | + po::value<unsigned long>()->default_value(50), |
526 | + "Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back. Values above 100000000 disable the timeout."); |
527 | +} |
528 | + |
529 | static drizzle_sys_var* innobase_system_variables[]= { |
530 | DRIZZLE_SYSVAR(additional_mem_pool_size), |
531 | DRIZZLE_SYSVAR(autoextend_increment), |
532 | @@ -8646,7 +9140,7 @@ |
533 | PLUGIN_LICENSE_GPL, |
534 | innobase_init, /* Plugin Init */ |
535 | innobase_system_variables, /* system variables */ |
536 | - NULL /* reserved */ |
537 | + init_options /* reserved */ |
538 | } |
539 | DRIZZLE_DECLARE_PLUGIN_END; |
540 | |
541 | |
542 | === modified file 'po/POTFILES.in' |
543 | --- po/POTFILES.in 2010-07-27 00:41:57 +0000 |
544 | +++ po/POTFILES.in 2010-08-10 11:52:47 +0000 |
545 | @@ -66,6 +66,7 @@ |
546 | plugin/filtered_replicator/filtered_replicator.cc |
547 | plugin/hello_events/hello_events.cc |
548 | plugin/innobase/handler/data_dictionary.cc |
549 | +plugin/innobase/handler/ha_innodb.cc |
550 | plugin/innobase/ut/ut0auxconf_pause.c |
551 | plugin/logging_gearman/logging_gearman.cc |
552 | plugin/logging_query/logging_query.cc |
553 | |
554 | === modified file 'tests/t/unsafe_binlog_innodb-master.opt' |
555 | --- tests/t/unsafe_binlog_innodb-master.opt 2010-03-15 16:12:10 +0000 |
556 | +++ tests/t/unsafe_binlog_innodb-master.opt 2010-08-10 11:52:47 +0000 |
557 | @@ -1,1 +1,1 @@ |
558 | ---innodb_lock_wait_timeout=1 |
559 | +--innodb.lock-wait-timeout=1 |
560 | |
561 | === modified file 'tests/test-run.pl' |
562 | --- tests/test-run.pl 2010-08-02 14:35:48 +0000 |
563 | +++ tests/test-run.pl 2010-08-10 11:52:47 +0000 |
564 | @@ -2592,9 +2592,7 @@ |
565 | $idx > 0 ? $idx + 101 : 1); |
566 | |
567 | mtr_add_arg($args, |
568 | - "%s--loose-innodb_data_file_path=ibdata1:20M:autoextend", $prefix); |
569 | - |
570 | - mtr_add_arg($args, "%s--loose-innodb-lock-wait-timeout=5", $prefix); |
571 | + "%s--innodb.data-file-path=ibdata1:20M:autoextend", $prefix); |
572 | |
573 | } |
574 | else |
The UNIV_LOG_ARCHIVE #ifdef should not be removed. It's not something we want end users seeing. It is *always* a bad idea to set this (unless you're an InnoDB hacker).
I don't see innobase_ data_home_ dir being freed (or a bunch of the other ones actually)
innobase_ additional_ mem_pool_ size/= 1024; additional_ mem_pool_ size*= 1024;
166 + innobase_
you meant innobase_ additional_ mem_pool_ size -= innobase_ additional_ mem_pool_ size % 1024 ?
as the above just looks a bit odd.
"Enable InnoDB checksums validation (enabled by default). Disable with --skip- innodb- checksums.
needs to be fixed
+ "Speeds up the shutdown process of the InnoDB storage engine. Possible values are(faster) or 2 (fastest - crash-like).");
missing the "1"