Scaling the GitLab Database

https://about.gitlab.com/2017/10/02/scaling-the-gitlab-database/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website

connection pool的重要性:这个我们做的不是很好,我们都是直接使用pymongo去链接的,没有限制链接数量。另外通过添加connection pool我们可以统一访问点。webapp和worker可以访问不同的connection pool. 他们使用的是PGSQL数据库,用pgbouncer来关联连接池。

sharding危害多:可以看cases against sharding. 维护成本,访问限制(后面访问都必须带上shard key), 以及部署成本都比较高。

load balancing分摊压力:这个和我们使用primary/secondary类似,但是看上去他们对于访问数据的一致性要求比较高,至少是需要让数据一致性可控。

他们还提到他们购买了Crunchy Data的服务,对于只有1~2个人了解数据库内部机制的团队,这种咨询服务可以少走很多弯路。 https://about.gitlab.com/handbook/infrastructure/database/

最后他们也给出了自己的grafana看板,在设置上我们可以参考参考 http://monitor.gitlab.net/dashboard/db/postgres-stats?refresh=5m&orgId=1