Git Product home page Git Product logo

proxysql's People

Contributors

alexjurkiewicz avatar alpes214 avatar aminet avatar anphucbui avatar bibstha avatar bpmdoty avatar bskllzh avatar carsonip avatar csoulios avatar dieken avatar dveeden avatar everpcpc avatar hugmeir avatar iprunache avatar jaredev avatar javierjf avatar javsanpar avatar jesmarcannao avatar kirs avatar krzysztof-ksiazek avatar minichate avatar mirostauder avatar pondix avatar rahim-kanji avatar renecannao avatar satori avatar saunderst avatar ton31337 avatar wjordan avatar yiyao-ms 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  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

proxysql's Issues

Define new expire variables for MySQL_Connection_Pool

Two variables need to define the time to lives of a connection:

  • in the per-thread connection pool before being moved into the shared connection pool
  • in the shared connection pool before being purged

These need to be defined globally and configurable at runtime.

Configurable target for debug logging (DEBUG only)

Currently debug logging goes only to stderr.
This should be enhanced in a way that logging can go to either stderr (like now) or sent to an internal queue where debug entries can be:
a) written on a log file
b) sent to SQLite3
c) both a and b

Write a cleanup function for per-thread MySQL_Connection_Pool

Periodically, a cleanup function should be called in the per-thread MySQL_Connection_Pool instance to clean up all the expired connections.

To note that in this context "expired" means that have been in the per-thread instance for too long and that now they need to be moved into the shared instance

Implement or remove support for domains

See issue #9 for a description of what domains are.
Support for domains needs to be implemented in multiple modules.
Maybe is more appropriate to run multiple instances of ProxySQL (one per domain) instead of having one instance processing all domains

Write a cleanup function for shared MySQL_Connection_Pool

Periodically, a cleanup function should be called in the shared MySQL_Connection_Pool instance to clean up all the expired connections.

To note that in this context "expired" means that have been in the shared instance for too long and that they need to be closed.

Handle error 1044 and error 1049

This is related to #45 .
If a client issue INIT_DB this is always successful.
Although, when a client run a query and INIT_DB is sent to the database server that can answer with OK or ERR for:

  • 1044 : Access denied
  • 1049 : Unknown database
    These errors must be returned to the application (probably just as error 1044) and server_userinfo.schemaname needs to be rolled back.

An alternative approach (that should be configurable) is to terminate the session as soon as such errors arise.

These errors can be logged: optionally, configurable

Create a per-thread variable that store current time

Many threads need to know the current time with a good precision, although calling time functions every time is needed is time consuming.
Each thread could have its own per-thread variable to store current time, updated within the thread when required, and accessible to all the functions.

Trace session variables

Most of the session variables need to be traced, so if a client specifically set them actions can be taken.
Ex:

  • start transaction;
  • change timeout;
  • disable qc
  • change charset

Would be more interesting if all the variables are kept local

Prioritize the execution of the Admin module

The Admin module should start before any other module.
Should be possible to hold the execution of other modules unless they are explicitly started from the admin interface.
Should be even possible to restart other modules without restarting the process.

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.