Skip to content

cc_format/ を削除し新プロトコル追加手順を docs に概念ベースで記載 (#83) - #103

Merged
thawk105 merged 3 commits into
masterfrom
p7-remove-cc-format
May 15, 2026
Merged

cc_format/ を削除し新プロトコル追加手順を docs に概念ベースで記載 (#83)#103
thawk105 merged 3 commits into
masterfrom
p7-remove-cc-format

Conversation

@thawk105

Copy link
Copy Markdown
Owner

背景

cc_format/ は新プロトコル用のテンプレートだったが、Makefile ベースで本体の CMake ビルドから乖離しており、cc_format/README.md の手順は行番号ベースで内部リファクタリングのたびに陳腐化していた。// TODO 入りスケルトンを人間に埋めさせるアプローチ自体、既存プロトコルのコピーや AI スキャフォルディングで代替可能。生成スクリプト案 (#34) が廃止された経緯も踏まえ、ディレクトリを削除して docs を概念ベースの案内に置き換える。

変更内容

  • cc_format/ ディレクトリを削除 (14 ファイル)。トップレベル CMake からは参照されておらず、リポジトリ全体に cc_format への dangling な参照は無いことを grep で確認済み。
  • docs/contributing_{ja,en}.md に「新しいプロトコルを追加する」セクションを追加。行番号ベースの指示は意図的に書かず、概念ベースで記載:
    • 出発点は「目的に近い既存プロトコル (silo 等) をコピー」
    • cc/<name>/ 各ファイルの役割表 (CMakeLists.txt / <workload>_<name>.cc エントリポイント / transaction.hh / transaction.cc / result.cc / util.cc / include/)
    • cmake/ProtocolHelpers.cmakeccbench_add_protocol() への乗せ方と、トップレベル CMakeLists.txtforeach(_proto …) への登録
    • include/tx_executor_concept.hhTxExecutorLike concept による TxExecutor 契約のコンパイル時強制
    • 機械的にチェックできる完了チェックリスト
    • _ja を原典とし _en も同一コミットで更新 (Hard rule)

docs/protocols_{ja,en}.md は既に cc_format への言及を含んでいなかったため変更不要。

確認

  • grep -rn cc_format がリポジトリ全体 (.git 除く) で 0 件。
  • cmake -S . -B build (configure のみ) が通ることを確認済み。

Closes #83

thawk105 added 3 commits May 15, 2026 01:42
新プロトコル用テンプレートだった cc_format/ を削除する。Makefile ベースで
本体の CMake ビルドから乖離しており、README.md の手順も行番号ベースで内部
リファクタリングのたびに陳腐化していた。トップレベル CMake からは参照されて
おらず、リポジトリ全体に dangling な参照は無い (grep 確認済み)。

テンプレートの役割は docs/contributing の「新しいプロトコルを追加する」
セクションに概念ベースで置き換える (別コミット)。生成スクリプト案が廃止
された経緯は #34 を参照。
cc_format/ 削除で失われた「新プロトコル用テンプレート」の役割を、
contributing_ja / contributing_en の「新しいプロトコルを追加する」
セクションで概念ベースに置き換える。

行番号ベースの指示は意図的に書かない (内部リファクタリングで陳腐化
するため。これが #83 の動機)。代わりに以下を概念ベースで記載:

- 出発点は「目的に近い既存プロトコル (silo 等) をコピー」
- cc/<name>/ 各ファイルの役割 (CMakeLists.txt / エントリポイント /
  transaction.hh / result.cc / util.cc 等)
- ccbench_add_protocol() ヘルパーへの乗せ方とトップレベル CMake の
  foreach への登録
- TxExecutorLike concept による TxExecutor 契約のコンパイル時強制
- 機械的にチェックできる完了チェックリスト

_ja を原典として更新し、_en も同一コミットで揃える (Hard rule)。
初版は「既存プロトコルをコピー → 改名 → CMake 登録 → concept 充足」と
いう機械的手順に寄りすぎていて、新 CC プロトコルを追加する作業の本体
── TxExecutor の tx 操作 (read/update/scan/delete_record/insert/commit/
abort) に並行制御アルゴリズムそのものを実装すること ── が抜けていた。

- 「作業の本体」セクションを新設し、各 tx 操作の責務と、CC アルゴリズム
  によって中身がどう変わるかを OCC / 2PL / MVCC の対比で表にした。
  tuple/version レイアウト・ロック/検証ロジック・GC も設計し直す対象だ
  と明記。
- 「既存プロトコルをコピー」は足場 (出発点) と位置づけを下げ、「コピー
  して改名して終わり」では新プロトコルにならないと明示。
- CMake 登録・TxExecutorLike concept・チェックリストは「足場を組んだ後
  の配線」として残置。concept はシグネチャを縛るだけで中身の正しさは
  保証しない点を補足。
- チェックリストを「CC アルゴリズム実装 (本体)」と「足場・配線」に分割。

Hard rule #5 に従い _ja (原典) と _en (翻訳) を同一コミットで更新。
@thawk105
thawk105 merged commit ed4581c into master May 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P7] cc_format/ を削除し新プロトコル追加手順を docs に概念ベースで記載する

1 participant