Maxwell changelog

v1.10.2: "just in time for tomorrow"

v1.10.1: "forgive and forget"

The observable changes in this minor release are a new configuration for Kafka/Kinesis producer to abort processing on publish errors, and support of Kafka 0.10.2. Also a bunch of good refactoring has been done for heartbeat processing. List of changes:

v1.10.0: "slightly more ones than zeroes"

This is a small release, primarily around a change to how schemas are stored. Maxwell now stores the last_heartbeat_read with each entry in the schemas table, making schema management more resilient to cases where binlog numbers are reused, but means that you must take care if you need to roll back to an earlier version. If you deploy v1.10.0, then roll back to an earlier version, you should manually update all schemas.last_heartbeat_read values to 0 before redeploying v1.10.0 or higher.

Other minor changes:

v1.9.0: "now with added whimsy"

Maxwell 1.9 adds one main feature: monitoring support, contributed by Scott Ferguson. Multiple backends can be configured, read the updated docs for full details.

There's also some bugfixes:

v1.8.2: "just as the postcards wept"

Bugfix release.

v1.8.1: "famous is faster, don't have to be talented"

v1.8.0: "upbeat, honest, contradictory"

In version 1.8.0 Maxwell gains alpha support for GTID-based positions! All praise due to Henry Cai.

v1.7.2: "comparing self to better"

v1.7.1: "blame it on your seratonin"

v1.7.0: "lucky me, lucky mud"

Maxwell 1.7 brings 2 major new, alpha features. The first is Mysql 5.7 support, including JSON column type support and handling of 5.7 SQL, but not including GTID support yet. This is based on porting Maxwell to Stanley Shyko's binlog-connector library. Thanks to Stanley for his amazing support doing this port.

The second major new feature is a producer for Amazon's Kinesis streams, This was contributed in full by the dogged and persistent Thomas Dziedzic. Check it out with --producer=kinesis.

There's also some bugfixes: - Amazon RDS heartbeat events now tick maxwell's position, thx Scott Ferguson - allow CHECK() statements inside column definitions

v1.6.0: "give me a quest"

This is mostly a bugfix release, but it gets a minor version bump due to a single change of behavior: dates and timestamps which mysql may accept, but are considered invalid (0000-00-00 is a notable example) previously had inconsistent behavior. Now we convert these to NULL. Other bugfixes: - heartbeats have moved into their own table - more fixes around alibaba rds - ignore DELETE statements that are output for MEMORY tables upon server restart - allow pointing maxwell to a pre-existing database

v1.5.2: "french banana"

v1.5.1: "1.5.1 is just 1.5.1"

This is a bugfix release. - fixes for bootstrapping with an alternative maxwell-schema name and an include_database filter, thanks Lucian Jones - fixes for kafka 0.10 with lz4 compression, thanks Scott Ferguson - ignore the RDS table mysql.ha_health_check table - Get the bootstrapping process to output NULL values. - fix a quoting issue in the bootstrap code, thanks @mylesjao.

v1.5.0: "someone, somewhere, is still smoking cigarettes, damnit"

v1.4.2: "drawer cat is back"

v1.4.1: "cat snores"

v1.4.0: "deep, insomniac character flaws"

1.4.0 brings us two nice new features: - partition-by-column: see --kafka_partition_columns. Thanks @smferguson - output schema changes as JSON: see --output_ddl. Thanks @xmlking - As well as a fix around race conditions on shutdown.

v1.3.0: "yogg-saron"

v1.2.2: "bats wearing frog pajamas"

v1.2.1: "point-ones are a sad and inevitable fact"

This is a bugfix release. - fix a parser bug around ALTER TABLE CHARACTER SET - fix bin/maxwell to pull in the proper version of the kafka-clients library

v1.2.0: "just here, not to talk to you"

1.2.0 is a major release of Maxwell that introduces master recovery features; when a slave is promoted to master, Maxwell is now capable of recovering the position. See the --master_recovery flag for more details.

It also upgrades the kafka producer library to 0.9. If you're using maxwell with a kafka 0.8 server, you must now pass the --kafka0.8 flag to maxwell.

v1.1.6: "pithy"

v1.1.5: "my brain is a polluted mess"

v1.1.4: "george flunk"

v1.1.3: "the button I push to not have to go out"

This is a bugfix release, which fixes: - https://github.com/zendesk/maxwell/issues/376, a problem parsing RENAME INDEX - https://github.com/zendesk/maxwell/issues/371, a problem with the SERIAL datatype - https://github.com/zendesk/maxwell/issues/362, we now preserve the original casing of columns - https://github.com/zendesk/maxwell/issues/373, we were incorrectly expecting heartbeats to work under 5.1

v1.1.2: "scribbled notes on red pages"

v1.1.1: scribbled notes on blue pages

v1.1.0: "sleep away the afternoon"

v1.1.0-pre4: "buck buck buck buck buck buck-AH!"

v1.1.0-pre3:

v1.1.0-pre2: "yawn yawn"

v1.0.1: "bag of oversized daisies"

v1.0.0: "Maxwell learns to speak"

Since v0.17.0, Maxwell has gotten: - bootstrapping support - blacklisting for tables - flexible kafka partitioning - replication heartbeats - GEOMETRY columns - a whole lotta lotta bugfixes

and I, Osheroff, think the damn thing is stable enough for a 1.0. So there.

v1.0.0-RC3: "C'mon and take it"

pull in support for replication heartbeats. helps in the flakier network environs.

v1.0.0-RC2: "same thing, just without the v"

v1.0.0-RC1: "Richard Buckner's release"

v1.0.0-PRE2: "an embarassment of riches"

1.0.0-PRE2 brings in a lot of changes that got merged while we were testing out PRE1. so, hey. - Configurable names for the maxwell schema database (Kristian Kaufman) - Configurable key (primary key, id, database) into the kafka partition hash function (Kristian Kaufman) - Configurable Kafka partition hash function (java hashCode, murmur3) (Kristian Kaufman) - support GEOMETRY columns, output as well-known-text - add --blacklist_tables option to fully ignore excessive schema changes (Nicolas Maquet) - bootstrap rows now have 'bootstrap-insert' type

v1.0.0-PRE1: "drunk conversations with sober people"

v0.17.0: "wrists of William"

v0.17 is a large bugfix release with one new feature. - FEATURE: allow specifying an alternative mysql schema-storage server and replication server - BUGFIX: properly handle case-sensitivity by aping the behavior of the master server. Fixes #230. - BUGFIX: parse some forms of CHECK( ... ) statements. Fixes #203. - BUGFIX: many more SQL-parser fixes. We are mostly through some thousands of lines of SQL produced by mysql-test.

v0.16.2: "The best laid plans"

This is a large-ish bugfix release. - Support, with reservations, binlog_row_image=MINIMAL - parser bug: handle table names that look like floating points - parser bug: fix for entity names that have '.', '\', etc in them - handle UPPERCASE encoding names - support UCS2 (start trying to operate ok on the mysql-test suite) - use ObjectOutputStream.reset to fix memory leaks when buffering to disk

v0.16.1: "me and room service"

This is a bug-fix-roundup release: - support ALTER DATABASE - fix a bunch of parse errors: we've started running mysql-test at maxwell and are fixing up failures. - some modifications to the overflow-to-disk logic; we buffer the input and output, and we fix a memory leak

v0.16.0: "Kristian Kaufmann's version"

Version 0.16.0 introduces a feature where UPDATE statements will now show both the new row image and the old values of the fields that changed. Thanks @kristiankaufmann

v0.15.0: "the littlest little city"

v0.15.0-RC1: "it's later than you think"

v0.14.6: "It's about being American. Sort of."

v0.14.5: "false is the new true"

v0.14.4: "You'd think we'd be at 1.0 by now, wouldn't you?"

v0.14.3: "Peanuts. My girlfriend thinks about peanuts."

v0.14.2: "Maxwell Sandvik 88"

v0.14.1: "be liberal in what you accept. Even if nonsensical."

v0.14.0: "the slow but inevitable slide"

This release introduces row filters, allowing you to include or exclude tables from maxwell's output based on names or regular expressions.

v0.13.1: "well that was somewhat expected"

v0.13.1 is a bug fix of v0.13.0 -- fixes a bug where long rows were truncated.

v0.13.0 contains: - Big performance boost for maxwell: 75% faster in some benchmarks - @davidsheldon contributed some nice bug fixes around CREATE TABLE ... IF NOT EXISTS, which were previously generating new, bogus copies of the schema. - we now include a "scavenger thread" that will lazily clean out old, deleted schemas.

v0.13.0: "Malkovich Malkovich Malkovich Sheldon?"

Lucky release number 13 brings some reasonably big changes: - Big performance boost for maxwell: 75% faster in some benchmarks - @davidsheldon contributed some nice bug fixes around CREATE TABLE ... IF NOT EXISTS, which were previously generating new, bogus copies of the schema. - we now include a "scavenger thread" that will lazily clean out old, deleted schemas.

This release has a pretty bad bug. do not use.

v0.12.0: "what do I call them? Slippers? Why, are you jealous?"

v0.11.4: "13 steps"

this is another bugfix release that fixes a problem where the replication thread can die in the middle of processing a transaction event. I really need to fix this at a lower level, ie the open-replicator level.

v0.11.3: ".. and the other half is to take the bugs out"

this is a bugfix release: - fix problems with table creation options inside alter statements ( ALTER TABLE foo auto_increment=10 ) - fix a host of shutdown-procedure bugs

the test suite should also be way more reliable, not like you care.

v0.11.2: "savage acts of unprovoked violence are bad"

This is a bugfix release. It includes: - soft deletions of maxwell.schemas to fix A->B->A master swapping without creating intense replication delay - detect and fail early if we see binlog_row_image=minimal - kill off maxwell if the position thread dies - fix a bug where maxwell could pick up a copy of schema from a different server_id (curse you operator precedence!)

v0.11.1: "dog snoring loudly"

v0.11.0: "cat waving gently"

This release of Maxwell preserves transaction information in the kafka stream by adding a xid key in the JSON object, as well as a commit key for the final row inside the transaction.

It also contains a bugfix around server_id handling.

v0.10.1: "all 64 of your bases belong to... shut up, internet parrot."

v0.11.0-RC1: "goin' faster than a rollercoaster"

v0.10.0: "The first word is French"

v0.11.0-PRE4: "except for that other thing"

v0.11.0-PRE3: "nothing like a good night's sleep"

v0.11.0-PRE2: "you really need to name a PRE release something cutesy?"

v0.11.0-PRE1: "A slow traffic jam towards the void"

v0.10.0-RC4: "Inspiring confidence"

v0.9.5: "Long story short, that's why I'm late"

v0.10.0-RC3: "Except for that one thing"

v0.10.0-RC2: "RC2 is always a good sign."

v0.10.0-RC1: "verify all the things"

v0.9.4: "we've been here before"

v0.9.3: "some days it's just better to stay in bed"

v0.9.2: "Cat's tongue"

v0.9.1: "bugs, bugs, bugs, lies, statistics"

v0.9.0: Vanchi says "eat"

Also, vanchi is so paranoid he's worried immediately about this. - mysql 5.6 support (without checksum support, yet) - fix a bunch of miscellaneous bugs @akshayi1 found (REAL, BOOL, BOOLEAN types, TRUNCATE TABLE)

v0.8.1: "Pascal says Bonjour"

v0.8.0: the cat never shuts up

v0.7.2: "all the sql ladies"

v0.7.1: "not hoarders"

v0.7.0: 0.7.0, "alameda"

v0.6.3: 0.6.3

v0.6.2: v0.6.2

v0.6.1: v0.6.1

v0.6.0: kafkakafkakafa

Version 0.6.0 has Maxwell outputting a JSON kafka key, so that one can use Kafka's neat "store the last copy of a key" retention policy. It also fixes a couple of bugs in the query parsing path.

v0.5.0: 0.5.0 -- "People who put commas in column names deserve undefined behavior"

v0.4.0: 0.4.0, "unboxed cat"

v0.4.0 fixes some bugs with long-lived mysql connections by adding connection pooling support.

v0.3.0: 0.3.0

This version fixes a fairly nasty bug in which the binlog-position flush thread was sharing a connection with the rest of the system, leading to crashes.

It also enables kafka gzip compression by default.

v0.2.2: 0.2.2

Version 0.2.2 sets up the LANG environment variable, which fixes a bug in utf-8 handling.

v0.2.1: v0.2.1

version 0.2.1 makes Maxwell ignore CREATE INDEX ddl statements and others.

v0.2.0: 0.2.0

This release gets Maxwell storing the last-written binlog position inside the mysql master itself.

v0.1.4: 0.1.4

support --position_file param

v0.1.3: 0.1.3

Adds kafka command line options.

v0.1.1: 0.1.1

v0.1.1, a small bugfix release.

v0.1: 0.1

This is the first possible release of Maxwell that might work. It includes some exceedingly basic kafka support, and JSON output of binlog deltas.