Giter Site home page Giter Site logo

uber / storagetapper Goto Github PK

View Code? Open in Web Editor NEW
334.0 23.0 67.0 813 KB

StorageTapper is a scalable realtime MySQL change data streaming, logical backup and logical replication service

License: MIT License

Shell 2.68% Makefile 0.18% Go 97.14%
mysql kafka avro cdc etl json msgpack hdfs s3 postgresql

storagetapper's People

Contributors

efirs avatar mantasmiksys avatar maximus-w avatar shichao-an avatar shriniket-kale avatar teotia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

storagetapper's Issues

Check shell scripts with shellcheck

Add shellcheck build target which would run shellcheck scripts/*.sh.
Make test target dependent on shellcheck to run it along with other tests.

panic: test timed out after 5m0s

When running the last test changlog, met this error as title show.
My test env is a kvm vm .

Have set mysqld,
innodb_lock_wait_timeout=500
transaction-isolation = READ-COMMITTED

But cannot fix this issue.
Then i change the test timeout to 3000s /50m to check whether the test pass.

first met some datarace warning,
then
2019-07-24T15:36:13.563+0800 ERROR changelog/mysql.go:505 Error 1205: Lock wait timeout exceeded; try restarting transaction
2019-07-24T15:44:34.629+0800 ERROR changelog/mysql.go:841 Error 1205: Lock wait timeout exceeded; try restarting transaction {"cluster": "test_cluster1"}
then
2019-07-24T15:44:34.733+0800 DEBUG runtime/asm_amd64.s:1337 Finished binlog worker in test
panic: test timed out after 50m0s

Do you have some suggest?
Detail log at https://paste.ubuntu.com/p/HxJ9bNmzrn/

Make connection resolver more generic

In state connection resolver, was implemented to resolve MySQL connection details specifically.

It needs to be extended to be able to resolve Kafka, HDFS, S3 connetion details.

Add support for command line config options

Currently instances can be configured with decentralized config files or centralized config in the state database.

We need to add ability to configure instances by command line parameters.

Sanity check table registration parameters earlier

We need to try check table parameters during registration endpoint call, instead of currently asynchronously check during state sync loop.

This way the issues like non-existent users on the source cluster would be obvious and easy to debug.

Resolver should expand databases and tables wildcard

It should be possible to specify "*" for database and table name fields while adding table.
Builtin enumerator should be able to expand those wildcard by logging in to the cluster and enumerating databases and table of the databases using "SHOW DATABASES" and "SHOW TABLES" queries.

Add stdout output support

Having stdout output and configuration through command line options will allow to use Storagetapper as a command line utility.

Builtin cluster resolver should respect connection type

Currenlty, builtin resolver doesn't use connType resolver parameter and returns first host matching service, db, no matter whether it slave or master.

Once fixed it will help to distribute load:

  • Use slave as a source of snapshot events to not overload master.
  • Use master as a source of incremental changes for better latency.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.