Giter Club home page Giter Club logo

trite's People

Contributors

joshuaprunier 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

leobcn alitvak69

trite's Issues

Table references require back tick quotes

Certain table names (such as all numerics) require back ticks to properly interact with. This is mainly in the applyTables() function but double check if back tick quotes are needed elsewhere.

Percona server 5.6 support

Expand Table Import seems to be no more needed with Percona server 5.6.
I think it should be trivial to add support for Percona server 5.6

TLS encryption

Executing dump command with trite causes this error message

TLS encryption requested but server does not support TLS

I am not sure what this error is due and how to fix it.

Automatically adjust worker threads while running

May be difficult to implement but would remove the burden on the user to set the number of workers. Many factors determine the optimal number of workers that should be used. This is a long term goal that may never be attempted.

Rename not allowed across physical devices

os.Rename() can not be used to rename a file onto another partition. Copying the file would decrease speed so I think the best solution is to simply download the database files to their destination schema. This will prevent an error when schemas are symbolically linked to a different device.

It will not prevent problems if tables within the same schema are linked to different devices. This should be noted as a limitation.

There needs to be proper clean up if an error is detected so large orphaned files do not remain on disk.

Serve tablespace files from live database

This is possible in MySQL/Percona Server 5.6+ and MariaDB 10+. Server code will greatly increase. Think about if a structure dump should still be used for customized restore. Possibly add the ability to bypass structure dump and just copying everything in a live db. Though then you need to deal with issues like tables being added/dropped during processing.

https://dev.mysql.com/doc/en/innodb-transportable-tablespace-examples.html

Items to think about:
-Locking tables for export. Appears only a single table may be exported at a time or in batch. If table a is being exported table b can not also be exported. Needs further investigation and testing.
-Timeouts & retry if a table is scheduled to be exported but in use.
-Can a database be active and serve queries while trite is copying tablespaces or is it too difficult and the database should be put in read only mode, all tables flushed for export, etc.
-Compression should probably changed to configurable so some cpu can be reserved for tablespace reimport on the sever and other database operations.
-Source database credentials need to be checked for proper permissions before starting. Also need the ability to provide different credentials to trite server db and client db.

Retry of failed transfers

While seldom observed currently the code will exit when a transfer fails. This requires starting the transfer over from the beginning. Implementing better throttling logic based on channels should allow failed transfers to be detected and retried.

Confirm existence of .exp during download

Under certain conditions xtrabackup does not create a .exp for a table during export. This causes an invalid .exp file to be used during import and corrupts the tablespace. Check that the .exp file exists on the trite server, omit from download & import if it is missing and log an error.

Replication awareness

Only apply objects based on replication filters that are set. Wilcard filters appear too difficult to implement and will probably not be support.

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.