[MDEV-19858] rocksdb lost all performance after upgrade Created: 2019-06-25 Updated: 2019-07-09 Resolved: 2019-07-01 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - RocksDB |
| Affects Version/s: | 10.4.6 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Philip orleans | Assignee: | Sergei Petrunia |
| Resolution: | Cannot Reproduce | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Linux Ubuntu |
||
| Description |
|
I have a table with 115 MM records. One field is varchar(50) and it has two possible values , either "business" or "residential". It is indexed.
-----
----- It used to work fine in older versions. Now I am changing back to Innodb. |
| Comments |
| Comment by Sergei Petrunia [ 2019-06-28 ] |
|
(Just checked: the latest merge from the MyRocks upstream happened after MariaDB 10.4.6, so it could not be the problem). Also, the slowdown is reported to be on the read path. There were some changes on the MyRocks write path, but read path hasn't been touched in a while. The posted explain shows: 1,1M rows to be read (out of 115M). Looks like a reasonable plan.
|
| Comment by Philip orleans [ 2019-06-28 ] |
|
The issue happened overnight in two separate boxes, after a common apt upgrade. I have since moved back to INNODB and it works fine. I can recreate the same table in RocksDB and give you access so you may compare the performance on identical selects. |
| Comment by Sergei Petrunia [ 2019-06-28 ] |
|
philip_38, yes, that would be useful and I would very appreciate it. |
| Comment by Philip orleans [ 2019-06-29 ] |
|
I did reinsert the data and the performance returned to normal. Please close the case. |
| Comment by Sergei Petrunia [ 2019-07-01 ] |
|
Ok, closing. If this ever repeats, it would interesting to study why this was happening |
| Comment by Philip orleans [ 2019-07-04 ] |
|
I think I figured out the issue. In Rocks, when you have a very large database, basically it is impossible to do a select to retrieve fields NOT included in an index. That does not happen with Innodb. For example, I have a 1.9 BN records, and two fields are in an index. I can do a select count |
| Comment by Philip orleans [ 2019-07-06 ] |
|
Should I open a new bug report? This a a RocksDB table SELECT * INTO OUTFILE '$TMPDIR/download/${i}.csv' FIELDS TERMINATED BY ',' from ldatabase.table where left(did,3)='${i}' order by did asc caused 190705 19:54:39 [ERROR] mysqld got signal 11 ; To report this bug, see https://mariadb.com/kb/en/reporting-bugs We will try our best to scrape up some info that will hopefully help Server version: 10.4.6-MariaDB-1:10.4.6+maria~bionic Thread pointer: 0x7f30424d9548
|
| Comment by Philip orleans [ 2019-07-06 ] |
|
I want to point out the Innodb is holding Mariadb hostage. If a database has 100 tables and only one InnoDB table, and it gets corrupted., the server can spend days recovering from the redo log, rendering the installation useless, and the business unable to operate. Why the whole server does not accept connections if there are other engines working fine? MySQL and MariaDB must decouple from InnoDB or any other engine that cannot fail silently and threatens the whole server. |