vitessio / vitess

Vitess is a database clustering system for horizontal scaling of MySQL.
http://vitess.io
Apache License 2.0
18.63k stars 2.1k forks source link

mariadb 10.4 does not work correctly. #5362

Closed morgo closed 2 years ago

morgo commented 5 years ago

Overview of the Issue

MariaDB is now supported by mysqlctl, but it fails the simple local example in reparenting. We will need to investigate the reason and fix it.

pedroalb commented 3 years ago

Hi team! Do you have any plans for when to fully support MariaDB 10.4? Thanks

deepthi commented 3 years ago

@askdba can you post the latest status here?

askdba commented 3 years ago

Currently, we're evaluating and testing MariaDB 10.4 compatibility and engaging with MariaDB to resolve this issue. We plan to make progress in the coming weeks on this.

pedroalb commented 3 years ago

Thanks @askdba !

askdba commented 3 years ago

Started investigating this issue with local docker build against MariaDB 10.4

There were initial errors:

    /vt/src/vitess.io/vitess/go/cmd/vtctldclient/main.go:41 +0x126
I0127 12:51:28.973345    1038 main.go:67] I0127 12:51:28.970629 tablet_executor.go:240] Received DDL request. strategy=direct
W0127 12:51:38.986194    1038 main.go:67] W0127 12:51:38.984720 schema.go:107] Failed to reload schema on replica tablet zone1-0000000102 in commerce/0 (use vtctl ReloadSchema to try again): rpc error: code = DeadlineExceeded desc = context deadline exceeded
W0127 12:51:38.988819    1038 main.go:67] W0127 12:51:38.985909 schema.go:107] Failed to reload schema on replica tablet zone1-0000000101 in commerce/0 (use vtctl ReloadSchema to try again): rpc error: code = DeadlineExceeded desc = context deadline exceeded
I0127 12:51:38.991125    1038 main.go:67] I0127 12:51:38.990194 tablet_executor.go:240] Received DDL request. strategy=direct
W0127 12:51:49.003539    1038 main.go:67] W0127 12:51:49.002249 schema.go:107] Failed to reload schema on replica tablet zone1-0000000102 in commerce/0 (use vtctl ReloadSchema to try again): rpc error: code = DeadlineExceeded desc = context deadline exceeded
W0127 12:51:49.005873    1038 main.go:67] W0127 12:51:49.002366 schema.go:107] Failed to reload schema on replica tablet zone1-0000000101 in commerce/0 (use vtctl ReloadSchema to try again): rpc error: code = DeadlineExceeded desc = context deadline exceeded
I0127 12:51:49.006843    1038 main.go:67] I0127 12:51:49.002479 tablet_executor.go:240] Received DDL request. strategy=direct
W0127 12:51:59.020102    1038 main.go:67] W0127 12:51:59.017486 schema.go:107] Failed to reload schema on replica tablet zone1-0000000102 in commerce/0 (use vtctl ReloadSchema to try again): rpc error: code = DeadlineExceeded desc = context deadline exceeded
W0127 12:51:59.020863    1038 main.go:67] W0127 12:51:59.017623 schema.go:107] Failed to reload schema on replica tablet zone1-0000000101 in commerce/0 (use vtctl ReloadSchema to try again): rpc error: code = DeadlineExceeded desc = context deadline exceeded
New VSchema object:

Later cluster came up as follows:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.7.9-Vitess mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> \s
--------------
mysql  Ver 15.1 Distrib 10.4.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:      1
Current database:
Current user:       vt_app@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server:         MySQL
Server version:     5.7.9-Vitess mariadb.org binary distribution
Protocol version:   10
Connection:     127.0.0.1 via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       15306
--------------

MySQL [(none)]> select @@version;
+--------------------------------------------+
| @@version                                  |
+--------------------------------------------+
| 10.4.17-MariaDB-1:10.4.17+maria~buster-log |
+--------------------------------------------+
1 row in set (0.003 sec)

Only single tablet serving :

MySQL [(none)]> show vitess_tablets;
+-------+----------+-------+------------+-------------+------------------+--------------+----------------------+
| Cell  | Keyspace | Shard | TabletType | State       | Alias            | Hostname     | MasterTermStartTime  |
+-------+----------+-------+------------+-------------+------------------+--------------+----------------------+
| zone1 | commerce | 0     | MASTER     | SERVING     | zone1-0000000100 | 7dc55e26e778 | 2021-01-27T12:50:58Z |
| zone1 | commerce | 0     | REPLICA    | NOT_SERVING | zone1-0000000101 | 7dc55e26e778 |                      |
| zone1 | commerce | 0     | RDONLY     | NOT_SERVING | zone1-0000000102 | 7dc55e26e778 |                      |
+-------+----------+-------+------------+-------------+------------------+--------------+----------------------+
vitess@7dc55e26e778:/vt/local$ vtctl -version
ERROR: logging before flag.Parse: E0127 13:13:48.186764    1908 syslogger.go:149] can't connect to syslog
Version: e259a08f0 (Git branch 'mariadb104_compatibility') built on Wed Jan 27 12:44:06 UTC 2021 by vitess@adc40b5d1fb0 using go1.15.6 linux/amd64

Looking further into draft PR https://github.com/vitessio/vitess/pull/7318

shlomi-noach commented 3 years ago

@askdba can you please illustrate the steps to reproduce? I want to look at the ApplySchema command you executed. How did you build and what did you run, exactly?

askdba commented 3 years ago

@shlomi-noach steps to build MariaDB 10.4

make docker_local run.sh using that hash that make generates.

I will create a draft PR so you can see my changes. I'm also testing suggestions from the draft PR #7318 suggestions around config/init_db.sql. I think there are changes needs for replication setup as well.

mattlord commented 2 years ago

I'm going to close this as won't fix for now given the deprecation notice in https://github.com/vitessio/vitess/issues/9518.