New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MySQL 5.6 support #20

Merged
merged 15 commits into from Jul 18, 2016

Conversation

Projects
None yet
2 participants
@jage
Copy link
Member

jage commented Jul 6, 2016

  • Make Travis CI run
  • Green tests
    • Compare #on_row_event, #on_save_position specs between 5.5 and 5.6 (different order)
  • Ensure row events "type" return the same strings as before
  • Refactor
  • Update Vagrant machine to MySQL 5.6
  • Update README

https://docs.travis-ci.com/user/database-setup/#MySQL-5.6

jage added some commits Jul 6, 2016

Install latest bundler on Travis CI
https://travis-ci.org/twingly/ecco/builds/142764339 broke, not sure if
this will fix it but feel better to use the latest version before
debugging any more.
Verbose gem install to debug
To see why it's taking so long
Extra entropy to ensure JRuby will start quickly
Without haveged Travis CI would abort the build at `gem install bundler`
due to inactivity for 10 min. JRuby needs lots of entropy to start up

https://github.com/jruby/jruby/wiki/Improving-startup-time#ensure-your-system-has-adequate-entropy

Entropy was most likely better in the container based environment before cc768d2
EventType::DELETE_ROWS,
EventType::EXT_DELETE_ROWS,

This comment has been minimized.

@jage

jage Jul 12, 2016

Member

Might be possible to configure MySQL to use v1 ROWS_EVENT but it feels better to support both v1 and v2.

This comment has been minimized.

@dentarg

dentarg Jul 12, 2016

Member

Shouldn't we have specs for both then? You added to the array here, but replaced them in the specs (e.g. WRITE_ROWS -> EXT_WRITE_ROWS)

This comment has been minimized.

@jage

jage Jul 12, 2016

Member

Shouldn't we have specs for both then? You added to the array here, but replaced them in the specs (e.g. WRITE_ROWS -> EXT_WRITE_ROWS)

Not sure it's worth it, since we need to stop and reconfigure MySQL to have multiple specs.

I'll probably refactor this and rely on https://github.com/shyiko/mysql-binlog-connector-java/blob/05bc0952c5de64fc836fcb9ca36f4b4570d21a72/src/main/java/com/github/shyiko/mysql/binlog/event/EventType.java#L191-L207 and add our own types that don't vary depending on the MySQL config and/or version.

But first step is just to get everything working with 5.6s default config.

This comment has been minimized.

@jage

jage Jul 15, 2016

Member

I'll probably refactor this and rely on https://github.com/shyiko/mysql-binlog-connector-java/blob/05bc0952c5de64fc836fcb9ca36f4b4570d21a72/src/main/java/com/github/shyiko/mysql/binlog/event/EventType.java#L191-L207 and add our own types that don't vary depending on the MySQL config and/or version.

There are some issues with JRuby and Java type, some of the issues are fixed by using EventType.java_send(:isWrite, [EventType], type). Might be easier to keep the constants, but ensure we send the same type-strings as before (otherwise Bruce will break).

jage added some commits Jul 14, 2016

Ensure we return the generic Row Event strings
To keep the API compatibility
@@ -26,7 +26,7 @@
subject.on_event(table_event)
subject.on_event(row_event)

expect(actual_type).to eq(row_event_type)
expect(actual_type).to eq("WRITE_ROWS")

This comment has been minimized.

@jage

jage Jul 15, 2016

Member

Will try to make this more generic, or more specific that it's a write row event (now it's "hidden" in the spec context)

jage added some commits Jul 15, 2016

Refactor RowEventsListener
Fewer rows, easier to read.
Install MySQL 5.6 in Vagrant machine
MySQL 5.6 required a lot more memory than the default 512 MiB
@jage

This comment has been minimized.

Copy link
Member

jage commented Jul 18, 2016

Done.

@dentarg

This comment has been minimized.

Copy link
Member

dentarg commented Jul 18, 2016

LGTM 👍

@jage jage changed the title Use MySQL 5.6 on Travis CI MySQL 5.6 support Jul 18, 2016

@jage jage merged commit 2585815 into master Jul 18, 2016

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details

@jage jage deleted the mysql-5.6 branch Jul 18, 2016

jage added a commit that referenced this pull request Jul 18, 2016

Bump patch version, MySQL 5.6 support
MySQL 5.6 support fixed in #20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment