クラウドネイティブ関連の深堀りは別の機会に! 比較したのは AWS の ECS と EKS. 決め手は「自分たちでどこまで技術選定をコントロールできるか」 CNCF がリードするようなベンダーニュートラルなエコシステムを使いたい。 なので Kubernetes をやっていくことを決意。 Cloud Native Definition Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor- neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone. https://www.cncf.io/about/who-we-are/ https://github.com/cncf/toc/blob/main/DEFINITION.md 41
外部キー制約:共有ロックではない。 Table : transaction record : 1 record : 2 record : 3 record : 4 record : 5 . . . record : n Table : master record : ver1 更新処理中に 見事な待ち行列が発生 36rps でエラー連発
解決策として局所的に外部キー制約を外してアプリケーション側で担保。 Table : transaction record : 1 record : 2 record : 3 record : 4 record : 5 . . . record : n Table : master record : ver1 グローバルに外部キー制約を除去した わけではなく、セッションごとに必要 となる処理の前段で解除→処理が終わ ったら再度有効化している。 これにより 36rps 突破 以降の負荷試験も突破
解決策として局所的に外部キー制約を外してアプリケーション側で担保。 Table : transaction record : 1 record : 2 record : 3 record : 4 record : 5 . . . record : n Table : master record : ver1 TiDB公式ドキュメントにも以下の記載がある。 https://docs.pingcap.com/ja/tidb/stable/foreign-key TiDB は現在LOCK IN SHARE MODEサポートしていないため、子 テーブルが大量の同時書き込みを受け入れ、参照される外部キー値 のほとんどが同じである場合、深刻なロック競合が発生する可能性 があります。大量の子テーブルデータを書き込む場合は foreign_key_checks無効にすることをお勧めします。