Roundup Tracker - Issues

Issue 2551271

classification
Test Roundup with TIDB (mysql compatible distributed database)
Type: rfe Severity: normal
Components: Database Versions:
process
Status: new
:
: : rouilj
Priority: low : Effort-Medium

Created on 2023-03-30 17:30 by rouilj, last changed 2023-03-30 17:30 by rouilj.

Messages
msg7746 Author: [hidden] (rouilj) Date: 2023-03-30 17:30
Got an email yesterday asking if Roundup works with TIDB (https://github.com/pingcap/tidb).
The person asking runs this DB already.

tidb is "an open-source distributed SQL database that supports Hybrid Transactional and 
Analytical Processing (HTAP) workloads. It is MySQL compatible and features horizontal 
scalability, strong consistency, and high availability. The goal of TiDB is to provide users 
with a one-stop database solution that covers OLTP (Online Transactional Processing), OLAP 
(Online Analytical Processing), and HTAP services. TiDB is suitable for various use cases that 
require high availability and strong consistency with large-scale data."

From a quick glance at the MYSQL compatibility doc: 
   https://docs.pingcap.com/tidb/stable/mysql-compatibility
it looks like it may work. From a quick look:

  * We don't use mysql autoincrement columns AFAICT.
  * float4/float8 types are not used
  * we don't support mysql FULLTEXT search (and neither does tidb)
  * we don't have FOREIGN KEY constraints in our schema definitions (also we don't
    delete data, so no need for cascading deleting implemented via foreign keys)
  * new db's use utf8mb4 which is supported by tidb
  * it looks like DDL changes roundup does should be ok for tidb. We don't change data
    types via alter table.
  * Roundup doesn't use the update/set described in the differences section of
    https://docs.pingcap.com/tidb/stable/sql-statement-update
  * Roundup doesn't use mysql modes
  * I think 'group by' and 'order by' are explicitly defined so SELECT should be compatible.

  ! table name case may be an issue. mysql is case sensitive table names, tidb smashes all
    to lower case. I am not use what happens if we have a class of 'user' an a class of
    'User' defined in the schema. Workaround, don't use classes that differ only by case.

I am opening this in case the requestor want to try adapting the existing test_mysql
test for tidb.

Anybody else who is interested can take this and try it out as well.
History
Date User Action Args
2023-03-30 17:30:06rouiljcreate