I am considering taking some time off work to concentrate deeply on MySQL Table Sync, which has been getting usage in very large companies whose names we all know. There are a lot of bugs and feature requests outstanding for it. It is overly complex, needs a lot of work, and I can’t do it in one-hour or even three-hour chunks. I need to focus on it. I’m considering asking for a bounty of $2500 USD for this. Please let me know what you think of this; it seems to be a successful way to sponsor development on some other projects, like Vim.

For the amount of time I think this will take, $2500 is far below my per-hour consulting rate; I considered setting the bounty higher, but I think this will be a fair amount.

I would not begin this project before December at the earliest, so there’s some time to raise funds and time for me to continue working on High Performance MySQL. I would like a volunteer to coordinate the fund-raising for me. It should be trivial, but I don’t want to do it myself, for several reasons. I can publicize the bounty on this blog and the project mailing list, and contact some of the corporations that have asked me for features. I doubt it will be hard to raise the money.

I’m not committing to this, just proposing it, though I did run it by my employer, who is very supportive. Here’s the list of features I propose to implement:

  • Writing a test suite
  • Bi-directional syncing
  • Syncing many tables
  • Syncing tables without a primary key
  • Providing useful exit codes and more informational output
  • Syncing in chunks
  • Checking privileges before syncing
  • Syncing based on pre-computed checksums
  • Automatically choosing sensible parameters based on table structure
  • Making default locking and other behaviors smarter

Alternatively, if someone wants to do it and just contribute the code to the project, I’d be delighted. I doubt that will happen, though, and there’d still be a lot of work in it for me, so I think it’s probably more realistic that I will do it.

Done! Now Read These: