misc.python.materialize.version_ancestor_overrides
1# Copyright Materialize, Inc. and contributors. All rights reserved. 2# 3# Use of this software is governed by the Business Source License 4# included in the LICENSE file at the root of this repository. 5# 6# As of the Change Date specified in that file, in accordance with 7# the Business Source License, use of this software will be governed 8# by the Apache License, Version 2.0. 9 10 11from __future__ import annotations 12 13from typing import Any 14 15from materialize.mz_version import MzVersion 16 17 18def get_ancestor_overrides_for_performance_regressions( 19 scenario_class: type[Any], scale: str | None 20) -> dict[str, MzVersion]: 21 """ 22 Git revisions that are based on commits listed as keys require at least the version specified in the value. 23 Note that specified versions do not necessarily need to be already published. 24 Commits must be ordered descending by their date. 25 """ 26 27 scenario_class_name = scenario_class.__name__ 28 29 min_ancestor_mz_version_per_commit = dict() 30 31 if scenario_class_name == "ParallelDataflows": 32 # PR#32095 (Dictionary compressed arrangements) increased wallclock by ~10% 33 min_ancestor_mz_version_per_commit[ 34 "90644c483749ce746da002f69dbd8bd2835ef9d0" 35 ] = MzVersion.parse_mz("v26.29.0") 36 37 if scenario_class_name == "Retraction": 38 # PR#36386 (timely-util: switch Column::Align to Vec<u64>) increases clusterd memory 39 min_ancestor_mz_version_per_commit[ 40 "2571dcdc4b9a41359b5ee70054bb06423aab7c27" 41 ] = MzVersion.parse_mz("v26.24.0") 42 43 if scenario_class_name == "CrossJoin": 44 # PR#35328 (compute: move MV sink persist I/O off Timely thread) increases clusterd memory 45 min_ancestor_mz_version_per_commit[ 46 "4d8deb2de7b6a0fb8d7c9e5b0a682416bef1e5c2" 47 ] = MzVersion.parse_mz("v26.23.0") 48 49 if scenario_class_name in ("OrderBy", "FastPathFilterNoIndex"): 50 # PR#34930 (Bump differential, timely and related) increases latency 51 min_ancestor_mz_version_per_commit[ 52 "c20c82119261bab23c865bdfd1841348aa0acca3" 53 ] = MzVersion.parse_mz("v26.12.0") 54 55 if scenario_class_name == "SwapSchema": 56 # PR#29673 (adapter: derive implications from catalog changes) increases latency 57 min_ancestor_mz_version_per_commit[ 58 "9a4ee6174553d4f14402e90927a05aa8cba37112" 59 ] = MzVersion.parse_mz("v26.2.0") 60 61 if scenario_class_name in ("DifferentialJoin", "Retraction", "FinishOrderByLimit"): 62 # PR#33979 (Enable active dataflow cancellation) increases latency 63 min_ancestor_mz_version_per_commit[ 64 "e1944c939203eb29b84a18ce5153e2d99d157c1d" 65 ] = MzVersion.parse_mz("v0.164.0") 66 67 if scenario_class_name == "CreateIndex": 68 # PR#33938 (Update columnar, timely, differential) increases latency 69 min_ancestor_mz_version_per_commit[ 70 "c28d0061a6c9e63ee50a5f555c5d90373d006686" 71 ] = MzVersion.parse_mz("v0.164.0") 72 73 if scenario_class_name in ("CrossJoin", "AccumulateReductions"): 74 # PR#31501 (Remove ChunkedStack and related) increases latency for inserts 75 min_ancestor_mz_version_per_commit[ 76 "e91f9d5e47f5dddf1d5d1a3afa3c27907bdbb0a7" 77 ] = MzVersion.parse_mz("v0.134.0") 78 79 if scenario_class_name == "ManySmallInserts": 80 # PR#31309 ([adapter] don't block on builtin table write in Session creation) increases latency for inserts 81 min_ancestor_mz_version_per_commit[ 82 "e8c42c65afb7acd55eb7e530a92c89a9165f2e33" 83 ] = MzVersion.parse_mz("v0.133.0") 84 85 if scenario_class_name == "SwapSchema": 86 # PR#30883 (Columnar in logging dataflows) increases Mz memory usage 87 min_ancestor_mz_version_per_commit[ 88 "a077232ffcb76ef7498da7637fbc9e80aa88765c" 89 ] = MzVersion.parse_mz("v0.131.0") 90 91 if scenario_class_name == "FastPathOrderByLimit": 92 # PR#30872 (rust: Upgrade to 1.83.0) increases wallclock 93 min_ancestor_mz_version_per_commit[ 94 "74ebdd68dd2e9ec860837d52866ab9db61a0a49e" 95 ] = MzVersion.parse_mz("v0.129.0") 96 97 if scenario_class_name == "OptbenchTPCHQ01": 98 # PR#30806 ([optimizer] report per-transform metrics) increases wallclock 99 min_ancestor_mz_version_per_commit[ 100 "a5355b2e89fedef9f7a04a96b737f7434a8e3f62" 101 ] = MzVersion.parse_mz("v0.128.0") 102 103 if scenario_class_name in ("KafkaUpsert", "KafkaUpsertUnique", "ParallelIngestion"): 104 # PR#30617 (storage/kafka: use separate consumer for metadata probing) 105 # adds 1s of delay to Kafka source startup 106 min_ancestor_mz_version_per_commit[ 107 "9f7b634e6824f73d0effcdfa86c2b8b1642a4784" 108 ] = MzVersion.parse_mz("v0.127.0") 109 if scenario_class_name == "InsertMultiRow": 110 # PR#30622 (Refactor how we run FoldConstants) increases wallclock 111 min_ancestor_mz_version_per_commit[ 112 "a558d6bdc4b29abf79457eaba52914a0d6c805b7" 113 ] = MzVersion.parse_mz("v0.127.0") 114 if "OptbenchTPCH" in scenario_class_name: 115 # PR#30602 (Replace ColumnKnowledge with EquivalencePropagation) increases wallclock 116 min_ancestor_mz_version_per_commit[ 117 "1bd45336f8335b3487153beb7ce57f6391a7cf9c" 118 ] = MzVersion.parse_mz("v0.126.0") 119 120 if "OptbenchTPCH" in scenario_class_name: 121 # PR#30506 (Remove NonNullable transform) increases wallclock 122 min_ancestor_mz_version_per_commit[ 123 "6981cb35f6a64748293867beb67e74b804f9e723" 124 ] = MzVersion.parse_mz("v0.126.0") 125 126 if scenario_class_name == "KafkaUpsertUnique": 127 # PR#29718 (storage: continual feedback upsert operator) increases CPU and memory 128 min_ancestor_mz_version_per_commit[ 129 "b16b6a2c71f6e52adcbe37988cb262c15074a63f" 130 ] = MzVersion.parse_mz("v0.125.0") 131 132 if scenario_class_name in ( 133 "SmallClusters", 134 "AccumulateReductions", 135 "CreateIndex", 136 "ManySmallUpdates", 137 "FastPathOrderByLimit", 138 "FastPathFilterIndex", 139 "ParallelIngestion", 140 "SubscribeParallelTableWithIndex", 141 "DeltaJoinMaintained", 142 "Update", 143 "Retraction", 144 ): 145 # PR#28307 (Render regions for object build and let bindings) increases messages 146 min_ancestor_mz_version_per_commit[ 147 "ffcafa5b5c3e83845a868cf6103048c045b4f155" 148 ] = MzVersion.parse_mz("v0.113.0") 149 150 if "OptbenchTPCH" in scenario_class_name: 151 # PR#28664 (Introduce MirScalarExpr::reduce_safely) increases wallclock 152 min_ancestor_mz_version_per_commit[ 153 "0a570022e1b78a205d5d9d3ebcb640b714e738c2" 154 ] = MzVersion.parse_mz("v0.111.0") 155 156 if scenario_class_name in {"OptbenchTPCHQ02", "OptbenchTPCHQ18", "OptbenchTPCHQ21"}: 157 # PR#28566 (Incorporate non-null information, and prevent its deletion) increased wallclock 158 min_ancestor_mz_version_per_commit[ 159 "45d78090f8fea353dbdff9f1b2de463d475fabc3" 160 ] = MzVersion.parse_mz("v0.111.0") 161 162 if scenario_class_name == "ManyKafkaSourcesOnSameCluster": 163 # PR#28359 (Reapply "storage: wire up new reclock implementation") increased wallclock 164 min_ancestor_mz_version_per_commit[ 165 "1937ca8b444a919e3077843980c97d61fc072252" 166 ] = MzVersion.parse_mz("v0.110.0") 167 168 if scenario_class_name == "ManyKafkaSourcesOnSameCluster": 169 # PR#28228 (storage/kafka: round-robin partition/worker assignment) increased wallclock 170 min_ancestor_mz_version_per_commit[ 171 "256e1f839ba5243293e738bcd78d0f36c1be8f3e" 172 ] = MzVersion.parse_mz("v0.109.0") 173 174 if scenario_class_name == "MinMax": 175 # PR#27988 (adapter: always declare MV imports non-monotonic) increased wallclock and memory 176 min_ancestor_mz_version_per_commit[ 177 "c18aa43828a7d2e9527151a0251c1f75a06d1469" 178 ] = MzVersion.parse_mz("v0.108.0") 179 180 if scenario_class_name == "AccumulateReductions": 181 # PR#26807 (compute: hydration status based on output frontiers) increased messages 182 min_ancestor_mz_version_per_commit[ 183 "be0e50041169a5cac80c033b083c920b067d049f" 184 ] = MzVersion.parse_mz("v0.106.0") 185 186 if scenario_class_name == "SwapSchema": 187 # PR#27607 (catalog: Listen for updates in transactions) increased wallclock 188 min_ancestor_mz_version_per_commit[ 189 "eef900de75d25fe854524dff9feeed8057e4bf79" 190 ] = MzVersion.parse_mz("v0.105.0") 191 192 if scenario_class_name == "MySqlInitialLoad": 193 # PR#27058 (storage: wire up new reclock implementation) increased memory usage 194 min_ancestor_mz_version_per_commit[ 195 "10abb1cca257ffc3d605c99ed961e037bbf3fa51" 196 ] = MzVersion.parse_mz("v0.103.0") 197 198 if "OptbenchTPCH" in scenario_class_name: 199 # PR#26652 (explain: fix tracing fast path regression) significantly increased wallclock for OptbenchTPCH 200 min_ancestor_mz_version_per_commit[ 201 "96c22562745f59010860bd825de5b4007a172c70" 202 ] = MzVersion.parse_mz("v0.97.0") 203 # PR#24155 (equivalence propagation) significantly increased wallclock for OptbenchTPCH 204 min_ancestor_mz_version_per_commit[ 205 "3cfaa8207faa7df087942cd44311a3e7b4534c25" 206 ] = MzVersion.parse_mz("v0.92.0") 207 208 if scenario_class_name == "FastPathFilterNoIndex": 209 # PR#26084 (Optimize OffsetList) increased wallclock 210 min_ancestor_mz_version_per_commit[ 211 "2abcd90ac3201b0235ea41c5db81bdd931a0fda0" 212 ] = MzVersion.parse_mz("v0.96.0") 213 214 if scenario_class_name == "ParallelDataflows": 215 # PR#26020 (Stage flatmap execution to consolidate as it goes) significantly increased wallclock 216 min_ancestor_mz_version_per_commit[ 217 "da35946d636607a11fa27d5a8ea6e9939bf9525e" 218 ] = MzVersion.parse_mz("v0.93.0") 219 220 # add legacy entries 221 min_ancestor_mz_version_per_commit.update( 222 { 223 # insert newer commits at the top 224 # PR#25502 (JoinFusion across MFPs) increased number of messages 225 "62ea182963be5b956e13115b8ad39f7835fc4351": MzVersion.parse_mz("v0.91.0"), 226 # PR#24906 (Compute operator hydration status logging) increased number of messages against v0.88.1 227 "067ae870eef724f7eb5851b5745b9ff52b881481": MzVersion.parse_mz("v0.89.0"), 228 # PR#24918 (txn-wal: switch to a new operator protocol for lazy) increased number of messages against v0.86.1 (but got reverted in 0.87.1) 229 "b648576b52b8ba9bb3a4732f7022ab5c06ebed32": MzVersion.parse_mz("v0.87.0"), 230 # PR#23659 (txn-wal: enable in CI with "eager uppers") introduces regressions against v0.79.0 231 "c4f520a57a3046e5074939d2ea345d1c72be7079": MzVersion.parse_mz("v0.80.0"), 232 # PR#23421 (coord: smorgasbord of improvements for the crdb-backed timestamp oracle) introduces regressions against 0.78.13 233 "5179ebd39aea4867622357a832aaddcde951b411": MzVersion.parse_mz("v0.79.0"), 234 # insert newer commits at the top 235 } 236 ) 237 238 return min_ancestor_mz_version_per_commit 239 240 241_MIN_ANCESTOR_MZ_VERSION_PER_COMMIT_TO_ACCOUNT_FOR_SCALABILITY_REGRESSIONS: dict[ 242 str, MzVersion 243] = { 244 # insert newer commits at the top 245 # PR#31309 ([adapter] don't block on builtin table write in Session creation) increases latency for inserts 246 "e8c42c65afb7acd55eb7e530a92c89a9165f2e33": MzVersion.parse_mz("v0.133.0"), 247 # PR#30238 (adapter: Remove the global write lock) introduces regressions against v0.123.0 248 "98678454a334a470ceea46b126586c7e60a0d8a5": MzVersion.parse_mz("v0.124.0"), 249 # PR#28307 (Render regions for object build and let bindings) introduces regressions against v0.112.0 250 "ffcafa5b5c3e83845a868cf6103048c045b4f155": MzVersion.parse_mz("v0.113.0"), 251 # PR#23659 (txn-wal: enable in CI with "eager uppers") introduces regressions against v0.79.0 252 "c4f520a57a3046e5074939d2ea345d1c72be7079": MzVersion.parse_mz("v0.80.0"), 253 # PR#23421 (coord: smorgasbord of improvements for the crdb-backed timestamp oracle) introduces regressions against 0.78.13 254 "5179ebd39aea4867622357a832aaddcde951b411": MzVersion.parse_mz("v0.79.0"), 255 # insert newer commits at the top 256} 257""" 258Git revisions that are based on commits listed as keys require at least the version specified in the value. 259Note that specified versions do not necessarily need to be already published. 260Commits must be ordered descending by their date. 261""" 262 263_MIN_ANCESTOR_MZ_VERSION_PER_COMMIT_TO_ACCOUNT_FOR_CORRECTNESS_REGRESSIONS: dict[ 264 str, MzVersion 265] = { 266 # insert newer commits at the top 267 # PR#29179: Add client_address to session 268 "deb8beb77ddb69895aad899cf2eab90a0a78585d": MzVersion.parse_mz("v0.118.0"), 269 # PR#24497 (Make sure variance never returns a negative number) changes DFR or CTF handling compared to v0.84.0 270 "82a5130a8466525c5b3bdb3eff845c7c34585774": MzVersion.parse_mz("v0.85.0"), 271} 272""" 273See: #_MIN_ANCESTOR_MZ_VERSION_PER_COMMIT_TO_ACCOUNT_FOR_PERFORMANCE_REGRESSIONS 274""" 275 276ANCESTOR_OVERRIDES_FOR_SCALABILITY_REGRESSIONS = ( 277 _MIN_ANCESTOR_MZ_VERSION_PER_COMMIT_TO_ACCOUNT_FOR_SCALABILITY_REGRESSIONS 278) 279ANCESTOR_OVERRIDES_FOR_CORRECTNESS_REGRESSIONS = ( 280 _MIN_ANCESTOR_MZ_VERSION_PER_COMMIT_TO_ACCOUNT_FOR_CORRECTNESS_REGRESSIONS 281)
def
get_ancestor_overrides_for_performance_regressions( scenario_class: type[typing.Any], scale: str | None) -> dict[str, materialize.mz_version.MzVersion]:
19def get_ancestor_overrides_for_performance_regressions( 20 scenario_class: type[Any], scale: str | None 21) -> dict[str, MzVersion]: 22 """ 23 Git revisions that are based on commits listed as keys require at least the version specified in the value. 24 Note that specified versions do not necessarily need to be already published. 25 Commits must be ordered descending by their date. 26 """ 27 28 scenario_class_name = scenario_class.__name__ 29 30 min_ancestor_mz_version_per_commit = dict() 31 32 if scenario_class_name == "ParallelDataflows": 33 # PR#32095 (Dictionary compressed arrangements) increased wallclock by ~10% 34 min_ancestor_mz_version_per_commit[ 35 "90644c483749ce746da002f69dbd8bd2835ef9d0" 36 ] = MzVersion.parse_mz("v26.29.0") 37 38 if scenario_class_name == "Retraction": 39 # PR#36386 (timely-util: switch Column::Align to Vec<u64>) increases clusterd memory 40 min_ancestor_mz_version_per_commit[ 41 "2571dcdc4b9a41359b5ee70054bb06423aab7c27" 42 ] = MzVersion.parse_mz("v26.24.0") 43 44 if scenario_class_name == "CrossJoin": 45 # PR#35328 (compute: move MV sink persist I/O off Timely thread) increases clusterd memory 46 min_ancestor_mz_version_per_commit[ 47 "4d8deb2de7b6a0fb8d7c9e5b0a682416bef1e5c2" 48 ] = MzVersion.parse_mz("v26.23.0") 49 50 if scenario_class_name in ("OrderBy", "FastPathFilterNoIndex"): 51 # PR#34930 (Bump differential, timely and related) increases latency 52 min_ancestor_mz_version_per_commit[ 53 "c20c82119261bab23c865bdfd1841348aa0acca3" 54 ] = MzVersion.parse_mz("v26.12.0") 55 56 if scenario_class_name == "SwapSchema": 57 # PR#29673 (adapter: derive implications from catalog changes) increases latency 58 min_ancestor_mz_version_per_commit[ 59 "9a4ee6174553d4f14402e90927a05aa8cba37112" 60 ] = MzVersion.parse_mz("v26.2.0") 61 62 if scenario_class_name in ("DifferentialJoin", "Retraction", "FinishOrderByLimit"): 63 # PR#33979 (Enable active dataflow cancellation) increases latency 64 min_ancestor_mz_version_per_commit[ 65 "e1944c939203eb29b84a18ce5153e2d99d157c1d" 66 ] = MzVersion.parse_mz("v0.164.0") 67 68 if scenario_class_name == "CreateIndex": 69 # PR#33938 (Update columnar, timely, differential) increases latency 70 min_ancestor_mz_version_per_commit[ 71 "c28d0061a6c9e63ee50a5f555c5d90373d006686" 72 ] = MzVersion.parse_mz("v0.164.0") 73 74 if scenario_class_name in ("CrossJoin", "AccumulateReductions"): 75 # PR#31501 (Remove ChunkedStack and related) increases latency for inserts 76 min_ancestor_mz_version_per_commit[ 77 "e91f9d5e47f5dddf1d5d1a3afa3c27907bdbb0a7" 78 ] = MzVersion.parse_mz("v0.134.0") 79 80 if scenario_class_name == "ManySmallInserts": 81 # PR#31309 ([adapter] don't block on builtin table write in Session creation) increases latency for inserts 82 min_ancestor_mz_version_per_commit[ 83 "e8c42c65afb7acd55eb7e530a92c89a9165f2e33" 84 ] = MzVersion.parse_mz("v0.133.0") 85 86 if scenario_class_name == "SwapSchema": 87 # PR#30883 (Columnar in logging dataflows) increases Mz memory usage 88 min_ancestor_mz_version_per_commit[ 89 "a077232ffcb76ef7498da7637fbc9e80aa88765c" 90 ] = MzVersion.parse_mz("v0.131.0") 91 92 if scenario_class_name == "FastPathOrderByLimit": 93 # PR#30872 (rust: Upgrade to 1.83.0) increases wallclock 94 min_ancestor_mz_version_per_commit[ 95 "74ebdd68dd2e9ec860837d52866ab9db61a0a49e" 96 ] = MzVersion.parse_mz("v0.129.0") 97 98 if scenario_class_name == "OptbenchTPCHQ01": 99 # PR#30806 ([optimizer] report per-transform metrics) increases wallclock 100 min_ancestor_mz_version_per_commit[ 101 "a5355b2e89fedef9f7a04a96b737f7434a8e3f62" 102 ] = MzVersion.parse_mz("v0.128.0") 103 104 if scenario_class_name in ("KafkaUpsert", "KafkaUpsertUnique", "ParallelIngestion"): 105 # PR#30617 (storage/kafka: use separate consumer for metadata probing) 106 # adds 1s of delay to Kafka source startup 107 min_ancestor_mz_version_per_commit[ 108 "9f7b634e6824f73d0effcdfa86c2b8b1642a4784" 109 ] = MzVersion.parse_mz("v0.127.0") 110 if scenario_class_name == "InsertMultiRow": 111 # PR#30622 (Refactor how we run FoldConstants) increases wallclock 112 min_ancestor_mz_version_per_commit[ 113 "a558d6bdc4b29abf79457eaba52914a0d6c805b7" 114 ] = MzVersion.parse_mz("v0.127.0") 115 if "OptbenchTPCH" in scenario_class_name: 116 # PR#30602 (Replace ColumnKnowledge with EquivalencePropagation) increases wallclock 117 min_ancestor_mz_version_per_commit[ 118 "1bd45336f8335b3487153beb7ce57f6391a7cf9c" 119 ] = MzVersion.parse_mz("v0.126.0") 120 121 if "OptbenchTPCH" in scenario_class_name: 122 # PR#30506 (Remove NonNullable transform) increases wallclock 123 min_ancestor_mz_version_per_commit[ 124 "6981cb35f6a64748293867beb67e74b804f9e723" 125 ] = MzVersion.parse_mz("v0.126.0") 126 127 if scenario_class_name == "KafkaUpsertUnique": 128 # PR#29718 (storage: continual feedback upsert operator) increases CPU and memory 129 min_ancestor_mz_version_per_commit[ 130 "b16b6a2c71f6e52adcbe37988cb262c15074a63f" 131 ] = MzVersion.parse_mz("v0.125.0") 132 133 if scenario_class_name in ( 134 "SmallClusters", 135 "AccumulateReductions", 136 "CreateIndex", 137 "ManySmallUpdates", 138 "FastPathOrderByLimit", 139 "FastPathFilterIndex", 140 "ParallelIngestion", 141 "SubscribeParallelTableWithIndex", 142 "DeltaJoinMaintained", 143 "Update", 144 "Retraction", 145 ): 146 # PR#28307 (Render regions for object build and let bindings) increases messages 147 min_ancestor_mz_version_per_commit[ 148 "ffcafa5b5c3e83845a868cf6103048c045b4f155" 149 ] = MzVersion.parse_mz("v0.113.0") 150 151 if "OptbenchTPCH" in scenario_class_name: 152 # PR#28664 (Introduce MirScalarExpr::reduce_safely) increases wallclock 153 min_ancestor_mz_version_per_commit[ 154 "0a570022e1b78a205d5d9d3ebcb640b714e738c2" 155 ] = MzVersion.parse_mz("v0.111.0") 156 157 if scenario_class_name in {"OptbenchTPCHQ02", "OptbenchTPCHQ18", "OptbenchTPCHQ21"}: 158 # PR#28566 (Incorporate non-null information, and prevent its deletion) increased wallclock 159 min_ancestor_mz_version_per_commit[ 160 "45d78090f8fea353dbdff9f1b2de463d475fabc3" 161 ] = MzVersion.parse_mz("v0.111.0") 162 163 if scenario_class_name == "ManyKafkaSourcesOnSameCluster": 164 # PR#28359 (Reapply "storage: wire up new reclock implementation") increased wallclock 165 min_ancestor_mz_version_per_commit[ 166 "1937ca8b444a919e3077843980c97d61fc072252" 167 ] = MzVersion.parse_mz("v0.110.0") 168 169 if scenario_class_name == "ManyKafkaSourcesOnSameCluster": 170 # PR#28228 (storage/kafka: round-robin partition/worker assignment) increased wallclock 171 min_ancestor_mz_version_per_commit[ 172 "256e1f839ba5243293e738bcd78d0f36c1be8f3e" 173 ] = MzVersion.parse_mz("v0.109.0") 174 175 if scenario_class_name == "MinMax": 176 # PR#27988 (adapter: always declare MV imports non-monotonic) increased wallclock and memory 177 min_ancestor_mz_version_per_commit[ 178 "c18aa43828a7d2e9527151a0251c1f75a06d1469" 179 ] = MzVersion.parse_mz("v0.108.0") 180 181 if scenario_class_name == "AccumulateReductions": 182 # PR#26807 (compute: hydration status based on output frontiers) increased messages 183 min_ancestor_mz_version_per_commit[ 184 "be0e50041169a5cac80c033b083c920b067d049f" 185 ] = MzVersion.parse_mz("v0.106.0") 186 187 if scenario_class_name == "SwapSchema": 188 # PR#27607 (catalog: Listen for updates in transactions) increased wallclock 189 min_ancestor_mz_version_per_commit[ 190 "eef900de75d25fe854524dff9feeed8057e4bf79" 191 ] = MzVersion.parse_mz("v0.105.0") 192 193 if scenario_class_name == "MySqlInitialLoad": 194 # PR#27058 (storage: wire up new reclock implementation) increased memory usage 195 min_ancestor_mz_version_per_commit[ 196 "10abb1cca257ffc3d605c99ed961e037bbf3fa51" 197 ] = MzVersion.parse_mz("v0.103.0") 198 199 if "OptbenchTPCH" in scenario_class_name: 200 # PR#26652 (explain: fix tracing fast path regression) significantly increased wallclock for OptbenchTPCH 201 min_ancestor_mz_version_per_commit[ 202 "96c22562745f59010860bd825de5b4007a172c70" 203 ] = MzVersion.parse_mz("v0.97.0") 204 # PR#24155 (equivalence propagation) significantly increased wallclock for OptbenchTPCH 205 min_ancestor_mz_version_per_commit[ 206 "3cfaa8207faa7df087942cd44311a3e7b4534c25" 207 ] = MzVersion.parse_mz("v0.92.0") 208 209 if scenario_class_name == "FastPathFilterNoIndex": 210 # PR#26084 (Optimize OffsetList) increased wallclock 211 min_ancestor_mz_version_per_commit[ 212 "2abcd90ac3201b0235ea41c5db81bdd931a0fda0" 213 ] = MzVersion.parse_mz("v0.96.0") 214 215 if scenario_class_name == "ParallelDataflows": 216 # PR#26020 (Stage flatmap execution to consolidate as it goes) significantly increased wallclock 217 min_ancestor_mz_version_per_commit[ 218 "da35946d636607a11fa27d5a8ea6e9939bf9525e" 219 ] = MzVersion.parse_mz("v0.93.0") 220 221 # add legacy entries 222 min_ancestor_mz_version_per_commit.update( 223 { 224 # insert newer commits at the top 225 # PR#25502 (JoinFusion across MFPs) increased number of messages 226 "62ea182963be5b956e13115b8ad39f7835fc4351": MzVersion.parse_mz("v0.91.0"), 227 # PR#24906 (Compute operator hydration status logging) increased number of messages against v0.88.1 228 "067ae870eef724f7eb5851b5745b9ff52b881481": MzVersion.parse_mz("v0.89.0"), 229 # PR#24918 (txn-wal: switch to a new operator protocol for lazy) increased number of messages against v0.86.1 (but got reverted in 0.87.1) 230 "b648576b52b8ba9bb3a4732f7022ab5c06ebed32": MzVersion.parse_mz("v0.87.0"), 231 # PR#23659 (txn-wal: enable in CI with "eager uppers") introduces regressions against v0.79.0 232 "c4f520a57a3046e5074939d2ea345d1c72be7079": MzVersion.parse_mz("v0.80.0"), 233 # PR#23421 (coord: smorgasbord of improvements for the crdb-backed timestamp oracle) introduces regressions against 0.78.13 234 "5179ebd39aea4867622357a832aaddcde951b411": MzVersion.parse_mz("v0.79.0"), 235 # insert newer commits at the top 236 } 237 ) 238 239 return min_ancestor_mz_version_per_commit
Git revisions that are based on commits listed as keys require at least the version specified in the value. Note that specified versions do not necessarily need to be already published. Commits must be ordered descending by their date.
ANCESTOR_OVERRIDES_FOR_SCALABILITY_REGRESSIONS =
{'e8c42c65afb7acd55eb7e530a92c89a9165f2e33': MzVersion(major=0, minor=133, patch=0, prerelease=None, build=None), '98678454a334a470ceea46b126586c7e60a0d8a5': MzVersion(major=0, minor=124, patch=0, prerelease=None, build=None), 'ffcafa5b5c3e83845a868cf6103048c045b4f155': MzVersion(major=0, minor=113, patch=0, prerelease=None, build=None), 'c4f520a57a3046e5074939d2ea345d1c72be7079': MzVersion(major=0, minor=80, patch=0, prerelease=None, build=None), '5179ebd39aea4867622357a832aaddcde951b411': MzVersion(major=0, minor=79, patch=0, prerelease=None, build=None)}
ANCESTOR_OVERRIDES_FOR_CORRECTNESS_REGRESSIONS =
{'deb8beb77ddb69895aad899cf2eab90a0a78585d': MzVersion(major=0, minor=118, patch=0, prerelease=None, build=None), '82a5130a8466525c5b3bdb3eff845c7c34585774': MzVersion(major=0, minor=85, patch=0, prerelease=None, build=None)}