[MDEV-18127] Handling DuplicateKey error while doing Online DDL Created: 2019-01-03 Updated: 2020-02-20 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Minor |
| Reporter: | Søren Kröger | Assignee: | Marko Mäkelä |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
I'm sorry - I know this limitation has been discussed several times before - but I simply don't see the point of letting a online DDL fail when some client is generating a duplicate key error during a online DDL operation? The limitation documented on https://dev.mysql.com/doc/refman/5.6/en/innodb-online-ddl-limitations.html
As I understand, the online DDL process is applying the data from the online log on the temporary table ... obviously the online log currently contains all transactions no matter if they were applied to the original tabel successfully or not, which means if the transaction fails for a client during the DDL operation, it will also fail on the temporary table resulting the DDL operation to fail completely. Couldn't the mysql code be changed only to keep successfully completed transactions in the online log? Kind of like the binary replication log for instance? Our sitation is like this: |
| Comments |
| Comment by Marko Mäkelä [ 2019-01-17 ] |
|
I designed and implemented the online table rebuild and online index creation in InnoDB, originally in MySQL 5.6, available in MariaDB since version 10.0. I think that this is something that should be addressed in the With |
| Comment by Søren Kröger [ 2019-01-23 ] |
|
Thanks a lot for taking this up! Good to know you are working on it |