|
Wishlist
A wishlist containing various TODO items for Maatkit
If you have input or feedback about anything you read here, there's usually a link for each's scripts discussion list thread, or you can start a new thread on the mailing list; or talk to us in #maatkit on Freenode. There is no roadmap for these items. That means we see the usefulness of the tool and we think it would be nice to have, but we have no plans to build it. Of course, things change, and we might build it in the future. If so, we'll move it off this wishlist and onto the roadmap. Binary Log ParsingSometimes a corrupted binary log causes a slave to fail, and the best we can do is skip over the corrupted bits to the start of the next intact binary log record. mysqlbinlog cannot do this, because it fails on the corrupt log. It would be nice to have a tool that can scan the file (from some offset, optionally) and find offsets that look like the beginning of binlog entries, then print these out. Parallel ReplicationFrom issue 147 : If the DBA knows there is no dependency between tables, or if the statements can be executed out of order, then replication can be parallelized. First, set replicate-wild-ignore-table=some.table in my.cnf. Then the tool should read the relay log and apply statements for those tables. There could be other conditions under which the statements could be parallelized, too. In fact, a further idea is if the statements are not order-dependent; then they could be forked and run round-robin through a number of threads. Or, you could use this technique on many tables, and assign one thread per table. (In this case it could just as easily work to have multiple instances one per table.) Compute Progress and Predict Finish TimeA tool to predict when something will finish. Copy Files In Parallel With NetcatA script to copy files in parallel with netcat. See also this blog post, an appendix in High Performance MySQL 2nd Edition, and this Advogato thread. #!/bin/bash
set -e
set -u
# #######################################################################
# Arguments
# #######################################################################
SRC=$1
DST=$2
SDIR=$3
DDIR=$4
EXCL=$5
running=0
port=12345
function copyfile () {
file=$1;
port=$2;
echo "$file, $port";
#(sleep 10; touch forked)&
#while [ ! -e forked ]; do
#echo "sleeping";
#sleep 1;
#done
#rm forked
}
for file in `ssh $SRC "du $SDIR/*" | grep -v "'$EXCL'" | sort -nr | awk '{print $2}'`; do
let port=port+1;
copyfile $file $port;
doneMake DBI and DBD::mysql optionalI wonder if we can embed a pure-perl protocol implementation so we can still talk to a server via TCP if DBD::mysql isn't installed. Another nice thing would be to use the DBD::mysql library directly instead of going through DBI, which wants everything to be prepare()d before executing -- sometimes for performance, you just want to run raw mysql_query() functions directly. Generate DataFrom issue 403: I'd like to see a script where I can ask maatkit to sample data from a source table and generate a file (or populate directly) a target table with similar data distribution. Compute and Display I/O StatsI often wish for a better way to show io statistics, see this blog post for example. I also wish I could specify a single process to watch and report the vmstat-like output for. I want all of this in a single tool, so I don't have to correlate different things. Basically I want mk-io-cpu-stat --process mysqld to watch the system as a whole, and mysqld specifically, and tell me what the heck it's really doing -- all the stuff in iostat, top, and vmstat, but broken apart instead of lumped together (for example -- don't lump writes and reads together like iostat does). |