[MCOL-140] Concurrent Insert threads generate errors Created: 2016-06-14 Updated: 2016-08-23 Resolved: 2016-08-23 |
|
| Status: | Closed |
| Project: | MariaDB ColumnStore |
| Component/s: | DDLProc, DMLProc |
| Affects Version/s: | None |
| Fix Version/s: | 1.0.2 |
| Type: | Task | Priority: | Critical |
| Reporter: | Anders Karlsson | Assignee: | Daniel Lee (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Sprint: | 1.0.2-2 |
| Description |
|
Inserting data into a simple table using multiple concurrent threads cause errors: |
| Comments |
| Comment by Dipti Joshi (Inactive) [ 2016-06-22 ] |
|
This may be related to |
| Comment by David Hall (Inactive) [ 2016-07-21 ] |
|
This is caused by a combination of two things. First, the VSS can't handle transactions arriving out of order if they are acting on the same block. Second, since VSS access is down the execution path, simultaneous threaded transactions arrive in unpredictable order based on cpu cycles given to each thread by the scheduler. Sometimes these two properties clash and result in a transaction being rejected. |
| Comment by David Hall (Inactive) [ 2016-07-28 ] |
|
I've created a mechanism to serialize transactions only within each table. Transactions on different tables continue concurrently. The mechanism is surrounded by an ifdef, so it will be easy to turn off when we start testing a new VSS. The mechanism is thus (as documented in the code): A new test212 has been added to the regression suite to test multiple threads doing DML on single tables. The test runs up multiple tables and multiple threads for each table and then slams DML at them. |
| Comment by David Hall (Inactive) [ 2016-07-28 ] |
|
This is really a Kludge. Eventually we need to re-engineer the VSS to not need things arriving in order. However, that is an expensive and risky operation, so we have this kludge. Have fun following the flow! |
| Comment by Ben Thompson (Inactive) [ 2016-08-01 ] |
|
Review Completed |
| Comment by Dipti Joshi (Inactive) [ 2016-08-16 ] |
|
David.Hall Has this been run through regression ? If so please assign to dleeyh for auto pilot testing |
| Comment by Daniel Lee (Inactive) [ 2016-08-23 ] |
|
Have been testing in Autopilot's concurrent DDL and DML tests. All good. |