転送実行
転送実行記録をプロセスヘッダーとして生成し、転送作業対象へ転送対象判定を適用して判定結果を実行するメインルーチン
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present
Open Questions
- None
Definition Statements
Meaning
11 statements
| Statement | Text |
|---|---|
データ転送処理のメインルーチンtransfer-execution | Transfer Execution とは、データ転送処理のメインルーチンである。 |
実行引数を Transfer Run として記録transfer-execution-run-arguments-record | Transfer Execution は、実行引数を `Transfer Run` として記録する。 |
Transfer Run は、Transfer Execution の実行引数記録兼プロセスヘッダーtransfer-execution-run-arguments-record-2 | `Transfer Run` は、Transfer Execution の実行引数記録兼プロセスヘッダーである。 |
Transfer Run は、Transfer Execution に従属transfer-execution-run | `Transfer Run` は、Transfer Execution に従属する。 |
の外部入力は対象 Transfer Setting と実行引数であり、Destination や Destination Link は Transfer Setting から辿るdestination-link-transfer-execution-setting-run-arguments-target | Transfer Execution の外部入力は対象 `Transfer Setting` と実行引数であり、`Destination` や `Destination Link` は `Transfer Setting` から辿る。 |
対象 Transfer Setting に従って転送transfer-execution-setting-target | Transfer Execution は、対象 `Transfer Setting` に従って転送する。 |
Transfer Run に記録された引数を転送条件として利用してよい。transfer-execution-run-record | Transfer Execution は、`Transfer Run` に記録された引数を転送条件として利用してよい。 |
転送対象となる行を Transfer Run の引数として直接受け取らない。transfer-execution-run-target | Transfer Execution は、転送対象となる行を `Transfer Run` の引数として直接受け取らない。 |
Dirty Key Management に蓄積された変更検知履歴を Work Item として固定化dirty-key-transfer-execution-change-detection-history-management | Transfer Execution は、`Dirty Key` Management に蓄積された変更検知履歴を `Work Item` として固定化する。 |
Work Item を作るとき Dirty Key Processing に記録済みの Dirty Key を除外dirty-key-processing-transfer-execution-record-work-item | Transfer Execution は、`Work Item` を作るとき `Dirty Key Processing` に記録済みの `Dirty Key` を除外する。 |
Work Item に転送対象判定を適用し、その結果を実行するtransfer-execution-decide-work-item | Transfer Execution は、`Work Item` に `Transfer Target Decision` を適用し、その結果を実行する。 |
Responsibilities
10 statements
| Statement | Text |
|---|---|
実行引数を Transfer Run として作成し、実行開始時の引数と進捗状態を追跡できるようにtransfer-execution-run-arguments-state-trace-create | Transfer Execution は、実行引数を `Transfer Run` として作成し、実行開始時の引数と進捗状態を追跡できるようにする。 |
対象 Transfer Setting を参照transfer-execution-setting-target-reference | Transfer Execution は、対象 `Transfer Setting` を参照する。 |
Transfer Setting に紐づく Destination Link 群と、その先の Destination 群を参照destination-link-transfer-execution-setting-reference-belongs | Transfer Execution は、`Transfer Setting` に紐づく `Destination Link` 群と、その先の `Destination` 群を参照する。 |
Dirty Key Management に蓄積された行を Work Item として固定化dirty-key-transfer-execution-management-work-item | Transfer Execution は、`Dirty Key` Management に蓄積された行を `Work Item` として固定化する。 |
Work Item が持つ転送対象判定の結果をもとに、実際の転送処理へ進めるtransfer-execution-decide-work-item-2 | Transfer Execution は、`Work Item` が持つ転送対象判定の結果をもとに、実際の転送処理へ進める。 |
転送元の現在値が存在するかどうかを確認transfer-execution-source-exists | Transfer Execution は、転送元の現在値が存在するかどうかを確認する。 |
既存の Active Black が存在するかどうかを確認transfer-execution-exists-active-black | Transfer Execution は、既存の `Active Black` が存在するかどうかを確認する。 |
Transfer Target Decision の結果に従って Black Transfer、Red Transfer、Physical Delete Transfer、または no-op を実行するblack-transfer-destination-physical-delete-red-execution-decide | Transfer Execution は、`Transfer Target Decision` の結果に従って `Black Transfer`、`Red Transfer`、`Physical Delete Transfer`、または no-op を実行する。 |
immutable transfer model では Lineage 作成を伴う Black Transfer または Red Transfer を選択できるようにblack-transfer-lineage-red-execution-create-immutable-model | Transfer Execution は、`immutable transfer model` では `Lineage` 作成を伴う `Black Transfer` または `Red Transfer` を選択できるようにする。 |
転送が終わった Work Item を Dirty Key Processing に記録し、処理済みとして扱える状態にdirty-key-processing-transfer-execution-processed-state-record | Transfer Execution は、転送が終わった `Work Item` を `Dirty Key Processing` に記録し、処理済みとして扱える状態にする。 |
Boundaries
7 statements
| Statement | Text | Similarity negated |
|---|---|---|
Transfer Run を事前に積まれた実行待ち項目として扱わない。not-transfer-execution-run | Transfer Execution は、`Transfer Run` を事前に積まれた実行待ち項目として扱わない。 | transfer-run |
Dirty Key 自体に処理済み状態を書き込まない。not-dirty-key-transfer-execution-processed-state | Transfer Execution は、`Dirty Key` 自体に処理済み状態を書き込まない。 | dirty-key |
Transfer Setting の内容や Destination の転送先仕様を変更しないnot-destination-transfer-execution-setting | Transfer Execution は、`Transfer Setting` の内容や `Destination` の転送先仕様を変更しない。 | destination, transfer-setting |
Dirty Key の登録方法を定義しないnot-dirty-key-transfer-execution-define | Transfer Execution は、`Dirty Key` の登録方法を定義しない。 | dirty-key |
Black Transfer、Red Transfer、Active Black、Lineage の保存形式を定義しないnot-black-transfer-lineage-red-execution-define-active | Transfer Execution は、`Black Transfer`、`Red Transfer`、`Active Black`、`Lineage` の保存形式を定義しない。 | black-transfer, lineage, red-transfer |
スケジューリングそのものを管理しないnot-transfer-execution-manage | Transfer Execution は、スケジューリングそのものを管理しない。 | - |
SQL 生成手順や SQL 実行手順の具体形を定義しないnot-transfer-execution-produce-define-sql | Transfer Execution は、SQL 生成手順や SQL 実行手順の具体形を定義しない。 | - |
Invariants
15 statements
| Statement | Text |
|---|---|
必ず Transfer Run をプロセスヘッダーとして持つtransfer-execution-run-2 | Transfer Execution は、必ず `Transfer Run` をプロセスヘッダーとして持つ。 |
Transfer Run を生成transfer-execution-run-produce | Transfer Execution は、`Transfer Run` を生成する。 |
必ず1つの Transfer Setting を対象にtransfer-execution-setting-target-requires-one | Transfer Execution は、必ず1つの `Transfer Setting` を対象にする。 |
Destination や Destination Link を外部入力として要求しないdestination-link-transfer-execution | Transfer Execution は、`Destination` や `Destination Link` を外部入力として要求しない。 |
転送対象行を Transfer Run の引数として受け付けない。transfer-execution-run-target-row | Transfer Execution は、転送対象行を `Transfer Run` の引数として受け付けない。 |
Dirty Key を変更通知として扱い、Dirty Key だけで転送操作を決定しないdirty-key-transfer-execution-not-decide | Transfer Execution は、`Dirty Key` を変更通知として扱い、`Dirty Key` だけで転送操作を決定しない。 |
Dirty Key を Work Item として固定化してから転送処理に使う。dirty-key-transfer-execution-work-item | Transfer Execution は、`Dirty Key` を `Work Item` として固定化してから転送処理に使う。 |
Work Item を作る前に Dirty Key Processing を参照して処理済み Dirty Key を除外dirty-key-processing-transfer-execution-processed-reference-work | Transfer Execution は、`Work Item` を作る前に `Dirty Key Processing` を参照して処理済み `Dirty Key` を除外する。 |
Dirty Key 自体に処理済み状態を書き込まない。dirty-key-transfer-execution-processed-state | Transfer Execution は、`Dirty Key` 自体に処理済み状態を書き込まない。 |
転送が終わった Work Item を Dirty Key Processing に記録dirty-key-processing-transfer-execution-record-work-item-2 | Transfer Execution は、転送が終わった `Work Item` を `Dirty Key Processing` に記録する。 |
転送対象判定の結果を転送処理の判断材料として扱うtransfer-execution-source-decide-active-black | Transfer Execution は、転送対象判定の結果を転送処理の判断材料として扱う。 |
Transfer Target Decision の結果に従って転送表現を実行する。destination-transfer-execution-model | Transfer Execution は、`Transfer Target Decision` の結果に従って転送表現を実行する。 |
immutable transfer model では、Lineage は Black Transfer または Red Transfer の成功結果として扱うblack-transfer-lineage-red-immutable-model | `immutable transfer model` では、`Lineage` は `Black Transfer` または `Red Transfer` の成功結果として扱う。 |
immutable transfer model では、既存の Active Black を取り消す場合に Red Transfer を使うred-transfer-immutable-model-active-black | `immutable transfer model` では、既存の `Active Black` を取り消す場合に `Red Transfer` を使う。 |
mutable transfer model では、既存行の現在値反映は Black Update Transfer として扱い、取消は Physical Delete Transfer として扱うblack-update-transfer-physical-delete-mutable-model | `mutable transfer model` では、既存行の現在値反映は Black Update Transfer として扱い、取消は `Physical Delete Transfer` として扱う。 |
Rationale
5 statements
| Statement | Text |
|---|---|
Owns the Main Routinedestination-dirty-key-transfer-execution-run-setting-lifecycle | Transfer Execution Owns the Main Routine: Transfer Execution は、転送処理のメインルーチンである。 `Transfer Run` は Transfer Execution の引数記録兼プロセスヘッダーであり、実行全体のライフサイクル状態を保持するが、転送対象判定そのものではない。 `Dirty Key` は変更通知であり、どのように転送するかを決定しない。 そのため、Transfer Execution は `Work Item` に `Transfer Target Decision` を適用し、その判定結果に従って転送表現を実行する。 |
Transfer Run Provides the Execution Contexttransfer-execution-run-setting-source-arguments-context-target | Transfer Run Provides the Execution Context: Transfer Execution は、転送元、転送条件、実行開始時引数を `Transfer Run` として記録する。 `Transfer Run` は、Transfer Execution が生成する実行引数記録兼プロセスヘッダーである。 `Transfer Run` は、進捗管理、監査、デバッグの実行文脈として有用である。 Transfer Execution は対象 `Transfer Setting` を実行し、その実行文脈を `Transfer Run` として残す。 |
Dirty Key Provides Candidates, Not Operationsblack-transfer-dirty-key-processing-physical-delete-red | Dirty Key Provides Candidates, Not Operations: `Dirty Key` は、転送元行に何らかの変更が起きた可能性を示す。 `Dirty Key` は変更通知であり、`Black Transfer`、`Red Transfer`、`Physical Delete Transfer`、または no-op を直接表さない。 Transfer Execution は、`Dirty Key` が示す候補を `Work Item` として固定化し、`Transfer Target Decision` を適用する。 Transfer Execution は、処理後に `Dirty Key Processing` へ記録し、`Work Item` を処理済みとして扱える状態にする。 |
Transfer Decision Is Applied Through Transfer Target Decisionblack-transfer-update-physical-delete-red-execution-source | Transfer Decision Is Applied Through Transfer Target Decision: Transfer Execution は、`Work Item` に `Transfer Target Decision` を適用し、転送要否と転送表現候補の結果を得る。具体的な判定表は `Transfer Target Decision` と Transfer Execution Process Map が扱う。Transfer Execution はその結果に従って、転送をスキップするか、`Black Transfer`、`Red Transfer`、`Physical Delete Transfer` の処理へ進める。 |
Immutable Transfer Produces Traceable Destination Rowsblack-transfer-destination-lineage-red-execution-row-record | Immutable Transfer Produces Traceable Destination Rows: `immutable transfer model` では、転送先行を履歴として積み増す。 そのため、`Black Transfer` または `Red Transfer` が成功した場合、生成された転送先行の由来を `Lineage` として追跡できる必要がある。 Transfer Execution は `Lineage` を直接記録する概念ではなく、`Lineage` 作成を伴う転送表現を選択する。 |
Internal Links
- None
External Relationships
| Concept | Kind | Reason | Supported by | Evidence |
|---|---|---|---|---|
転送実行記録transfer-run | produces | Transfer Execution は実行引数記録兼プロセスヘッダーとして Transfer Run を生成する。 | transfer-execution-run-arguments-state-trace-create, transfer-execution-run-2, transfer-execution-run-produce | spec:transfer-execution |
転送設定transfer-setting | uses | Transfer Execution は Transfer Run が対象にする Transfer Setting に従う。 | transfer-execution-setting-target-reference, destination-link-transfer-execution-setting-reference-belongs, transfer-execution-setting-target-requires-one | spec:transfer-execution |
転送先仕様destination | uses | Transfer Execution は Destination の transfer model と転送先側ルールを参照する。 | destination-link-transfer-execution-setting-reference-belongs, black-transfer-destination-physical-delete-red-execution-decide, destination-link-transfer-execution | spec:transfer-execution |
変更キーdirty-key | consumes | Transfer Execution は Dirty Key Management の記録を転送候補として消費する。 | dirty-key-transfer-execution-management-work-item, dirty-key-processing-transfer-execution-processed-state-record, dirty-key-transfer-execution-not-decide | spec:transfer-execution |
変更キー処理結果dirty-key-processing | uses | Transfer Execution は Work Item 作成前に Dirty Key Processing を参照して処理済み Dirty Key を除外し、処理後に Dirty Key Processing を記録する。 | dirty-key-processing-transfer-execution-processed-state-record, dirty-key-processing-transfer-execution-processed-reference-work, dirty-key-processing-transfer-execution-record-work-item-2 | spec:transfer-execution |
転送作業対象work-item | produces | Transfer Execution は Dirty Key を Work Item として固定化する。 | dirty-key-transfer-execution-management-work-item, transfer-execution-decide-work-item-2, dirty-key-transfer-execution-work-item | spec:transfer-execution |
転送作業対象work-item | uses | Transfer Execution は Work Item に Transfer Target Decision を適用し、転送要否と転送表現候補を得る。 | dirty-key-transfer-execution-management-work-item, transfer-execution-decide-work-item-2, dirty-key-transfer-execution-work-item | spec:transfer-execution |
有効黒伝active-black | uses | Transfer Execution は Transfer Target Decision の結果に従って黒転送、赤転送、更新、削除、または no-op を実行する。 | transfer-execution-exists-active-black, transfer-execution-source-decide-active-black, red-transfer-immutable-model-active-black | spec:transfer-execution |
黒伝転送black-transfer | uses | Transfer Execution は現在の転送元値を転送先へコピーすべき場合に Black Transfer を実行する。 | black-transfer-destination-physical-delete-red-execution-decide, black-transfer-lineage-red-execution-create-immutable-model, black-transfer-lineage-red-immutable-model | spec:transfer-execution |
赤伝転送red-transfer | uses | Transfer Execution は immutable transfer model で active black row を反転すべき場合に Red Transfer を実行する。 | red-transfer-immutable-model-active-black, black-transfer-destination-physical-delete-red-execution-decide, black-transfer-lineage-red-execution-create-immutable-model | spec:transfer-execution |
物理削除転送physical-delete-transfer | uses | Transfer Execution は mutable transfer model の削除ケースで Physical Delete Transfer を使う。 | black-transfer-destination-physical-delete-red-execution-decide, black-update-transfer-physical-delete-mutable-model, black-transfer-dirty-key-processing-physical-delete-red | spec:transfer-execution |
転送対象判定transfer-target-decision | uses | Transfer Execution は Work Item に Transfer Target Decision を適用し、転送要否と転送表現候補を得る。 | transfer-execution-decide-work-item, transfer-execution-decide-work-item-2 | spec:transfer-execution |
Coverage
| Area | Coverage | Reason | Resolution criteria |
|---|---|---|---|
definition | complete | concept.json の意味、責務、境界、不変条件、理由を curated statement として移植済み。 | - |
relationships | complete | concept-relationship.json と移行元 concept.json の外部関係を反映済み。 | - |
Evidence
| Evidence ID | Type | Path | Exists |
|---|---|---|---|
spec:transfer-execution | spec | concept.json | yes |
Validation
- No validation issues.
Technical Metadata
- Source JSON:
packages/transfer/docs/concepts/transfer-execution/concept.json