mysql-5.1.22-stew2

New:

  • Updated NDB Compressed LCP and BACKUP patches (now with O_DIRECT support)
  • InnoDB patch for Windows that should give ~5x improvement on commits/sec (Bug31876)
  • Everything in current telco-6.3 tree (ndb ~6.3.5)
    • Lots of NDB improvements and new features over regular 5.1.
        • WL3686 Remove read before update
        • WL2680 NDB Batched Update
        • WL2679 NDB Batched Delete
        • WL4108 NDB Handler statistics
        • WL4096 NDB Realtime performance and settings
        • WL3126 and WL3127 Client and Replication bind address
        • NDB Online ALTER TABLE ADD COLUMN
        • NDB Multi-Master replication conflict resolution (limitations apply :)
        • NDB prepare for endian independence
        • NDB micro-gcp (reduces replication lag)
        • NDB SendBuffer throttling
        • NDB MySQL Server TC selection (improve performance)

    Old (In previous patchset too):

    • Remove ndb_use_exact_count giving up to 300% performance improvements on Joins in NDB
    • INFORMATION_SCHEMA table for NDB node status
    • NDB Cluster Log as CSV file (suitable for ENGINE=CSV)
    • Skeleton Engine (build from storage/skeleton)
    • MyHTTP Engine (build from storage/myhttp)
    • PBXT Engine (build from storage/pbxt)
    • Make ARCHIVE faster at compressing (at slight expense of space usage)

    Availability:

    • Patch (apply with -p1 to mysql 5.1.22) 4.0 MB
      • Applies cleanly on a BK source tree… a few files don’t exist in the tarball on dev.mysql.com (due to the way it’s built)… so when asked for “file to patch” just hit enter and then choose y to skip that patch.
    • README (list of patches, descriptions) 13kb
    • quilt patch series tarball (individual patches) 4.1MB
    • diffstat 228k

    Feedback much appreciated.

    Speaking at VITTA (Victorian IT Teachers Association Inc) Conference

    I’m speaking at the upcoming VITTA conference.

    Title:MySQL database administration for non DBAs

    Abstract: MySQL is incredibly ubiquitous. MySQL database administrators are not everywhere; MySQL is. Often MySQL is run to power a small web site or two, an application or two, or run on a machine purely for someone else’s use (and the install made MySQL just work so you don’t have to care). This session goes over the things you need to know about your MySQL installations to keep them healthy without burdening you with work, including MySQL Basics, installation, security, backup, restore, performance and upgrades.

    When: 12:15 PM, Wednesday 21 November 2007

    Should be fun!

    Practical MythTV for $14.95US

    Julie at Apress let me know that over at Bookpool: Practical MythTV: Building a PVR and Media Center PC they’re having a big sale of Apress titles, including Practical MythTV.

    So over there now for (a bit) less than $15US you can get Practical MythTV. Pretty neat. So everybody should go buy two copies (buy one get one free… right? :)

    At some point soon, I’ll even post how I go with upgrading my MythTV box to Ubuntu 7.10 (Gutsy)… once I gather up the courage to do so :)

    Problems with Tracker (and why I’m back to Beagle)

    1. If you have more than 8192 directories, it can’t monitor them (max inotify limit)
    2. No search results
    3. access(), stat() and then lstat() called on *every* file that it’s going to index… this takes a long time.
    4. Did I mention that search doesn’t actually give you any results?
    5. Even when you run strings on the database and then search for something there, you don’t get any results
    6. Even when you search for the name of an application, you get no results.

    Everything that’s wrong (and right) with Ubuntu Gutsy

    So, I’ve upgraded two boxes: my laptop and my mail server.

    Wrong:

    • courier-imap-ssl broke. My cell phone could no longer pull mail.
      I got something like in the log:
      imapd-ssl: couriertls: connect: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
      The fix for this is to change the TLS_PROTOCOL option in /etc/courier/imapd-ssl to SSL23 (an option not listed in the “possible verions” list in the config file). So mail now works.
    • Evolution now seems to put a blank line at the top of emails when replying (before quoting the message). GRRRRRRR…
    • The Window Manager (metacity) has changed how it arranges new windows. Instead of cascading them down, so if you’re opening a bunch you can easily switch between them, it now puts them right on top of each other GGRRRRRR.
    • It set up my Xorg to *not* to X monitor hotpluggy goodness. I’ve managed
    • Login seems to take a fair bit longer than before
    • Tracker
      • trackerd will index while on battery power… GRRR
      • trackerd will hog disk and CPU
      • I haven’t been able to get any results out of tracker.
      • There is no tracker-status or something to check that it hasn’t just stopped working
      • Tracker will use up all your remaining disk space… (I initially only had a few GB free.. and trackerd filled it up)
      • I haven’t actually had a query work at all. i.e. it seems to be useless. I just get a “trackerd exited with status 0”.
    • There is no “remember passphrase” button in Evolution for GPG signing anymore. I think this is now set in the global preferences… but the behaviour change is annoying.
    • The pidgin icon is different than the gaim icon in the Notification Area… this is annoying as I can never find it anymore
    • The Window List applet changed behaviour to now *not* group windows together at all… making having lots of windows open (as I often do) completely unmanagable as opposed to (previously) just annoying.

    The Awesome:

    • X monitor hotpluggy goodness (known to others as xrandr 1.2). VGA out works with the free radeon driver now! *YAY*. (I can rearrange screens using xrandr… awesome)
    • Pidgin is quite nice… the likelyhood of reply plugin is neat. More compact IM windows (also cool).
    • Syncing between Pidgin and Evolution with contacts seems to work okay now.
    • Suspend and resume still works
    • New version of f-spot – goodness!
    • New OpenOffice.org (2.3)  sucks less.
    • emacs22 (shiny)
    • New WINE does real neat stuff (such as have menu items for browse C drive, remove software)
    • Evolution doesn’t seem to leak memory as much anymore. Only 316MB RSS at the moment!
    • Lots of neat Liferea bug fixes – much nicer! (read items in the planet.linux.org.au feed stay marked read now!)

    MySQL 5.1.22(ish)-stew1

    I’ve decided to publish my patch series. The goal of the -stew patches is to collect things I find interesting and that at some point could (should) make it into the main MySQL tree (even if others don’t think so).

    It’s not designed for use in production.. I don’t really care if there’s failing test cases…. if it builds it’s perfect.

    It includes the following which could be interesting:

    • Removal of ndb_use_exact_count (performance for NDB)
    • NDB node status in an INFORMATION_SCHEMA table
    • Compressed Backup and LCP for NDB
    • Cluster log as CSV
    • Skeleton Engine
    • MyHTTP Engine
    • PBXT Engine
    • Skeleton of MyBS support for NDB
      • (in the hope that somebody finishes it)

    Currently the additional engines have to be built separately in their storage/ENGINE directories. I have some preliminary patches to get them to build in-tree via the plug.in file, but it’s not finished (patches welcome).

    This is all currently based off the 5.1-ndb tree. In future, it will likely be based off 5.1-telco.

     http://www.flamingspork.com/mysql/patch-5.1-ndb-stew1-20071016.patch.gz

    and broken out in:
    http://www.flamingspork.com/mysql/patch-5.1-ndb-stew1-20071016/
    (including the not-quite-working ENGINE_in_tree_build patches)

    Known to apply against this tree:

    http://www.flamingspork.com/mysql/mysql-5.1-ndb-20071016.tar.bz2

    Comments, thoughts, patches to include, all welcome!

    Compressed LCP and Compressed Backup (and switching them on/off online)

    Quick experiment with online changing of enabling/disabling compressed backups and local checkpoints (LCPs).

    Backup is incredibly trivial and correct (even have some nodes do compressed, some not).

    LCPs are a bit trickier when it comes to restore… currently how the code sits is that a block using the compressed file interface in NDBFS must specify if it wants to use the compressed read/write interface or not. So when you have LCPs that differ in compressed/non-compressed than the current config file setting, you’re not going to be able to restore them (although setting CompressedLCP=1 should let you restore either compressed or non-compressed LCPs).

    At some point, I’ll probably move AsyncFile (our async file IO class) to just use azio alway, and modify azio to be transparent for non-compressed files…. I just have to fix up azio for direct io.

    I feel dirty

    but I’m going to write it anyway…. “I think this is the best phone I’ve ever owned”. It’s about a device running Windows Mobile. Would I say it was “good”… hrrm… not sure… “okay” at least. It would be “very good” if syncing with my Linux desktop worked remotely easily.

    One thing i love is that from the home screen (Welcome screen in WM5 language) you can start typing and you can choose to either dial that number, or choose from the search of your address book that just happened. Awesome. No jumping through menus just to search the address book!

    If anyone knows how to make the in-built email client not do outlook style “include message in reply” and instead actually quote the message, i’d be rather grateful.

    fring is also a rather cool IM/VoIP app that I can see myself making a fair bit of use of when on a WiFi network around the place (and IM on the go over GPRS).

    I just have to go and get a 3G SIM card to make data work…