Brian Fraser
7b12dbec64
Work in progress v3: Working interactive mode, initial documentation.
...
With this most of the interactive mode should be working.
pt_diskstats.pm has the documentation and can be used for testing,
which should be in the next commit.
This commit also includes the revamped command line options.
2011-12-15 20:26:55 -03:00
Daniel Nichter
f3ac1b20c2
Add usage_or_errors() to parse_options.sh.
2011-12-15 12:01:22 -07:00
Daniel Nichter
92c8635c4a
Fix and test safeguards.sh. Implement disk space+margin check.
2011-12-14 16:12:43 -07:00
Brian Fraser
0fd09e8f6e
Work in progress v2: Redesign pt-diskstats in Perl.
2011-12-13 14:53:05 -03:00
Daniel Nichter
0cfef9134c
Collect proclist in loop.
2011-12-08 11:45:16 -07:00
Daniel Nichter
c486bf8461
Remove ON_EXIT.
2011-12-07 10:48:47 -07:00
Daniel Nichter
578896c217
Add daemon.sh.
2011-12-07 10:37:10 -07:00
Daniel Nichter
f6306c9ec0
Test collect.sh. Use --run-time instead of --interval for collect loop. Fix and require per-test test names in util/test-bash-functions. Fix OPT_ERR in parse_options.sh.
2011-12-06 13:23:47 -07:00
Daniel Nichter
c804079c0d
Add Bash libs collect.sh (pt-collect internals), safeguards.sh, and alt_cmds.sh.
2011-12-05 13:48:54 -07:00
Daniel Nichter
75d2c99d45
Parse option specs, allow negating with --no-, add more tests.
2011-12-02 11:31:31 -07:00
Daniel Nichter
173085e823
Rename tmpdir funcs. Include pid in tmpdir name.
2011-11-28 11:16:23 -07:00
Daniel Nichter
ff78656859
Fix various resume issues.
2011-11-17 11:20:00 -07:00
Daniel Nichter
619cda713f
Handle resume in NibbleIterator.
2011-11-15 11:55:07 -07:00
Daniel Nichter
fbb80008de
Add OobNibbleIterator.pm.
2011-11-14 17:49:48 -07:00
Daniel Nichter
2f9ab4081a
Fix prepared report for statements without corresponding prep or exec.
2011-11-08 12:53:50 -07:00
Daniel Nichter
5465634885
Fix --resume --ignore-tables.
2011-11-08 10:20:59 -07:00
Daniel Nichter
c45676abf1
Fix some lib/ tests.
2011-11-02 10:20:07 -06:00
Daniel Nichter
f2b644ba72
More parse_options tests. Make --opt yes have value "yes" instead of "1". Change ok() to cmd_ok() in test-bash-functions. Mimic Perl modulue headers in Bash libs so update-modules will work with the latter.
2011-10-28 11:08:59 -06:00
Daniel Nichter
1ec666de0e
Add Bash libs tmpdir and log_warn_die. Docu parse_options. Don't use TMPDIR in test-bash-functions; add ok() to test-bash-functions.
2011-10-27 11:56:58 -06:00
Daniel Nichter
1ae8661271
First Bash parse_options lib with tests.
2011-10-26 10:50:55 -06:00
Daniel Nichter
79beac6eb7
Add MySQLStatusWaiter.pm.
2011-10-19 20:07:02 -06:00
Daniel Nichter
c4db7c0633
Test and fix very small --chunk-time. Report immediately when a slave is stopped. Add short form -q for --quiet. Report very slow checksums once for each table. Use Cxn::name() instead of Cxn::dsn()->{n}; remove n from DSNParser; make cxn's name @@hostname by default, else stringified DSN parts.
2011-10-19 11:27:19 -06:00
Daniel Nichter
8d2259e5b3
Fix --ignore-columns in NibbleIterator. Increase test coverage to 93%.
2011-10-18 09:32:48 -06:00
Daniel Nichter
07420ff78e
Don't crash on empty tables with --chunk-size-limit=0. Don't crash trying to print MySQL warning. Finish updating (all the important) tests.
2011-10-15 17:47:56 -06:00
Daniel Nichter
48fb4baa7c
Use 'h=localhost' if no DSN or DSN options given. Remove unused DSN parts (D and t) and don't copy some parts. Move issue_947.t tests into standard_options.t and remove issue_947.t.
2011-10-14 07:59:43 -06:00
Daniel Nichter
964bb094a0
Get row estimate from NibbleIterator. Use user's index over MySQL's index when --where is given.
2011-10-13 09:23:53 -06:00
Daniel Nichter
28fa7d62c2
Support --where in NibbleIterator. If --where, prefer index that MySQL wants to use. Keep SHOW TABLE STATUS from SchemaIterator and re-use it in NibbleIterator (avoids double execution).
2011-10-13 08:49:32 -06:00
Daniel Nichter
083fb1b8ca
Make --explain cummulative. Update char_chunking.t. Reword checksum query comments.
2011-10-12 11:22:13 -06:00
Daniel Nichter
937a514b49
Add Cxn.t.
2011-10-11 10:31:25 -06:00
Daniel Nichter
b2f92391a7
Fatal error if slave dies. Make Cxn::connect() if dbh id dead. Sort slave lag properly and use Cxn instead of dbh in ReplicaLagWaiter. Check master cxn before keepalive. Sleep N+0.25 waiting for chunks.
2011-10-10 10:56:08 -06:00
Daniel Nichter
e2e40488c5
Add Cxn.pm. Make MasterSlave, NibbleIterator, and ReplicaLagWaiter use Cxn. Rewrite, simplify Retry.
2011-10-06 12:47:35 -06:00
Daniel Nichter
929000cfdd
Partial --resume implementation (work in progress).
2011-09-28 11:33:12 -06:00
Daniel Nichter
25882d49e7
Resume for SchemaIterator. Use only next_lb; don't need first_lb in NibbleIterator.
2011-09-27 13:06:24 -06:00
Daniel Nichter
83bbe45187
Simplify NibbleIterator callbacks. Pass args to init callback so caller can check ub_sth.
2011-09-27 08:21:34 -06:00
Daniel Nichter
c9e8444166
Handle one-chunk tables. Chunk tables w/o indexes if they're small enough. Check index for every chunk. Check chunk size if ub and next_lb are equal.
2011-09-26 11:38:35 -06:00
Daniel Nichter
eff835ffe7
Detect infinite loops using only lower boundaries.
2011-09-26 08:53:22 -06:00
Daniel Nichter
9f3e05691c
Detect infinite loops. Use best non-unique index. Disable chunk size limit if chunk index is unique.
2011-09-23 17:33:23 -06:00
Daniel Nichter
361c958a66
Auto-skip mysql.slow|general_log tables.
2011-09-23 08:07:03 -06:00
Daniel Nichter
acef6450ff
Add CleanupTask.
2011-09-22 11:45:44 -06:00
Daniel Nichter
bbae1ba9cf
Add TS to output. Don't require initial n and t.
2011-09-22 09:04:11 -06:00
Daniel Nichter
f6fb8b44bd
Decompose ReplicaLagLimiter into ReplicaLagWaiter and WeightedAvgRate. Don't use OptionParser in NibbleIterator; use chunk_size arg instead.
2011-09-21 11:19:49 -06:00
Daniel Nichter
d979821efe
Rewrite ReplicaLagLimiter::wait().
2011-09-21 10:30:33 -06:00
Daniel Nichter
412e9e4e18
Allow initial values to be zero for ReplicaLagLimiter::new(). Return 1/0/death from ReplicaLagLimiter::wait().
2011-09-20 11:28:00 -06:00
Daniel Nichter
a19dd0b16c
Simplify ReplicaLagLimiter::update().
2011-09-20 08:59:33 -06:00
Daniel Nichter
26b99b20ad
Use weighted exp avg instead of moving avg for ReplicaLagLimiter::update(). Use "LIMIT ?, 2" for ub_sql/sth in NibbleIterator.
2011-09-19 11:41:41 -06:00
Daniel Nichter
b1e01be2c2
Finish, test, and docu ReplicaLagLimiter.
2011-09-19 09:06:30 -06:00
Daniel Nichter
006b93ddf9
Create ReplicaLagLimiter. Replace --max-lag, --check-interval, and --check-slave-lag with --replica-lag and --replica-lag-dsn. Use TableParser::get_table_status() in NibbleItertor. Eval SHOW TABLE STATUS. Auto-add "n" (name) part to parsed DSNs.
2011-09-16 17:35:40 -06:00
Daniel Nichter
756142c1d1
Remove MySQLDump; move get_create_table() and get_table_status() to TableParser and remove saving results in each function.
2011-09-15 09:39:32 -06:00
Daniel Nichter
d881fa0b35
Change --chunk-size to type size. Make TIME column %.3f. Make OptionParser report invalid sizes.
2011-09-14 10:40:42 -06:00
Daniel Nichter
676a7aa20f
Fix cols, sep, trim, and float precision. Re-add --columns.
2011-09-14 10:16:43 -06:00