Sfoglia il codice sorgente

docs(kb): 93 ADR-04 加 schema 以宽松时段为基准的注脚

tianyu.chu 1 settimana fa
parent
commit
d3895781a5
1 ha cambiato i file con 2 aggiunte e 1 eliminazioni
  1. 2 1
      kb/93-架构决策.md

+ 2 - 1
kb/93-架构决策.md

@@ -97,11 +97,12 @@
   老代码 `job_config_generator.py:60-67` 把 speed 三参(channel / byte / record)按工作时段硬编码:07:50-19:00 走 `channel=10 / byte=10MB / record=40k`(保护业务 DB),其余时段走 `channel=6 / byte=256MB / record=100k`。时段边界和各档值完全写死在 Python 代码里,调优需要改代码 + 发布。压测 / 回填场景下 speed 是高频调参项,需要运行时覆盖能力。
 
 - **决策**:speed 三参走三级合并,优先级 L1 < L2 < L3。
-  - **L1** `conf/datax-tuning.conf`:项目级默认,承载严格/宽松时段 start/stop 边界 + 两档各 3 个 speed 参值,共 8 个 key;时段配置用 `HH:MM` 字符串,代码解析为 HHMM 整数比较
+  - **L1** `conf/datax-tuning.conf`:项目级默认,承载宽松时段 `relaxed_period.{start,stop}` 边界 + strict/relaxed 两档各 3 个 speed 参值,共 8 个 key;时段配置用 `HH:MM` 字符串,代码解析为 HHMM 整数比较
   - **L2** DataX ini 新增可选 `[speed]` 段:单 ini 级覆盖 channel / byte / record;一旦在 L2 显式写了,忽略时段判断直接使用
   - **L3** CLI `-channel / -byte / -record`:本次运行级覆盖,`bin/datax-{hive-import,hdfs-export}-starter.py` 暴露,逐层透传到 `dw_base.datax.cli gen-json` 子进程,最终到 `JobConfigGenerator`
   - 合并发生在 `JobConfigGenerator.assemble()` 内存里,结果写进生成的 json(`job.setting.speed` + `core.transport.channel.speed`);ini / conf 文件本身不动
   - 时段判断采用左闭右开 `[start, stop)`;每 key 的来源打印到 stdout 便于审计
+  - **schema 以宽松时段为基准**(区间内 relaxed、区间外 strict):原计划 `strict_period` 不工作——本项目业务高峰跨午夜(12:00 至次日 06:00),HHMM 整数比较 `1200 ≤ x < 0600` 为空集;宽松时段在低峰期(如 06:00-12:00)天然连续不跨日
 
 - **后果**:
   - 正面:压测 / 回填 speed 调参不用改代码;时段分档逻辑可配,业务高峰期调整不用发布;单 ini 特殊场景可用 L2 覆盖;ADR 级改动只加约 350 行代码 + 10 条单测