5.6 cluster reports wsrep_cert_deps_distance=1.0 in all cases | Parallel Apply not working

Bug #1277703 reported by Jay Janssen
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
MySQL patches by Codership
Status tracked in 5.6
5.5
Fix Released
High
Teemu Ollakka
5.6
Fix Released
High
Teemu Ollakka
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC
Status tracked in 5.6
5.5
Fix Released
High
Unassigned
5.6
Fix Released
High
Unassigned

Bug Description

PXC 5.6.16, Galera 3.3, latest GA release.

Standard Linux 3 node running sysbench 8 threads on one node. Other nodes permanently report wsrep_cert_deps_distance=1.

| wsrep_cert_deps_distance | 1.000000 |
| wsrep_apply_oooe | 0.000000 |
| wsrep_apply_oool | 0.000000 |
| wsrep_apply_window | 1.101769 |
| wsrep_commit_oooe | 0.000000 |
| wsrep_commit_oool | 0.000000 |
| wsrep_commit_window | 1.000000 |

Does this mean parallel apply is not working or wsrep_cert_deps_distance is simply broken?

summary: - 5.6 cluster node that is a slave with parallel worker threads seems to
- generate writesets that are not parallelizable
+ 5.6 cluster reports wsrep_cert_deps_distance=1.0 in all cases
description: updated
Revision history for this message
Jay Janssen (jay-janssen) wrote : Re: 5.6 cluster reports wsrep_cert_deps_distance=1.0 in all cases

I can confirm that on PXC 5.5 wsrep_cert_deps_distance reports properly with the same sysbench workload:

ip-10-235-58-55 mysql> show global status like 'wsrep_cert%';
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| wsrep_cert_deps_distance | 440.819692 |
| wsrep_cert_index_size | 842 |
+--------------------------+------------+
2 rows in set (0.00 sec)

However, on PXC 5.6, whether Galera 2 or Galera 3, I only get a value of '1' for wsrep_cert_deps_distance.

| wsrep_cert_deps_distance | 1.000000 |

Revision history for this message
Teemu Ollakka (teemu-ollakka) wrote :

It looks that each THD entering to pre-commit stage has thd->wsrep_PA_safe set to false, done in Query_log_event constructor when adding BEGIN Query_log_event into IO cache. This in turn disables PA for transactions, seen as wsrep_cert_deps_distance 1.000000 in wsrep status.

Revision history for this message
Teemu Ollakka (teemu-ollakka) wrote :

Fixes pushed:

5.5: http://bazaar.launchpad.net/~codership/codership-mysql/wsrep-5.5/revision/3947
5.6: http://bazaar.launchpad.net/~codership/codership-mysql/5.6/revision/4038

Pushed fix to 5.5 too to avoid disabling PA in case of SAVEPOINT or ROLLBACK TO SAVEPOINT.

summary: - 5.6 cluster reports wsrep_cert_deps_distance=1.0 in all cases
+ 5.6 cluster reports wsrep_cert_deps_distance=1.0 in all cases | Parallel
+ Apply not working
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PXC-994

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.