[MXS-1720] Priori causal read Created: 2018-03-16 Updated: 2024-01-04 Resolved: 2020-02-28 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | readwritesplit |
| Affects Version/s: | None |
| Fix Version/s: | 2.5.0 |
| Type: | New Feature | Priority: | Major |
| Reporter: | dapeng huang | Assignee: | markus makela |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Epic Link: | Router Improvements | ||||||||||||||||
| Sprint: | MXS-SPRINT-93, MXS-SPRINT-100 | ||||||||||||||||
| Description |
|
Using master_wait_gitd( Because replication lag has many influence factors,so we need another way to achieve causal read; Our proposal: |
| Comments |
| Comment by markus makela [ 2019-07-04 ] |
|
Is this intended to solve cases when replication lag is too large for efficient use of causal_reads? Could max_slave_replication_lag help in these cases? |
| Comment by markus makela [ 2020-02-20 ] |
|
Here are a few ways how the GTID extraction part could be implemented:
Another way to do this would be to extend the causal_reads behavior with dedicated GTID tracking threads for each server. These threads would execute a MASTER_GTID_WAIT for each GTID on the master, effectively synchronizing the slave to a certain point. The GTID waiting could be done in batches to synchronize multiple transactions at the same time. This logical timestamp could then be used in place of the replication lag in readwritesplit. |
| Comment by markus makela [ 2020-02-26 ] |
|
Added a preliminary implementation that uses monitors to get the GTID positions. |