Type:
Task
Priority:
Blocker
Resolution:
Fixed
Why
In original, one MariaDB server instance is identified by one address (IP + port). That is not enough for a shared proxy for multi servers. Like HTTP HOST header, which enables virtual host in a web server machine [1] . The similar approach is used in Oracle net listener by adding INSTANCE_NAME [2] . Adding the host name field helps the proxy layer to find the backend server, monitor full throughput easily, and can do the specific logic on different host. For cloud service, let server instance can be identified by <server name, address (IP + port)> will help to simplified workflow for the frontend proxy.
What to do
Since 10.0.5. MariaDB started supporting applications to pass key/value connection attributes when connecting [3] .
Adding host name field in connection attributes is a good idea. The connection attributes are passed from client to server in the first communication package. The attributes is optional so that it keeps back compatibility.
MariaDB reserves the attribute names that begin with an underscore (_) for internal use which should not be created by application programs [4] . The proposal is using the same approach to reserve one more name. The attribute is named ‘_host_name’ to record the host name used in the connection string (the connection parameters). This field is used by the server or proxy to figure out which server the client is trying to connect to. The client drivers that support this protocol sends the attribute in the handshake response packet.
The code change involves:
1. Add ‘_host_name’ attributes in MariaDB owned client driver.
2. Add a new document to encourage other community client driver to including this attribute.
3. Support this protocol in MaxScale proxy.
[1] . https://stackoverflow.com/questions/43156023/what-is-http-host-header
[2] . https://docs.oracle.com/cd/E11882_01/network.112/e41945/listenercfg.htm#NETAG299
[3] . https://mariadb.com/kb/en/library/performance-schema-session_account_connect_attrs-table/
[4.] https://dev.mysql.com/doc/refman/5.7/en/performance-schema-connection-attribute-tables.html
Alex Lee
created issue -
2018-03-02 08:15
xiangyhu
made changes -
2018-05-09 07:06
Field
Original Value
New Value
Attachment
hostname.png
[ 45612
]
Sergey Vojtovich
made changes -
2018-05-10 09:37
Labels
client protocol
client contribution foundation protocol
Sergey Vojtovich
made changes -
2018-05-10 09:53
Assignee
Vladislav Vaintroub
[ wlad
]
Vladislav Vaintroub
made changes -
2018-05-11 14:46
issue.field.resolutiondate
2018-05-11 14:46:53.0
2018-05-11 14:46:53.349
Vladislav Vaintroub
made changes -
2018-05-11 14:46
Fix Version/s
10.3.7
[ 23005
]
Fix Version/s
10.3
[ 22126
]
Resolution
Fixed
[ 1
]
Status
Open
[ 1
]
Closed
[ 6
]
Sergei Golubchik
made changes -
2018-05-11 15:08
Resolution
Fixed
[ 1
]
Status
Closed
[ 6
]
Stalled
[ 10000
]
Sergei Golubchik
made changes -
2018-05-11 15:08
Priority
Major
[ 3
]
Blocker
[ 1
]
Sergei Golubchik
made changes -
2018-05-11 15:09
Fix Version/s
10.3
[ 22126
]
Fix Version/s
10.3.7
[ 23005
]
Vladislav Vaintroub
made changes -
2018-05-18 16:36
Fix Version/s
10.3.7
[ 23005
]
Fix Version/s
10.3
[ 22126
]
Resolution
Fixed
[ 1
]
Status
Stalled
[ 10000
]
Closed
[ 6
]
Vladislav Vaintroub
made changes -
2018-05-19 19:25
Resolution
Fixed
[ 1
]
Status
Closed
[ 6
]
Stalled
[ 10000
]
Vladislav Vaintroub
made changes -
2018-05-22 14:53
Resolution
Fixed
[ 1
]
Status
Stalled
[ 10000
]
Closed
[ 6
]
Sergei Golubchik
made changes -
2021-12-06 21:23
Workflow
MariaDB v3
[ 85801
]
MariaDB v4
[ 133481
]
{"report":{"fcp":834,"ttfb":231.5,"pageVisibility":"visible","entityId":66099,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"596902e4-b09d-4cdd-b85f-d57f9a7999d7","navigationType":0,"readyForUser":913.8999999761581,"redirectCount":0,"resourceLoadedEnd":941.6000000238419,"resourceLoadedStart":236.80000007152557,"resourceTiming":[{"duration":9,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":236.80000007152557,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":236.80000007152557,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":245.80000007152557,"responseStart":0,"secureConnectionStart":0},{"duration":9.100000023841858,"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":237.10000002384186,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":237.10000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":246.20000004768372,"responseStart":0,"secureConnectionStart":0},{"duration":76.19999992847443,"initiatorType":"script","name":"https://jira.mariadb.org/s/fbf975c0cce4b1abf04784eeae9ba1f4-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":237.30000007152557,"connectEnd":237.30000007152557,"connectStart":237.30000007152557,"domainLookupEnd":237.30000007152557,"domainLookupStart":237.30000007152557,"fetchStart":237.30000007152557,"redirectEnd":0,"redirectStart":0,"requestStart":237.30000007152557,"responseEnd":313.5,"responseStart":313.5,"secureConnectionStart":237.30000007152557},{"duration":184.90000009536743,"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":237.39999997615814,"connectEnd":237.39999997615814,"connectStart":237.39999997615814,"domainLookupEnd":237.39999997615814,"domainLookupStart":237.39999997615814,"fetchStart":237.39999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":237.39999997615814,"responseEnd":422.3000000715256,"responseStart":422.3000000715256,"secureConnectionStart":237.39999997615814},{"duration":187.89999997615814,"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":237.70000004768372,"connectEnd":237.70000004768372,"connectStart":237.70000004768372,"domainLookupEnd":237.70000004768372,"domainLookupStart":237.70000004768372,"fetchStart":237.70000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":237.70000004768372,"responseEnd":425.60000002384186,"responseStart":425.60000002384186,"secureConnectionStart":237.70000004768372},{"duration":188.10000002384186,"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":237.89999997615814,"connectEnd":237.89999997615814,"connectStart":237.89999997615814,"domainLookupEnd":237.89999997615814,"domainLookupStart":237.89999997615814,"fetchStart":237.89999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":237.89999997615814,"responseEnd":426,"responseStart":426,"secureConnectionStart":237.89999997615814},{"duration":188.39999997615814,"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":238,"connectEnd":238,"connectStart":238,"domainLookupEnd":238,"domainLookupStart":238,"fetchStart":238,"redirectEnd":0,"redirectStart":0,"requestStart":238,"responseEnd":426.39999997615814,"responseStart":426.39999997615814,"secureConnectionStart":238},{"duration":219.39999997615814,"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":238.20000004768372,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":238.20000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":457.60000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":188.40000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":238.39999997615814,"connectEnd":238.39999997615814,"connectStart":238.39999997615814,"domainLookupEnd":238.39999997615814,"domainLookupStart":238.39999997615814,"fetchStart":238.39999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":238.39999997615814,"responseEnd":426.8000000715256,"responseStart":426.8000000715256,"secureConnectionStart":238.39999997615814},{"duration":219.20000004768372,"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":238.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":238.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":457.7000000476837,"responseStart":0,"secureConnectionStart":0},{"duration":188.69999992847443,"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":238.70000004768372,"connectEnd":238.70000004768372,"connectStart":238.70000004768372,"domainLookupEnd":238.70000004768372,"domainLookupStart":238.70000004768372,"fetchStart":238.70000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":238.70000004768372,"responseEnd":427.39999997615814,"responseStart":427.39999997615814,"secureConnectionStart":238.70000004768372},{"duration":596.1000000238419,"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":239.70000004768372,"connectEnd":239.70000004768372,"connectStart":239.70000004768372,"domainLookupEnd":239.70000004768372,"domainLookupStart":239.70000004768372,"fetchStart":239.70000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":239.70000004768372,"responseEnd":835.8000000715256,"responseStart":835.8000000715256,"secureConnectionStart":239.70000004768372},{"duration":591.8999999761581,"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":244.60000002384186,"connectEnd":244.60000002384186,"connectStart":244.60000002384186,"domainLookupEnd":244.60000002384186,"domainLookupStart":244.60000002384186,"fetchStart":244.60000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":244.60000002384186,"responseEnd":836.5,"responseStart":836.5,"secureConnectionStart":244.60000002384186},{"duration":156.30000007152557,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":468.89999997615814,"connectEnd":468.89999997615814,"connectStart":468.89999997615814,"domainLookupEnd":468.89999997615814,"domainLookupStart":468.89999997615814,"fetchStart":468.89999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":468.89999997615814,"responseEnd":625.2000000476837,"responseStart":625.2000000476837,"secureConnectionStart":468.89999997615814},{"duration":108.60000002384186,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2bu7/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/css/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":730.6000000238419,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":730.6000000238419,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":839.2000000476837,"responseStart":0,"secureConnectionStart":0},{"duration":174.10000002384186,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/e65b778d185daf5aee24936755b43da6/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":731.6000000238419,"connectEnd":731.6000000238419,"connectStart":731.6000000238419,"domainLookupEnd":731.6000000238419,"domainLookupStart":731.6000000238419,"fetchStart":731.6000000238419,"redirectEnd":0,"redirectStart":0,"requestStart":731.6000000238419,"responseEnd":905.7000000476837,"responseStart":905.7000000476837,"secureConnectionStart":731.6000000238419},{"duration":127.70000004768372,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":827,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":827,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":954.7000000476837,"responseStart":0,"secureConnectionStart":0},{"duration":209.60000002384186,"initiatorType":"script","name":"https://jira.mariadb.org/s/f51ef5507eea4c158f257c66c93b2a3f-CDN/lu2bu7/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/js/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":732,"connectEnd":732,"connectStart":732,"domainLookupEnd":732,"domainLookupStart":732,"fetchStart":732,"redirectEnd":0,"redirectStart":0,"requestStart":732,"responseEnd":941.6000000238419,"responseStart":941.6000000238419,"secureConnectionStart":732}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":19,"responseStart":232,"responseEnd":240,"domLoading":235,"domInteractive":1009,"domContentLoadedEventStart":1009,"domContentLoadedEventEnd":1062,"domComplete":1293,"loadEventStart":1293,"loadEventEnd":1293,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":960.6000000238419},{"name":"bigPipe.sidebar-id.end","time":961.3000000715256},{"name":"bigPipe.activity-panel-pipe-id.start","time":961.5},{"name":"bigPipe.activity-panel-pipe-id.end","time":966.8000000715256},{"name":"activityTabFullyLoaded","time":1086.1000000238419}],"measures":[],"correlationId":"a4e9cd5849dfe7","effectiveType":"4g","downlink":9.2,"rtt":0,"serverDuration":155,"dbReadsTimeInMs":27,"dbConnsTimeInMs":36,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
Thanks for the detailed feature specification. Do you have any patches / prototype code or something related to this?