Type:
Task
Priority:
Major
Resolution:
Unresolved
Fix Version/s:
None
Component/s:
None
NUMA hardware is becoming more common. Access to RAM that is not local to the CPU nodes is more expensive than accessing it locally. MariaDB should implement mechanisms to optimize the workload to keep CPUs of a node accessing their local memory.
example numa architecture:
$ numactl --hardware
available: 2 nodes (0,8)
node 0 cpus: 0 8 16 24 32 40 48 56 64 72
node 0 size: 130705 MB
node 0 free: 80310 MB
node 8 cpus: 80 88 96 104 112 120 128 136 144
node 8 size: 130649 MB
node 8 free: 81152 MB
node distances:
node 0 8
0: 10 40
8: 40 10
Components of the implementation include:
A meaningful configuration that makes conflicts with existing settings obvious
each innodb buffer pool instances to be constrained to a NUMA node
SQL threads to be allocated by a user configurable map of one or more of user, connecting host, default database (based on initial connection)
The user SQL thread will be pinned to CPUs associated with a node
Innodb accesses by the SQL thread will be to/from the innodb buffer pool instances first
Accounting of CPU/memory utilization for the mapping identifier to enable automated or configuration based of node to this mapping identifier.
Innodb background threads to be per node to facilitate the innodb buffer pool instance processing locally
(Marko, Jan, et al. please edit with important design/implementation details)
I'm willing to mentor this (with help).
relates to
MDEV-5774
Enable numa interleaving by default when required conditions are met
Open
No workflow transitions have been executed yet.
{"report":{"fcp":798.8999999761581,"ttfb":198.19999998807907,"pageVisibility":"visible","entityId":60499,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"930d0a36-4de1-47df-8f1e-518b5da2b3ad","navigationType":0,"readyForUser":856.5999999642372,"redirectCount":0,"resourceLoadedEnd":948.6999999880791,"resourceLoadedStart":204.0999999642372,"resourceTiming":[{"duration":76.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":204.0999999642372,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":204.0999999642372,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":280.5999999642372,"responseStart":0,"secureConnectionStart":0},{"duration":76.5,"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":204.39999997615814,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":204.39999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":280.89999997615814,"responseStart":0,"secureConnectionStart":0},{"duration":131.39999997615814,"initiatorType":"script","name":"https://jira.mariadb.org/s/fbf975c0cce4b1abf04784eeae9ba1f4-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":204.5,"connectEnd":204.5,"connectStart":204.5,"domainLookupEnd":204.5,"domainLookupStart":204.5,"fetchStart":204.5,"redirectEnd":0,"redirectStart":0,"requestStart":204.5,"responseEnd":335.89999997615814,"responseStart":335.89999997615814,"secureConnectionStart":204.5},{"duration":218,"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":204.69999998807907,"connectEnd":204.69999998807907,"connectStart":204.69999998807907,"domainLookupEnd":204.69999998807907,"domainLookupStart":204.69999998807907,"fetchStart":204.69999998807907,"redirectEnd":0,"redirectStart":0,"requestStart":204.69999998807907,"responseEnd":422.69999998807907,"responseStart":422.5999999642372,"secureConnectionStart":204.69999998807907},{"duration":221.60000002384186,"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":204.89999997615814,"connectEnd":204.89999997615814,"connectStart":204.89999997615814,"domainLookupEnd":204.89999997615814,"domainLookupStart":204.89999997615814,"fetchStart":204.89999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":204.89999997615814,"responseEnd":426.5,"responseStart":426.5,"secureConnectionStart":204.89999997615814},{"duration":222.89999997615814,"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":205,"connectEnd":205,"connectStart":205,"domainLookupEnd":205,"domainLookupStart":205,"fetchStart":205,"redirectEnd":0,"redirectStart":0,"requestStart":205,"responseEnd":427.89999997615814,"responseStart":427.89999997615814,"secureConnectionStart":205},{"duration":224.10000002384186,"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":205.19999998807907,"connectEnd":205.19999998807907,"connectStart":205.19999998807907,"domainLookupEnd":205.19999998807907,"domainLookupStart":205.19999998807907,"fetchStart":205.19999998807907,"redirectEnd":0,"redirectStart":0,"requestStart":205.19999998807907,"responseEnd":429.30000001192093,"responseStart":429.30000001192093,"secureConnectionStart":205.19999998807907},{"duration":272.30000001192093,"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":205.39999997615814,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":205.39999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":477.69999998807907,"responseStart":0,"secureConnectionStart":0},{"duration":225.30000001192093,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":205.5999999642372,"connectEnd":205.5999999642372,"connectStart":205.5999999642372,"domainLookupEnd":205.5999999642372,"domainLookupStart":205.5999999642372,"fetchStart":205.5999999642372,"redirectEnd":0,"redirectStart":0,"requestStart":205.5999999642372,"responseEnd":430.89999997615814,"responseStart":430.89999997615814,"secureConnectionStart":205.5999999642372},{"duration":272.19999998807907,"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":205.69999998807907,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":205.69999998807907,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":477.89999997615814,"responseStart":0,"secureConnectionStart":0},{"duration":226.5999999642372,"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":205.80000001192093,"connectEnd":205.80000001192093,"connectStart":205.80000001192093,"domainLookupEnd":205.80000001192093,"domainLookupStart":205.80000001192093,"fetchStart":205.80000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":205.80000001192093,"responseEnd":432.39999997615814,"responseStart":432.39999997615814,"secureConnectionStart":205.80000001192093},{"duration":724.8000000119209,"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":211,"connectEnd":211,"connectStart":211,"domainLookupEnd":211,"domainLookupStart":211,"fetchStart":211,"redirectEnd":0,"redirectStart":0,"requestStart":211,"responseEnd":935.8000000119209,"responseStart":935.8000000119209,"secureConnectionStart":211},{"duration":723.4000000357628,"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":213.89999997615814,"connectEnd":213.89999997615814,"connectStart":213.89999997615814,"domainLookupEnd":213.89999997615814,"domainLookupStart":213.89999997615814,"fetchStart":213.89999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":213.89999997615814,"responseEnd":937.3000000119209,"responseStart":937.3000000119209,"secureConnectionStart":213.89999997615814},{"duration":148.29999995231628,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":489.30000001192093,"connectEnd":489.30000001192093,"connectStart":489.30000001192093,"domainLookupEnd":489.30000001192093,"domainLookupStart":489.30000001192093,"fetchStart":489.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":489.30000001192093,"responseEnd":637.5999999642372,"responseStart":637.5999999642372,"secureConnectionStart":489.30000001192093},{"duration":197.5999999642372,"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":751,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":751,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":948.5999999642372,"responseStart":0,"secureConnectionStart":0},{"duration":197.10000002384186,"initiatorType":"link","name":"https://jira.mariadb.org/s/50bc9be5bfead1a25e72c1a9338c94f6-CDN/lu2bu7/820016/12ta74/e108c7645258ccb43280ed3404e3e949/_/download/contextbatch/css/com.atlassian.jira.plugins.jira-development-integration-plugin:0,-_super,-jira.view.issue,-jira.global,-jira.general,-jira.browse.project,-project.issue.navigator,-atl.general/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":751.5999999642372,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":751.5999999642372,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":948.6999999880791,"responseStart":0,"secureConnectionStart":0},{"duration":188.5,"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":752.3999999761581,"connectEnd":752.3999999761581,"connectStart":752.3999999761581,"domainLookupEnd":752.3999999761581,"domainLookupStart":752.3999999761581,"fetchStart":752.3999999761581,"redirectEnd":0,"redirectStart":0,"requestStart":752.3999999761581,"responseEnd":940.8999999761581,"responseStart":940.8999999761581,"secureConnectionStart":752.3999999761581},{"duration":190.89999997615814,"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":752.8000000119209,"connectEnd":752.8000000119209,"connectStart":752.8000000119209,"domainLookupEnd":752.8000000119209,"domainLookupStart":752.8000000119209,"fetchStart":752.8000000119209,"redirectEnd":0,"redirectStart":0,"requestStart":752.8000000119209,"responseEnd":943.6999999880791,"responseStart":943.6999999880791,"secureConnectionStart":752.8000000119209},{"duration":200.79999995231628,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":790.8000000119209,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":790.8000000119209,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":991.5999999642372,"responseStart":0,"secureConnectionStart":0},{"duration":192.60000002384186,"initiatorType":"script","name":"https://jira.mariadb.org/s/86ee9bbc76cd1bcd8556fcdcf46241c9-CDN/lu2bu7/820016/12ta74/e108c7645258ccb43280ed3404e3e949/_/download/contextbatch/js/com.atlassian.jira.plugins.jira-development-integration-plugin:0,-_super,-jira.view.issue,-jira.global,-jira.general,-jira.browse.project,-project.issue.navigator,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":753.0999999642372,"connectEnd":753.0999999642372,"connectStart":753.0999999642372,"domainLookupEnd":753.0999999642372,"domainLookupStart":753.0999999642372,"fetchStart":753.0999999642372,"redirectEnd":0,"redirectStart":0,"requestStart":753.0999999642372,"responseEnd":945.6999999880791,"responseStart":945.6999999880791,"secureConnectionStart":753.0999999642372}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":51,"responseStart":198,"responseEnd":214,"domLoading":201,"domInteractive":1020,"domContentLoadedEventStart":1020,"domContentLoadedEventEnd":1065,"domComplete":1245,"loadEventStart":1245,"loadEventEnd":1246,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":994.3000000119209},{"name":"bigPipe.sidebar-id.end","time":995},{"name":"bigPipe.activity-panel-pipe-id.start","time":995.1999999880791},{"name":"bigPipe.activity-panel-pipe-id.end","time":995.8000000119209},{"name":"activityTabFullyLoaded","time":1071.8999999761581}],"measures":[],"correlationId":"2bc1fb04c3f88a","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":87,"dbReadsTimeInMs":10,"dbConnsTimeInMs":18,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}