[MDEV-13996] DELETE of just hundreds of thousands of rows on a table on Node 1 blocks *any* writes on Node 2,3,... for 20s+ (Depending on power) Created: 2017-10-04 Updated: 2020-08-25 Resolved: 2017-10-26 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Galera |
| Affects Version/s: | 10.2.9 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Critical |
| Reporter: | Claudio Nanni | Assignee: | Andrii Nikitin (Inactive) |
| Resolution: | Not a Bug | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Linux |
||
| Attachments: |
|
| Description |
|
Deleting records on a table blocks all other nodes from writing to any database or table after the DELETE finished on the node for a time that is proportional to the number of records.
OR
To reproduce: NODE 1: Import attached data in db1
Now on NODE 2 or 3: (this does not happen on NODE 1)
Either will be blocked for long time, if you already created t1, it will be the INSERT. Bonus problem
In such case another simple INSERT was happening on another node on the same table.
|
| Comments |
| Comment by Andrii Nikitin (Inactive) [ 2017-10-26 ] |
|
Closing with 'Not a bug' because user manual https://mariadb.com/kb/en/library/mariadb-galera-cluster-known-limitations/ explicitly mentions "Do not use transactions of any essential size" . While the reason behind that particular entry is memory usage - following quote reveals that all transactions on every Node will be blocked until every node have certified incoming (huge) transaction: Which means that in the Ticket Description all nodes by design will be blocked while Galera is transferring 500.000 pk values to each node and performing certification of that huge transaction. |
| Comment by Andrii Nikitin (Inactive) [ 2017-10-26 ] |
|
Workaround should be using TRUNCATE or deleting in smaller batches, e.g. loop with: |