Xaprb

Stay curious!

Maatkit version 1972 released

with 4 comments

Download Maatkit

Before I tell you what’s new, let me tell you how cool I think it would be if Maatkit were voted Sourceforge.net project of the year. Just something to think about :-) I suggest the “Best Tool or Utility for SysAdmins” category. You can actually click the Back button and nominate it for several categories. Not that anyone would do that, of course.

Also, if anyone wants to jump in and help out with bug fixes and new features, please, by all means. Maatkit is a true open-source project as well as being Free Software. If you can follow coding conventions and understand Perl, I’m a very benevolent dictator and would gladly grant commit rights. As it turns out, since I’ve joined Percona I’m interested in a whole different set of things, and a lot of the itches I was scratching with Maatkit before are no longer mine to scratch. Some of my direct motivation to improve Maatkit is therefore reduced. (To those of you who have sent me gifts from my wishlist, thank you, I really appreciate it. My latest is the score to Crimson Tide, which is just fastastic.)

This release is a bugfix and maintenance release. Many of the changes are minor tweaks to shared code. I’ve also partially moved to a new documentation system that will ensure the embedded documentation is authoritative and accurate.

Here’s the change log:

Changelog for mk-archiver:

2008-06-02: version 1.0.9

   * Updated common code.

Changelog for mk-deadlock-logger:

2008-06-02: version 1.0.10

   * Generate command-line options from POD.

Changelog for mk-duplicate-key-checker:

2008-06-02: version 1.1.6

   * Updated common code.

Changelog for mk-find:

2008-06-02: version 0.9.11

   * Updated common code.

Changelog for mk-heartbeat:

2008-06-02: version 1.0.9

   * Get command-line options from POD.
   * --check output contained leading whitespace which broke Cacti.

Changelog for mk-parallel-dump:

2008-06-02: version 1.0.8

   * System commands did not use double quotes on Windows (bug #1949922).
   * Added --stopslave to run STOP SLAVE during the dump (bug #1923627).
   * --ignoreengine worked only when --tab was specified (bug #1851461).

Changelog for mk-parallel-restore:

2008-06-02: version 1.0.7

   * .trg files were sometimes rejected from loading.
   * Command-line options are generated from the POD.

Changelog for mk-query-profiler:

2008-06-02: version 1.1.10

   * Generate command-line options from POD.

Changelog for mk-show-grants:

2008-06-02: version 1.0.10

   * Create command-line options from POD.

Changelog for mk-slave-delay:

2008-06-02: version 1.0.7

   * Updated the documentation to use POD.
   * The slave could wait forever if the I/O thread was stopped.
   * The slave could wait forever on the master's last event (bug #1959496).

Changelog for mk-slave-find:

2008-06-02: version 1.0.1

   * Updated common code.

Changelog for mk-slave-move:

2008-06-02: version 0.9.1

   * Command-line parsing was removing an expected DSN (bug #1960142).
   * The slave was not stopped before CHANGE MASTER TO (bug #1960142).
   * DSNs without a port caused a crash (bug #1960142).
   * Converted to use POD for command-line options.

Changelog for mk-slave-prefetch:

2008-06-02: version 1.0.2

   * Add the --progress option.
   * Add more error reporting and the --errors option.
   * Abstract USE queries when fingerprinting them.
   * mysqlbinlog errors were not detected.
   * Handle queries of the form INSERT ... VALUE().
   * Strip comments from queries when normalizing them.

Changelog for mk-slave-restart:

2008-06-02: version 1.0.7

   * Updated common code.

Changelog for mk-table-checksum:

2008-06-02: version 1.1.27

   * Update documentation, generate command-line options from POD.
   * Added --trim to compare pre-5.0 and 5.0+ VARCHAR values consistently.

Changelog for mk-table-sync:

2008-06-02: version 1.0.7

   * Added NO_AUTO_VALUE_ON_ZERO to @@SQL_MODE (bug #1919897).
   * Added --trim to compare pre-5.0 and 5.0+ VARCHAR values consistently.

Changelog for mk-visual-explain:

2008-06-02: version 1.0.8

   * Updated common code.

Written by Xaprb

June 2nd, 2008 at 12:02 am

4 Responses to 'Maatkit version 1972 released'

Subscribe to comments with RSS or TrackBack to 'Maatkit version 1972 released'.

  1. No need to hit the back button - once you nominate there’s link to “Nominate this project again” right there…

    I felt obliged to test the link. It works. Then I tested it again just to be certain I was getting consistent results. :-)

    Gregory Haase

    2 Jun 08 at 9:18 am

  2. baron,I got an error ,when I test with mk-table-sync, the error is “Chunk size is too small” ,I don’t know why.

    Shell> mk-table-sync –print –verbose –algorithm=chunk –chunksize=500 h=172.29.78.11,u=root,p=123456,D=orders h=172.29.78.12,u=root,p=123456,D=orders

    # Syncing A=utf8,D=orders,h=172.29.78.11,p=…,u=robin_repl
    # DELETE REPLACE INSERT UPDATE ALGORITHM DATABASE.TABLE
    # 0 0 0 0 Chunk orders.c2cClassRelation
    # 0 0 0 0 Chunk orders.c2cClassRelation_new
    # 0 0 0 0 Chunk orders.commodity_state_1
    Cannot chunk orders.db1_comm_dis at /usr/local/bin/mk-table-sync line 2499. while doing orders.db1_comm_dis
    # 0 0 0 0 Chunk orders.lcp
    # 0 0 0 0 Chunk orders.t_auction_bid_info_000
    # 0 0 0 0 Chunk orders.t_auction_bid_info_004
    # 0 0 0 0 Chunk orders.t_auction_bid_info_008
    Chunk size is too small: 1.18207 !> 1181940640153487 while doing orders.t_commodity_0260
    Chunk size is too small: 2.30805 !> 2307849136941054 while doing orders.t_commodity_0264
    Chunk size is too small: 3.43416 !> 3433929432646923 while doing orders.t_commodity_0268
    Chunk size is too small: 4.55979 !> 4559614590861196 while doing orders.t_commodity_0272
    Chunk size is too small: 5.68630 !> 5686120088967910 while doing orders.t_commodity_0276
    Chunk size is too small: 6.81156 !> 6811410109575803 while doing orders.t_commodity_0280
    Chunk size is too small: 7.93760 !> 7937365851038979 while doing orders.t_commodity_0284
    Chunk size is too small: 9.06345 !> 9063235693081813 while doing orders.t_commodity_0288
    Chunk size is too small: 1.01893 !> 10189217204375279 while doing orders.t_commodity_0292
    Chunk size is too small: 1.13153 !> 11315121406191048 while doing orders.t_commodity_0296
    Chunk size is too small: 1.24411 !> 12440922528698754 while doing orders.t_commodity_0300

    :)

    robinzhao

    15 Jul 08 at 6:39 am

  3. mysql> desc t_commodity_0300;
    ———————– ———————- —— —– ——————— ——-
    | Field | Type | Null | Key | Default | Extra |
    ———————– ———————- —— —– ——————— ——-
    | Fcommodity_id | bigint(20) unsigned | | PRI | 0 | |
    | Fqquin | int(10) unsigned | | MUL | 0 | |
    | Fqqnick | varchar(32) | | | | |
    | Fshopid | bigint(20) unsigned | | MUL | 0 | |
    | Ftitle | varchar(60) | | | | |
    | Fleaf_classid | int(10) unsigned | | MUL | 0 | |
    | Fshop_classid | varchar(10) | | | | |
    | Fprovince | tinyint(3) unsigned | | | 0 | |
    | Fcity | smallint(5) unsigned | | | 0 | |
    | Fcountry | int(10) unsigned | | | 0 | |
    | Fprice | int(10) unsigned | | | 0 | |
    | Fmoney_type | tinyint(3) unsigned | | | 0 | |
    | Fmain_logo_pos | varchar(60) | | | | |
    | Fnum | int(10) unsigned | | | 1 | |
    | Fnew_type | tinyint(4) | | | 0 | |
    | Fdeal_type | tinyint(4) | | | 0 | |
    | Fsupport_pay_agency | tinyint(4) | | | 0 | |
    | Fis_recommend | tinyint(4) | | | 0 | |
    | Fstate | tinyint(4) | | | 0 | |
    | Fproperty | int(10) unsigned | | | 0 | |
    | Fbrand | varchar(32) | | | | |
    | Fspec | varchar(32) | | | | |
    | Fproducer | varchar(64) | | | | |
    | Fdesc_file_pos | varchar(60) | | | | |
    | Fprice_to_add | int(10) unsigned | | | 0 | |
    | Fadd_time | datetime | | | 0000-00-00 00:00:00 | |
    | Fupload_time | datetime | | | 0000-00-00 00:00:00 | |
    | Fsold_num | int(10) unsigned | | | 0 | |
    | Fbuy_cnt | int(10) unsigned | | | 0 | |
    | Fvalid_duration | int(10) unsigned | | | 0 | |

    robinzhao

    15 Jul 08 at 6:41 am

  4. I take follow from your code:

    if ( $col_type =~ m/(?:|int|year|float|double|decimal)$/ ) {
    $start_point = $args{min};
    $end_point = $args{max};
    $range_func = ‘range_num’;
    }
    the database I test’s PK is Fcommodity_id (bigint(20) unsigned)

    robinzhao

    15 Jul 08 at 6:47 am

Leave a Reply