[Timo of distributed MySQL middleware]

Timo originates from [Cobar]. Timo is a distributed MySQL database middleware that supports horizontal and vertical splitting of data, sub-database and sub-table, read-write separation, result set merging, and automatic failover.

https://github.com/gaojingsong/Timo



 

Terminology in Timo

 

Here are some terms that may be used in Timo's code or documentation:

 

Logical database: a collection of tables in the eyes of Timo users

Logical data table: a table in the eyes of Timo users

Physical database: A database on MySQL, uniquely identified by IP, port, and database name

Physical data table: a table in a MySQL database

MySQL instance: MySQL service, uniquely identified by IP and port

Configuration Repository: The physical database that holds Timo configuration information

Data splitting: Disperse the data stored in the same database into multiple databases

Horizontal split: The data of the same table is scattered and stored in multiple databases, and the table structures in these databases are exactly the same

Vertical splitting: Disperse multiple tables in one library into multiple databases, and the table structures in these databases are not exactly the same

Data node: The data splitting unit in Timo, which represents a part of data decentralized storage, also known as data sharding

Data source: The physical storage location of data node data, usually consisting of a physical database in Timo

Sharded table: The logical table is stored in multiple data nodes, and the data of all these data nodes together form a complete table data

Global table: The data of the logical table in multiple data nodes is the same, which is a kind of redundancy

Single database: refers to the operation involving only a single data node

Cross-database: refers to the operation involving multiple data nodes

Routing: A mapping of data content to data nodes

Split field: Timo will route based on the value of the field

Split function: a mapping of specific values ​​to data nodes

Splitting rule: an association between the splitting field and the splitting function, and the sharding table routes data according to it

Service port: The port that Timo provides data services, usually 8066

Management port: Timo provides the port for management and monitoring services, usually 9066

Front-end connections: front-end users' connections to Timo

Backend connections: Timo's connections to backend MySQL

Heartbeat detection: Timo confirms the availability of back-end data sources by executing SQL regularly

Downtime switch: When Timo finds that the back-end data source is unavailable, switch the data node to other available data sources

HINT: A way to bypass the Timo parser to execute SQL, opaque to front-end applications

 

Todo List

 Backend NIO Retrofit

 Thread pool transformation

 Connection pool transformation

 Configuration file transformation

 Routing transformation

 result set processing

 Heartbeat Makeover

 Management side transformation

 High availability

 read-write separation

 Complete documentation

 affairs

 XA Transactions

 serial number

 JOIN

 cluster

 function extension

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326432212&siteId=291194637