Type:
Task
Priority:
Major
Resolution:
Fixed
Provide a mechanism to filter replication events on the slave replication
server based on domain_id.
New master definitions:
(1) DO_DOMAIN_IDS = (N[,N] )
Accepts a comma-separated list of domain_ids, the replication events of
which will be kept.
If a CHANGE MASTER command is executed without DO_DOMAIN_IDS, the
existing list of domain ids (if any) would be preserved.
DO_DOMAIN_IDS=() can be used to clear the list.
The list should show in SHOW MASTER STATUS output and master_info file.
On restart, the list should automatically get populated from master_info.
(2) IGNORE_DOMAIN_IDS = (N[,N] )
Accepts a comma-separated list of domain_ids, the replication events of
which will be filtered out.
If a CHANGE MASTER command is executed without IGNORE_DOMAIN_IDS, the
existing list of domain ids (if any) would be preserved.
IGNORE_DOMAIN_IDS=() can be used to clear the list.
The list should show in SHOW MASTER STATUS output and master_info file.
On restart, the list should automatically get populated from master_info.
Additional notes:
The list preservation rule is consistent with IGNORE_SERVER_IDS.
Both the lists (DO_ & IGNORE_) cannot be non-empty at the same time.
CHANGE MASTER TO command would fail with ER_MASTER_INFO if it tries
to set both the lists.
Examples:
CHANGE MASTER TO .. IGNORE_DOMAIN_IDS= (1,2,3) .. ;
CHANGE MASTER TO .. DO_DOMAIN_IDS= (99) .. ;
CHANGE MASTER TO .. DO_DOMAIN_IDS= () .. ;
$ tail -2 master.info
do_domain_ids=0
ignore_domain_ids=3 1 2 3
{"report":{"fcp":2953.8000000715256,"ttfb":358.39999997615814,"pageVisibility":"visible","entityId":43403,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"354c49f3-e068-4835-ae85-f725d12098ec","navigationType":0,"readyForUser":3044.399999976158,"redirectCount":0,"resourceLoadedEnd":2537.5,"resourceLoadedStart":373,"resourceTiming":[{"duration":1160.7000000476837,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":373,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":373,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1533.7000000476837,"responseStart":0,"secureConnectionStart":0},{"duration":1171.8999999761581,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/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&whisper-enabled=true","startTime":373.3000000715256,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":373.3000000715256,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1545.2000000476837,"responseStart":0,"secureConnectionStart":0},{"duration":1743.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":373.5,"connectEnd":373.5,"connectStart":373.5,"domainLookupEnd":373.5,"domainLookupStart":373.5,"fetchStart":373.5,"redirectEnd":0,"redirectStart":0,"requestStart":1572.8999999761581,"responseEnd":2117,"responseStart":1590.8999999761581,"secureConnectionStart":373.5},{"duration":2125.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/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&whisper-enabled=true","startTime":373.7000000476837,"connectEnd":373.7000000476837,"connectStart":373.7000000476837,"domainLookupEnd":373.7000000476837,"domainLookupStart":373.7000000476837,"fetchStart":373.7000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":1572.7000000476837,"responseEnd":2499.2000000476837,"responseStart":1588,"secureConnectionStart":373.7000000476837},{"duration":1226.8999999761581,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":373.8000000715256,"connectEnd":373.8000000715256,"connectStart":373.8000000715256,"domainLookupEnd":373.8000000715256,"domainLookupStart":373.8000000715256,"fetchStart":373.8000000715256,"redirectEnd":0,"redirectStart":0,"requestStart":1575.3999999761581,"responseEnd":1600.7000000476837,"responseStart":1597.2000000476837,"secureConnectionStart":373.8000000715256},{"duration":1227.7000000476837,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":373.89999997615814,"connectEnd":373.89999997615814,"connectStart":373.89999997615814,"domainLookupEnd":373.89999997615814,"domainLookupStart":373.89999997615814,"fetchStart":373.89999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":1575.8000000715256,"responseEnd":1601.6000000238419,"responseStart":1598.3999999761581,"secureConnectionStart":373.89999997615814},{"duration":1244.6000000238419,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":374.2000000476837,"connectEnd":374.2000000476837,"connectStart":374.2000000476837,"domainLookupEnd":374.2000000476837,"domainLookupStart":374.2000000476837,"fetchStart":374.2000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":1595.1000000238419,"responseEnd":1618.8000000715256,"responseStart":1616.1000000238419,"secureConnectionStart":374.2000000476837},{"duration":1220.1000000238419,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":374.39999997615814,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":374.39999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1594.5,"responseStart":0,"secureConnectionStart":0},{"duration":1247.3999999761581,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":374.5,"connectEnd":374.5,"connectStart":374.5,"domainLookupEnd":374.5,"domainLookupStart":374.5,"fetchStart":374.5,"redirectEnd":0,"redirectStart":0,"requestStart":1596.6000000238419,"responseEnd":1621.8999999761581,"responseStart":1619.2000000476837,"secureConnectionStart":374.5},{"duration":1220.8999999761581,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/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":374.7000000476837,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":374.7000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1595.6000000238419,"responseStart":0,"secureConnectionStart":0},{"duration":1252.5999999046326,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/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":375.3000000715256,"connectEnd":375.3000000715256,"connectStart":375.3000000715256,"domainLookupEnd":375.3000000715256,"domainLookupStart":375.3000000715256,"fetchStart":375.3000000715256,"redirectEnd":0,"redirectStart":0,"requestStart":1596.7000000476837,"responseEnd":1627.8999999761581,"responseStart":1620.1000000238419,"secureConnectionStart":375.3000000715256},{"duration":2158.2000000476837,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":376.39999997615814,"connectEnd":376.39999997615814,"connectStart":376.39999997615814,"domainLookupEnd":376.39999997615814,"domainLookupStart":376.39999997615814,"fetchStart":376.39999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":1889.3000000715256,"responseEnd":2534.600000023842,"responseStart":2515.600000023842,"secureConnectionStart":376.39999997615814},{"duration":2151.7999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":385.7000000476837,"connectEnd":385.7000000476837,"connectStart":385.7000000476837,"domainLookupEnd":385.7000000476837,"domainLookupStart":385.7000000476837,"fetchStart":385.7000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":2205.2000000476837,"responseEnd":2537.5,"responseStart":2527.3000000715256,"secureConnectionStart":385.7000000476837},{"duration":309.10000002384186,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":2333,"connectEnd":2333,"connectStart":2333,"domainLookupEnd":2333,"domainLookupStart":2333,"fetchStart":2333,"redirectEnd":0,"redirectStart":0,"requestStart":2610,"responseEnd":2642.100000023842,"responseStart":2641.2000000476837,"secureConnectionStart":2333}],"fetchStart":0,"domainLookupStart":112,"domainLookupEnd":118,"connectStart":118,"connectEnd":138,"secureConnectionStart":126,"requestStart":139,"responseStart":359,"responseEnd":386,"domLoading":364,"domInteractive":3125,"domContentLoadedEventStart":3125,"domContentLoadedEventEnd":3191,"domComplete":4826,"loadEventStart":4827,"loadEventEnd":4827,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":3091.8000000715256},{"name":"bigPipe.sidebar-id.end","time":3096.3000000715256},{"name":"bigPipe.activity-panel-pipe-id.start","time":3096.399999976158},{"name":"bigPipe.activity-panel-pipe-id.end","time":3098.600000023842},{"name":"activityTabFullyLoaded","time":3208.7000000476837}],"measures":[],"correlationId":"6a68e24c11f025","effectiveType":"4g","downlink":9.1,"rtt":0,"serverDuration":132,"dbReadsTimeInMs":11,"dbConnsTimeInMs":21,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
It might be better to do it like ignored server ids. Eg.
CHANGE MASTER TO IGNORE_DOMAIN_IDS= (1,2)
CHANGE MASTER TO ONLY_DOMAIN_IDS= (0)
This way, it is possible to configure it per master connection, which would seem to be useful.