fa07e36b few rgi assertions. this can proof that rgi is always present
b97f88f2 MDEV-29069 follow-up optimize find_key
de7a5fc8 MDEV-29069 follow-up: fix replication with extra fields + tests
c71d8e92 rpl: check should go after defaults and vcols update
I have fixed a few bugs here. First, turned out that update_default_fields updates ALL default
fields that have no explicit values, and fields with index < master_columns are not marked for
write, which led to a crash (assertion).
This is fixed in de7a5fc8 fix replication with extra fields + tests, and also few other
post-review things are there, related to master_columns, record_compare() and get_usable_key_parts().
We have discussed with you the optimization to avoid key_parts traversal for each event
(and therefore each find_key() call). I have implemented it in {b97f88f2 optimize find_key}}.
Still I have a feeling that find_key now looks complicated, and I was looking for reasons
to pass RPL_TABLE_LIST directly, and return directly instead of Rpl_table_data.
I have placed a few assertion for rgi presence to prove that it can be safe, but not sure yet.
Finally, i have totally reworked a usability of a key part in{{55c376fd improve DEFAULT rules}}.
It looks complicated now, so here's the idea: it's not enough to have a deterministic default
value, as the underlying fields should also be either explicitly set, or in turn have
deterministic/explicit DEFAULT.
Same, btw, applies to virtual columns, and few tests are included to demonstrate this.
EDIT: Sorry, wrong branch, it's 10.11, not 10.10
Nikita Malyavin
added a comment - - edited I have updated the branch to 10.11, please see bb-10.11-ddl-nikita [ github ]
Sergei, in this new branch the commits you have already reviewed:
150f8747 MDEV-29069 follow-up: support partially usable keys
bc70105f MDEV-29069 follow-up: allow deterministic DEFAULTs
04678329 MDEV-29069 ER_KEY_NOT_FOUND on online autoinc addition + concurrent DELETE
New commits for review are c71d8e92...774a0bb9 , namely:
55c376fd MDEV-29069 follow-up: improve DEFAULT rules
fa07e36b few rgi assertions. this can proof that rgi is always present
b97f88f2 MDEV-29069 follow-up optimize find_key
de7a5fc8 MDEV-29069 follow-up: fix replication with extra fields + tests
c71d8e92 rpl: check should go after defaults and vcols update
I have fixed a few bugs here. First, turned out that update_default_fields updates ALL default
fields that have no explicit values, and fields with index < master_columns are not marked for
write, which led to a crash (assertion).
This is fixed in de7a5fc8 fix replication with extra fields + tests , and also few other
post-review things are there, related to master_columns, record_compare() and get_usable_key_parts().
We have discussed with you the optimization to avoid key_parts traversal for each event
(and therefore each find_key() call). I have implemented it in {b97f88f2 optimize find_key}}.
Still I have a feeling that find_key now looks complicated, and I was looking for reasons
to pass RPL_TABLE_LIST directly, and return directly instead of Rpl_table_data.
I have placed a few assertion for rgi presence to prove that it can be safe, but not sure yet.
Finally, i have totally reworked a usability of a key part in{{55c376fd improve DEFAULT rules}}.
It looks complicated now, so here's the idea: it's not enough to have a deterministic default
value, as the underlying fields should also be either explicitly set, or in turn have
deterministic/explicit DEFAULT.
Same, btw, applies to virtual columns, and few tests are included to demonstrate this.
EDIT: Sorry, wrong branch, it's 10.11 , not 10.10
People
Sergei Golubchik
Elena Stepanova
Votes:
0Vote for this issue
Watchers:
3Start watching this issue
Dates
Created:
Updated:
Resolved:
Git Integration
Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.
{"report":{"fcp":1108.5,"ttfb":227.40000009536743,"pageVisibility":"visible","entityId":112626,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"f9b67568-84d8-43cd-9c9a-951b0365a150","navigationType":0,"readyForUser":1202.4000000953674,"redirectCount":0,"resourceLoadedEnd":1128.1000001430511,"resourceLoadedStart":233.10000014305115,"resourceTiming":[{"duration":364.19999980926514,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":233.10000014305115,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":233.10000014305115,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":597.2999999523163,"responseStart":0,"secureConnectionStart":0},{"duration":364.2999999523163,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/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":233.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":233.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":597.7000000476837,"responseStart":0,"secureConnectionStart":0},{"duration":357.59999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":233.60000014305115,"connectEnd":233.60000014305115,"connectStart":233.60000014305115,"domainLookupEnd":233.60000014305115,"domainLookupStart":233.60000014305115,"fetchStart":233.60000014305115,"redirectEnd":0,"redirectStart":0,"requestStart":233.60000014305115,"responseEnd":591.2000000476837,"responseStart":591.2000000476837,"secureConnectionStart":233.60000014305115},{"duration":423.10000014305115,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/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":233.79999995231628,"connectEnd":233.79999995231628,"connectStart":233.79999995231628,"domainLookupEnd":233.79999995231628,"domainLookupStart":233.79999995231628,"fetchStart":233.79999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":233.79999995231628,"responseEnd":656.9000000953674,"responseStart":656.9000000953674,"secureConnectionStart":233.79999995231628},{"duration":435.7999999523163,"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":234,"connectEnd":234,"connectStart":234,"domainLookupEnd":234,"domainLookupStart":234,"fetchStart":234,"redirectEnd":0,"redirectStart":0,"requestStart":234,"responseEnd":669.7999999523163,"responseStart":669.7000000476837,"secureConnectionStart":234},{"duration":465.09999990463257,"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":234.20000004768372,"connectEnd":234.20000004768372,"connectStart":234.20000004768372,"domainLookupEnd":234.20000004768372,"domainLookupStart":234.20000004768372,"fetchStart":234.20000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":234.20000004768372,"responseEnd":699.2999999523163,"responseStart":699.2999999523163,"secureConnectionStart":234.20000004768372},{"duration":479.5,"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":234.40000009536743,"connectEnd":234.40000009536743,"connectStart":234.40000009536743,"domainLookupEnd":234.40000009536743,"domainLookupStart":234.40000009536743,"fetchStart":234.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":234.40000009536743,"responseEnd":713.9000000953674,"responseStart":713.9000000953674,"secureConnectionStart":234.40000009536743},{"duration":523.5,"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":234.60000014305115,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":234.60000014305115,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":758.1000001430511,"responseStart":0,"secureConnectionStart":0},{"duration":484.10000014305115,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":234.79999995231628,"connectEnd":234.79999995231628,"connectStart":234.79999995231628,"domainLookupEnd":234.79999995231628,"domainLookupStart":234.79999995231628,"fetchStart":234.79999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":234.79999995231628,"responseEnd":718.9000000953674,"responseStart":718.9000000953674,"secureConnectionStart":234.79999995231628},{"duration":523.3999998569489,"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":234.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":234.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":758.2999999523163,"responseStart":0,"secureConnectionStart":0},{"duration":500.59999990463257,"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":235.10000014305115,"connectEnd":235.10000014305115,"connectStart":235.10000014305115,"domainLookupEnd":235.10000014305115,"domainLookupStart":235.10000014305115,"fetchStart":235.10000014305115,"redirectEnd":0,"redirectStart":0,"requestStart":235.10000014305115,"responseEnd":735.7000000476837,"responseStart":735.7000000476837,"secureConnectionStart":235.10000014305115},{"duration":736,"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":245.40000009536743,"connectEnd":245.40000009536743,"connectStart":245.40000009536743,"domainLookupEnd":245.40000009536743,"domainLookupStart":245.40000009536743,"fetchStart":245.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":245.40000009536743,"responseEnd":981.4000000953674,"responseStart":981.4000000953674,"secureConnectionStart":245.40000009536743},{"duration":879.4000000953674,"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":248.70000004768372,"connectEnd":248.70000004768372,"connectStart":248.70000004768372,"domainLookupEnd":248.70000004768372,"domainLookupStart":248.70000004768372,"fetchStart":248.70000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":248.70000004768372,"responseEnd":1128.1000001430511,"responseStart":1128.1000001430511,"secureConnectionStart":248.70000004768372},{"duration":209.20000004768372,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":773,"connectEnd":773,"connectStart":773,"domainLookupEnd":773,"domainLookupStart":773,"fetchStart":773,"redirectEnd":0,"redirectStart":0,"requestStart":773,"responseEnd":982.2000000476837,"responseStart":982.2000000476837,"secureConnectionStart":773},{"duration":246.20000004768372,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2cib/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":1111,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1111,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1357.2000000476837,"responseStart":0,"secureConnectionStart":0},{"duration":231.90000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/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":1112,"connectEnd":1112,"connectStart":1112,"domainLookupEnd":1112,"domainLookupStart":1112,"fetchStart":1112,"redirectEnd":0,"redirectStart":0,"requestStart":1112,"responseEnd":1343.9000000953674,"responseStart":1343.9000000953674,"secureConnectionStart":1112},{"duration":245.40000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/097ae97cb8fbec7d6ea4bbb1f26955b9-CDN/lu2cib/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":1112.7000000476837,"connectEnd":1112.7000000476837,"connectStart":1112.7000000476837,"domainLookupEnd":1112.7000000476837,"domainLookupStart":1112.7000000476837,"fetchStart":1112.7000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":1112.7000000476837,"responseEnd":1358.1000001430511,"responseStart":1358.1000001430511,"secureConnectionStart":1112.7000000476837}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":58,"responseStart":227,"responseEnd":250,"domLoading":231,"domInteractive":1311,"domContentLoadedEventStart":1311,"domContentLoadedEventEnd":1357,"domComplete":1663,"loadEventStart":1663,"loadEventEnd":1663,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1284.9000000953674},{"name":"bigPipe.sidebar-id.end","time":1285.7000000476837},{"name":"bigPipe.activity-panel-pipe-id.start","time":1285.7999999523163},{"name":"bigPipe.activity-panel-pipe-id.end","time":1287.2999999523163},{"name":"activityTabFullyLoaded","time":1377.2999999523163}],"measures":[],"correlationId":"7ee0d36536219c","effectiveType":"4g","downlink":9.2,"rtt":0,"serverDuration":106,"dbReadsTimeInMs":13,"dbConnsTimeInMs":22,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
Sergei, please review commits e2f8dff...52f489e, branch bb-10.10-ddl-nikita