Co-authored-by: 王性驊 <danielwang@supermicro.com> Reviewed-on: #4 |
||
|---|---|---|
| .. | ||
| README.zh-TW.md | ||
| SKILL.md | ||
README.zh-TW.md
儲存知識 (Storage Knowledge) 知識合約指南
概述
storage-knowledge 是知識合約,用來提供儲存技術選擇的原則與框架。涵蓋關聯式、寬列式、文件式與鍵值式儲存,並提供 Use-When 與 Avoid-When 判斷標準。供 design-architecture 在做儲存決策時參考。
核心原則
儲存選擇必須由 PRD 中識別的查詢模式、寫入模式、一致性需求與規模預期驅動。不要因為熟悉、時尚或覺得可能需要就選擇儲存技術。
儲存選擇標準
選擇儲存前,必須先回答:
- 主要查詢模式是什麼?(按鍵、按範圍、按複雜過濾、全文搜索)
- 寫入模式是什麼?(寫入為主、更新為主、僅附加)
- 需要什麼一致性?(Strong、Eventual、Tunable)
- 預期規模是多少?(每天列數、總列數、生長率)
- 存取延遲需求是什麼?(毫秒、秒、最終一致)
- 與其他實體的關係是什麼?(外鍵、嵌套文件、圖形遍歷)
儲存類型
- Relational (PostgreSQL):強一致性、複雜 JOIN、交易完整性
- Wide-Column (Cassandra):高寫入吞吐量、查詢優先建模、線性水平擴展
- Document (MongoDB):文件中心資料、Schema 彈性、豐富查詢能力
- Key-Value (Redis):快取、速率限制、Idempotency Keys、工作階段
知識合約職責
- 提供各儲存技術的比較與選擇框架
- 不替 PRD 做最終儲存選擇
不應做的事
- 不替系統選擇特定儲存技術
- 不基於時尚或流行選擇儲存
- 不假設某種儲存適合所有場景