This issue was previously marked as a duplicate and it was opted to use last_gtid instead I believe. However this causes compatibility issues with ProxySQL for instance, which uses SESSION_TRACK_GTIDS to support causal reads as described here: https://proxysql.com/blog/proxysql-gtid-causal-reads/.
It might prevent someone from migrating from MySQL to MariaDB and cause the reverse instead.
would that help? MariaDB gtids are different from MySQL, so proxysql MySQL-specific causal reads might not work on MariaDB with or without SESSION_TRACK_GTIDS
Sergei Golubchik
added a comment - would that help? MariaDB gtids are different from MySQL, so proxysql MySQL-specific causal reads might not work on MariaDB with or without SESSION_TRACK_GTIDS
So what would be the proper implementation? I am having this same problem I can't implement MySQL specific casual reads because Proxysql expects session_track_gtids to exist on Mariadb. I've had to take read/write users and pin them to the same group which negates any possible performance advantage. If I switch to Percona/Oracle then this problem would be solvable.
I've seen numerous tickets opened about this issue but there does not appear to be a clear implementation path. I just recently asked for clarification and was told it does support this mechanism in this ticket: CONC-302 but perhaps not in the same way?
Can you offer any suggestions on a way to offer some compatibility? I would assume proxysql would have to alter its implementation and actually attempt to get GTID from that returned packet?
Justin Gerry
added a comment - - edited So what would be the proper implementation? I am having this same problem I can't implement MySQL specific casual reads because Proxysql expects session_track_gtids to exist on Mariadb. I've had to take read/write users and pin them to the same group which negates any possible performance advantage. If I switch to Percona/Oracle then this problem would be solvable.
I've seen numerous tickets opened about this issue but there does not appear to be a clear implementation path. I just recently asked for clarification and was told it does support this mechanism in this ticket: CONC-302 but perhaps not in the same way?
However it does not appear to work as its still missing support for the actual variable/parameter. I've noted my findings here: https://github.com/sysown/proxysql/issues/3059
To summerize I see "Unknown system variable 'SESSION_TRACK_GTIDS'" since MariaDB does not have the actual variable.
I'm assuming Proxysql would have to alter the implementation since it expects session_track_gtids to actually exist on the backend MariaDB server.
However it does appear that the OK packet does contain the GTID. https://mariadb.com/kb/en/ok_packet/
Can you offer any suggestions on a way to offer some compatibility? I would assume proxysql would have to alter its implementation and actually attempt to get GTID from that returned packet?
For more background, here is a good way to test implementation of MySQL casual reads: https://github.com/sysown/proxysql/issues/2022
Thanks jgerry2002. It seems that ProxySQL might not care that MariaDB gtids are different, if it will just compare them as strings. rcannao would, of course, know for sure.
I'll reopen this as a feature request.
Sergei Golubchik
added a comment - Thanks jgerry2002 . It seems that ProxySQL might not care that MariaDB gtids are different, if it will just compare them as strings.
rcannao would, of course, know for sure.
I'll reopen this as a feature request.
Very much appreciated as there does seem to be conversation regarding this. Hopefully we can get some traction on this since there is support in the OK packet, it just may need some modifications on the ProxSQL side of things.
Justin Gerry
added a comment - Very much appreciated as there does seem to be conversation regarding this. Hopefully we can get some traction on this since there is support in the OK packet, it just may need some modifications on the ProxSQL side of things.
@René Cannaò - any comments on this? Seems this implementation is very close to fully functioning if you could provide some comments.
Justin Gerry
added a comment - @René Cannaò - any comments on this? Seems this implementation is very close to fully functioning if you could provide some comments.
[ProxySQL provided PR on MariaDB compatibility (not merged) is reformatting the gtid to a MariaDB syntax. Reasoning unclear as the WAIT_FOR_EXECUTED_GTID_SET or MariaDB MASTER_GTID_WAIT would need to be in the application still?
Daniel Black
added a comment - [ProxySQL provided PR on MariaDB compatibility (not merged) is reformatting the gtid to a MariaDB syntax. Reasoning unclear as the WAIT_FOR_EXECUTED_GTID_SET or MariaDB MASTER_GTID_WAIT would need to be in the application still?
People
Unassigned
Maarten Manders
Votes:
2Vote for this issue
Watchers:
6Start watching this issue
Dates
Created:
Updated:
Git Integration
Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.
{"report":{"fcp":787.2000000476837,"ttfb":189.5,"pageVisibility":"visible","entityId":89489,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"5fa49918-3b68-4651-8173-244c235a94dd","navigationType":0,"readyForUser":850.2000000476837,"redirectCount":0,"resourceLoadedEnd":515.0999999046326,"resourceLoadedStart":197.5,"resourceTiming":[{"duration":3.799999952316284,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":197.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":197.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":201.29999995231628,"responseStart":0,"secureConnectionStart":0},{"duration":3.5999999046325684,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bu7/820016/12ta74/8679b4946efa1a0bb029a3a22206fb5d/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":197.79999995231628,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":197.79999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":201.39999985694885,"responseStart":0,"secureConnectionStart":0},{"duration":207.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/fbf975c0cce4b1abf04784eeae9ba1f4-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":197.89999985694885,"connectEnd":197.89999985694885,"connectStart":197.89999985694885,"domainLookupEnd":197.89999985694885,"domainLookupStart":197.89999985694885,"fetchStart":197.89999985694885,"redirectEnd":0,"redirectStart":0,"requestStart":206.09999990463257,"responseEnd":405.39999985694885,"responseStart":233.09999990463257,"secureConnectionStart":197.89999985694885},{"duration":317.09999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/099b33461394b8015fc36c0a4b96e19f-CDN/lu2bu7/820016/12ta74/8679b4946efa1a0bb029a3a22206fb5d/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":198,"connectEnd":198,"connectStart":198,"domainLookupEnd":198,"domainLookupStart":198,"fetchStart":198,"redirectEnd":0,"redirectStart":0,"requestStart":206.39999985694885,"responseEnd":515.0999999046326,"responseStart":224.59999990463257,"secureConnectionStart":198},{"duration":29,"initiatorType":"script","name":"https://jira.mariadb.org/s/94c15bff32baef80f4096a08aceae8bc-CDN/lu2bu7/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":198.09999990463257,"connectEnd":198.09999990463257,"connectStart":198.09999990463257,"domainLookupEnd":198.09999990463257,"domainLookupStart":198.09999990463257,"fetchStart":198.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":206.79999995231628,"responseEnd":227.09999990463257,"responseStart":221.5,"secureConnectionStart":198.09999990463257},{"duration":30.799999952316284,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":198.20000004768372,"connectEnd":198.20000004768372,"connectStart":198.20000004768372,"domainLookupEnd":198.20000004768372,"domainLookupStart":198.20000004768372,"fetchStart":198.20000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":207,"responseEnd":229,"responseStart":222.79999995231628,"secureConnectionStart":198.20000004768372},{"duration":40.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":198.20000004768372,"connectEnd":198.20000004768372,"connectStart":198.20000004768372,"domainLookupEnd":198.20000004768372,"domainLookupStart":198.20000004768372,"fetchStart":198.20000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":207.20000004768372,"responseEnd":238.70000004768372,"responseStart":232.09999990463257,"secureConnectionStart":198.20000004768372},{"duration":8.200000047683716,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bu7/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":198.39999985694885,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":198.39999985694885,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":206.59999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":63.200000047683716,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":198.5,"connectEnd":198.5,"connectStart":198.5,"domainLookupEnd":198.5,"domainLookupStart":198.5,"fetchStart":198.5,"redirectEnd":0,"redirectStart":0,"requestStart":211.59999990463257,"responseEnd":261.7000000476837,"responseStart":259,"secureConnectionStart":198.5},{"duration":8.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bu7/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":198.59999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":198.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":207.09999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":41.09999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/3339d87fa2538a859872f2df449bf8d0-CDN/lu2bu7/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":198.70000004768372,"connectEnd":198.70000004768372,"connectStart":198.70000004768372,"domainLookupEnd":198.70000004768372,"domainLookupStart":198.70000004768372,"fetchStart":198.70000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":214.20000004768372,"responseEnd":239.79999995231628,"responseStart":237.09999990463257,"secureConnectionStart":198.70000004768372},{"duration":284,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":202.39999985694885,"connectEnd":202.39999985694885,"connectStart":202.39999985694885,"domainLookupEnd":202.39999985694885,"domainLookupStart":202.39999985694885,"fetchStart":202.39999985694885,"redirectEnd":0,"redirectStart":0,"requestStart":245.5,"responseEnd":486.39999985694885,"responseStart":481.39999985694885,"secureConnectionStart":202.39999985694885},{"duration":284.2999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":202.5,"connectEnd":202.5,"connectStart":202.5,"domainLookupEnd":202.5,"domainLookupStart":202.5,"fetchStart":202.5,"redirectEnd":0,"redirectStart":0,"requestStart":258.5,"responseEnd":486.7999999523163,"responseStart":482.89999985694885,"secureConnectionStart":202.5},{"duration":118.79999995231628,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":551.2999999523163,"connectEnd":551.2999999523163,"connectStart":551.2999999523163,"domainLookupEnd":551.2999999523163,"domainLookupStart":551.2999999523163,"fetchStart":551.2999999523163,"redirectEnd":0,"redirectStart":0,"requestStart":641.2999999523163,"responseEnd":670.0999999046326,"responseStart":669.5,"secureConnectionStart":551.2999999523163},{"duration":120.29999995231628,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":780.7000000476837,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":780.7000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":901,"responseStart":0,"secureConnectionStart":0},{"duration":146.70000004768372,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":787,"connectEnd":787,"connectStart":787,"domainLookupEnd":787,"domainLookupStart":787,"fetchStart":787,"redirectEnd":0,"redirectStart":0,"requestStart":902.3999998569489,"responseEnd":933.7000000476837,"responseStart":932.0999999046326,"secureConnectionStart":787}],"fetchStart":0,"domainLookupStart":17,"domainLookupEnd":26,"connectStart":26,"connectEnd":45,"secureConnectionStart":34,"requestStart":45,"responseStart":190,"responseEnd":202,"domLoading":193,"domInteractive":944,"domContentLoadedEventStart":944,"domContentLoadedEventEnd":988,"domComplete":1274,"loadEventStart":1274,"loadEventEnd":1274,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":914.7999999523163},{"name":"bigPipe.sidebar-id.end","time":915.5},{"name":"bigPipe.activity-panel-pipe-id.start","time":915.5999999046326},{"name":"bigPipe.activity-panel-pipe-id.end","time":917.3999998569489},{"name":"activityTabFullyLoaded","time":1007.2999999523163}],"measures":[],"correlationId":"bb6eb4b77b073a","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":80,"dbReadsTimeInMs":13,"dbConnsTimeInMs":19,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
would that help? MariaDB gtids are different from MySQL, so proxysql MySQL-specific causal reads might not work on MariaDB with or without SESSION_TRACK_GTIDS