uber / storagetapper Goto Github PK
View Code? Open in Web Editor NEWStorageTapper is a scalable realtime MySQL change data streaming, logical backup and logical replication service
License: MIT License
StorageTapper is a scalable realtime MySQL change data streaming, logical backup and logical replication service
License: MIT License
Add shellcheck build target which would run shellcheck scripts/*.sh
.
Make test
target dependent on shellcheck
to run it along with other tests.
Both replication and snapshot libraries support configuring custom TLS connection.
We need to add support of custom TLS configuration per Storagtapper instance and per individual cluster, table.
Tests often fail with kafka server: Request was for a topic or partition that does not exist on this broker
or metadata is out of date
errors.
Need to sync access to cachedStateMySQLVersion
streamer/streamer_test.go getting timed out on Travis-ci
This is required for logical backup restore functionality.
We need to be able to ingest the data we produced to file, hdfs or s3.
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/
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.
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.
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.
Setup build action to run make test
on push.
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.
Having stdout output and configuration through command line options will allow to use Storagetapper as a command line utility.
Currently we are using v1 branch of a fork of https://github.com/colinmarc/hdfs library. The fork includes reliability fixes, but v1 branch doesn't have Kerberos support.
We need to port reliability fixes to the master branch of the library and migrate Storagetapper to master branch of the library.
The fork with the fixes: https://github.com/efirs/hdfs
Currently, resolvers are used to resolve source connection information only.
For output destination configuration is hard-coded in config files.
So it's difficult to configure output destinations per stream.
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:
Package stcli
client utility to separate debian storagetapper-client
package.
setter *goavro.RecordSetter
r, err := goavro.NewRecord(*e.setter)
please update tks!
Named parameters alllows more flexible usage of utility, for example:
./st_client add -d db1 -t t1 -c c1 -s svc1 -i mysql -o kafka -f avro -v 1
instead of fixed positional parameters:
./stcli add svc1 t1 db1 clst1 mysql kafka avro 1 "{}"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.