今後数か月のうちのある時点で、アプリは DB を分割する必要があるサイズになります。ホスティング、Node.js/PostgreSQL スタックに Heroku を使用しています。
概念的には、各論理シャードが 1 人のユーザーとそのユーザーに関連付けられたすべてのデータを表すことは、アプリにとって理にかなっています (アプリの各ユーザーは大量のデータを生成し、ユーザー間のやり取りはありません)。ユーザーがデータに対して複雑なアドホック クエリを実行できる機能を保持する必要があります。私はシャーディングについて話している次のような多くの記事を読みました: http://www.craigkerstiens.com/2012/11/30/sharding-your-database/
概念的には、シャーディングがどのように機能するかを理解しています。しかし実際には、どのコードを書く必要があり、アプリケーションのどの部分を変更する必要があるかという点で、これを Heroku に実装する方法がわかりません。チュートリアルまたはいくつかのポインターへのリンクをいただければ幸いです。
以下は、私がすでに見たいくつかのリソースです。
- http://www.craigkerstiens.com/2012/11/30/sharding-your-database/
- MySQL シャーディング アプローチ?
- Heroku は複数のデータベース サーバーを処理しますか?
- http://petrohi.me/post/30848036722/scaling-out-postgres-partitioning
- http://adam.heroku.com/past/2009/7/6/sql_databases_dont_scale/
- https://devcenter.heroku.com/articles/heroku-postgres-follower-databases
- AWS が存在するのに、なぜ人々は Heroku を使用するのですか? Heroku と AWS の違いは何ですか?