Description:
The execution sequence is
BEGIN; (Session 1)
INSERT 1,
INSERT 2,
<TRUNCATE TABLE on another session (Session 2) with another Member Server>
INSERT 3,
INSERT 4,
COMMIT;
Expect Result : the TRUNCATE Table should WAIT for the DML session finished. The End Result is EMPTY data across ALL member servers.
Tested Result : Data Inconsistency between member servers.
Session 1 : EMPTY Data
Session 2 : 4 Rows of data
How to repeat:
The execution sequence is
BEGIN; (Session 1)
INSERT 1,
INSERT 2,
<TRUNCATE TABLE on another session (Session 2) with another Member Server>
INSERT 3,
INSERT 4,
COMMIT;
Expect Result : the TRUNCATE Table should WAIT for the DML session finished. The End Result is EMPTY data across ALL member servers.
Tested Result : Data Inconsistency between member servers.
Session 1 : EMPTY Data
Session 2 : 4 Rows of data
Suggested fix:
Although Development is based on "DDL concurrency not supported", the DDL with DML concurrency may also be classified similarity.
But the silent data error is un-acceptable.
Suggest to fix
1. Fix DDL concurrency
or
2. To avoid SILIENT data corruption due to DDL with DML, will there be any way to return error from TRUNCATE or DDL with GROUP Replication.
e.g. to execute TRUNCATE with group replication, application may require to add extra variable setting to get that executed with known consequence.
Description: The execution sequence is BEGIN; (Session 1) INSERT 1, INSERT 2, <TRUNCATE TABLE on another session (Session 2) with another Member Server> INSERT 3, INSERT 4, COMMIT; Expect Result : the TRUNCATE Table should WAIT for the DML session finished. The End Result is EMPTY data across ALL member servers. Tested Result : Data Inconsistency between member servers. Session 1 : EMPTY Data Session 2 : 4 Rows of data How to repeat: The execution sequence is BEGIN; (Session 1) INSERT 1, INSERT 2, <TRUNCATE TABLE on another session (Session 2) with another Member Server> INSERT 3, INSERT 4, COMMIT; Expect Result : the TRUNCATE Table should WAIT for the DML session finished. The End Result is EMPTY data across ALL member servers. Tested Result : Data Inconsistency between member servers. Session 1 : EMPTY Data Session 2 : 4 Rows of data Suggested fix: Although Development is based on "DDL concurrency not supported", the DDL with DML concurrency may also be classified similarity. But the silent data error is un-acceptable. Suggest to fix 1. Fix DDL concurrency or 2. To avoid SILIENT data corruption due to DDL with DML, will there be any way to return error from TRUNCATE or DDL with GROUP Replication. e.g. to execute TRUNCATE with group replication, application may require to add extra variable setting to get that executed with known consequence.