シャードされているアプリで Codeigniter を使用しています。これには、ユーザー ID 間でのデータベースの分割が含まれます。シャードされたデータベースには 2 種類のテーブルがあります。1 つはユーザー ID によってシャーディングされているため、データは複数のシャードに均等に分割され、グローバルではデータがすべてのシャードに複製されます。もちろん、負荷分散も行われているため、デフォルトの php セッションを使用しても機能しません。
セキュリティの点で CI セッション データベースが気に入っていますが、それをシャード化することはできません。そのテーブルにかなりの負荷がかかり、すべてのシャード間で狂ったようにレプリケートされることになります。これは良い状況ではありません。私たちの負荷テストは、ci_sessions テーブルがすでに問題点であることを示しています。
それに対処するためのいくつかの戦略があります。1 つは、ORM に propel を使用しているため、CI のデータベース アクセス レイヤーを使用する ci_sessions を独自の DB に簡単に分割できます。必要に応じて、それを分割することもできます。
人々が提案する他の選択肢があるかどうか疑問に思っていますか?