【发布时间】:2013-01-29 10:51:57
【问题描述】:
在接下来几个月的某个时间点,我们的应用程序将达到我们需要对数据库进行分片的大小。我们使用 Heroku 来托管 Node.js/PostgreSQL 堆栈。
从概念上讲,对于我们的应用来说,让每个逻辑分片代表一个用户以及与该用户关联的所有数据是有意义的(我们应用的每个用户都会生成大量数据,并且用户之间没有交互)。我们需要保留用户对他们的数据进行复杂的即席查询的能力。我读过很多文章,比如这篇关于分片的文章:http://www.craigkerstiens.com/2012/11/30/sharding-your-database/
从概念上讲,我了解分片的工作原理。但是在实践中,我不知道如何在 Heroku 上实现这一点,就我需要编写的代码以及我需要修改应用程序的哪些部分而言。一个教程链接或一些指针将不胜感激。
这里有一些我已经看过的资源:
- http://www.craigkerstiens.com/2012/11/30/sharding-your-database/
- MySQL sharding approaches?
- Heroku takes care of multiple database servers?
- 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
- Why do people use Heroku when AWS is present? What distinguishes Heroku from AWS?
【问题讨论】:
-
你检查过八达通吗? github.com/tchandy/octopus
标签: database heroku partitioning sharding heroku-postgres