Commit Graph

47 Commits

Author SHA1 Message Date
Shao Hou Kun
0a033c76c1
feat(feat-set-binlogsyncer-maxreconnectattempts): feat-set-binlogsyncer-maxreconnectattempts (#1279)
Co-authored-by: shaohoukun <shaohoukun@meituan.com>
2023-05-25 22:45:53 +02:00
Tim Vaillancourt
0b066c16a5
Use switch statements for readability, simplify .NewGoMySQLReader() (#1135)
* Use `switch` statements for readability

* Simplify initBinlogReader()
2022-07-06 23:45:26 +02:00
Tim Vaillancourt
ed46138c06
Add golangci-lint CI action, fix gosimple, govet + unused lint errors (#1127)
* Add `golangci-lint`, fix `gosimple`, `govet` and `unused` linter complaints

* Go 1.16

* Update copyright dates
2022-05-31 21:23:39 +02:00
Tim Vaillancourt
732a064231
Replace deprecated go-mysql library (#994) 2021-07-15 21:49:50 +02:00
Abeyu M
3ca5f89fa5 add migrationcontext to gomysql_reader 2019-10-08 13:49:15 -04:00
Brandon Bodnar
23617f287f Add initial support for ssl encryption connections to database servers.
- Adding a command line option for users to enforce tls/ssl connections
  for the applier, inspector, and binlog reader.
- The user can optionally request server certificate verification through
  a command line option to specify the ca cert via a file path.
- Fixes an existing bug appending the timeout option to the singleton
  applier connection.
2019-01-31 15:22:03 -06:00
Shlomi Noach
d32304520c
Merge branch 'master' into minor_changes 2019-01-14 10:45:27 +02:00
Shlomi Noach
255314927d Updated go-mysql library, now with fix to decimal. May break datetime 2019-01-01 10:57:46 +02:00
Shlomi Noach
97c1e72dbe
Merge branch 'master' into minor_changes 2018-09-17 08:58:04 +03:00
Shlomi Noach
32f1cf1dbe Support for GCP (Google Cloud Platform) 2018-09-02 09:51:40 +03:00
MOON_CLJ
21d455013e minor changes and typo correction 2018-05-23 13:13:25 +08:00
Atsushi Ishibashi
99fcbc35f3 Fix custom type assignment 2018-05-04 01:45:14 +09:00
Shlomi Noach
a01e3639a2
Merge branch 'master' into go-mysql-ignore-pass 2018-01-14 10:08:58 +02:00
Shlomi Noach
fcda14634d go-mysql library to avoid printing password in cleartext 2018-01-11 14:51:14 +02:00
Nikhil Mathew
e82d5633f9 Close the binlog syncer 2017-12-18 11:03:37 -08:00
Nikhil Mathew
538833ea84
Merge branch 'master' into nm-refactor-migration-context 2017-11-14 10:29:49 -08:00
Josh Soref
cb97d6854c spelling: synchronously 2017-11-08 01:02:21 +00:00
Josh Soref
94dfa0ed24 spelling: specified 2017-11-08 01:01:51 +00:00
Josh Soref
9bb6959d22 spelling: empty 2017-11-08 00:47:24 +00:00
Nikhil Mathew
b399533d4f Simplify GoMySQLReader 2017-08-08 13:41:46 -07:00
Nikhil Mathew
982b8eede9 Refactor global migration context 2017-08-08 13:36:54 -07:00
Shlomi Noach
7a3912da80 fixing binlog syncer double-close() 2017-03-27 08:33:06 +03:00
Shlomi Noach
2d5f8398d6 gomysql_reader.go adapted to api changes in go-mysql 2017-02-12 13:15:53 +02:00
Cyprian Nosek
2bfc672b03 Add possibility to set serverId as gh-ost argument
Signed-off-by: Cyprian Nosek <cyprian.nosek@pearson.com>
2016-12-28 11:49:41 +01:00
Shlomi Noach
349c9af08d Merge branch 'master' into close-streamer-connection 2016-10-28 09:30:16 +02:00
Shlomi Noach
5aad45e3bc formatted code via gofmt 2016-10-27 20:38:45 +02:00
Shlomi Noach
7b63b4a275 proper cleanup of streamer connection 2016-10-27 13:52:37 +02:00
Shlomi Noach
f00a9814e6 legacy comments cleanup 2016-08-17 06:51:06 +02:00
Shlomi Noach
1d77425fbe capped streamer retries 2016-07-25 15:17:30 +02:00
Shlomi Noach
23cb8ea7e9 Throttling & critical load
- Added `--throttle-query` param (when returns > 0, throttling applies)
- Added `--critical-load`, similar to `--max-load` but implies panic and quit
- Recoded *-load as `LoadMap`
- More info on *-load throttle/panic
- `printStatus()` now gets printing heuristic. Always shows up on interactive `"status"`
- Fixed `change column` (aka rename) handling with quotes
- Removed legacy `mysqlbinlog` parser code
- Added tests
2016-06-18 21:12:07 +02:00
Shlomi Noach
896f560dce after timeout: reconnecting as new replica; skipping queries correctly 2016-05-23 11:12:59 +02:00
Shlomi Noach
9b54d0208f - Handling gomysql.replication connection timeouts: reconnecting on last known position
- `printStatus()` takes ETA into account
- More info around `master_pos_wait()`
2016-05-19 15:11:36 +02:00
Shlomi Noach
9d055dbda7 renaming to gh-ost 2016-05-16 11:09:17 +02:00
Shlomi Noach
75f68c0752 - row copy and row events are now handled by a single routine which prioritizes events over rowcopy
- Supporting `--throttle-file-flag`
- Printing status
- Supporting transactional table syntax
- code cleanup; refactoring
- proper use of atomic where required
- iterations are in changelog (erm... maybe too much)
- `LOCK TABLES`, `UNLOCK TABLES` working
2016-04-08 10:34:44 +02:00
Shlomi Noach
0e7b23e6fe - Creating an populating Changelog table
- Using heartbeat
- Throttling works based on heartbeat
- Refactored binlog_reader stuff. Now streaming events (into golang channel, which makes for nice buffering and throttling)
- Binlog table listeners work
- More Migrator logic; existing logic for waiting on `state` events (e.g. `TablesCreatedState`)
2016-04-07 15:57:12 +02:00
Shlomi Noach
4dd5a93ed7 - More work on go-mysql reader: now properly notes binlog coordinates as it makes progress
- Properly creating multiple BinlogEntry-ies when reading multi statement binlog event (Still todo: transactions)
2016-04-06 18:44:54 +02:00
Shlomi Noach
5deff2adb6 - working POC of row-copy iteration cycle
- initial work on table columns
- initial work on events streamer
2016-04-06 13:05:58 +02:00
Shlomi Noach
cf87d16044 detecting master (includes sanity checks). Introducing Applier. Creating and altering ghost table 2016-04-04 15:29:02 +02:00
Shlomi Noach
1b8c5ff286 preparing for db access 2016-04-01 16:05:54 +02:00
Shlomi Noach
8f3d13e071 still experimenting, yes? go-mysql binlog parser looks good 2016-03-30 15:43:40 +02:00
Shlomi Noach
30a472f741 begin work on positional columns. Incomplete 2016-03-24 22:27:39 +01:00
Shlomi Noach
96a8fd50c3 minor refactoring; fixed license comments 2016-03-24 15:11:56 +01:00
Shlomi Noach
fb04eb232f simplified appendBinlogEntry() 2016-03-24 14:52:49 +01:00
Shlomi Noach
8aa6a9750c adjusted automaton to accept multi-statement entries; added tests 2016-03-24 14:25:52 +01:00
Shlomi Noach
1768b55b3b mysqlbinlog_reader is now a simple state machine 2016-03-23 15:25:45 +01:00
Shlomi Noach
e36bb51b69 initial seems-to-be-working parser for binary logs, which reads log pos, end log pos, statement type, schema and table. Performs some validations along the way. Reads in chunks of up to 32M per chunk 2016-03-23 12:40:17 +01:00
Shlomi Noach
09046c8f6e initial binlog package 2016-03-22 15:12:51 +01:00