Hacker News new | ask | show | jobs
by intellectable 3890 days ago
For replication instances run in a master-replica setup using Streaming Replication try:

http://www.repmgr.org/

repmgr is an open-source tool suite to manage replication and failover in a cluster of PostgreSQL servers. It enhances PostgreSQL's built-in hot-standby capabilities with tools to set up standby servers, monitor replication, and perform administrative tasks such as failover or manual switchover operations.

repmgr has provided advanced support for PostgreSQL's built-in replication mechanisms since they were introduced in 9.0, and repmgr 2.0 supports all PostgreSQL versions from 9.0 to 9.4.

https://github.com/2ndQuadrant/repmgr src: http://instagram-engineering.tumblr.com/post/13649370142/wha...

For Sharding try:

http://instagram-engineering.tumblr.com/post/10853187575/sha... http://rob.conery.io/2014/05/29/a-better-id-generator-for-po...

For clustering try:

https://github.com/smbambling/pgsql_ha_cluster/wiki/Building... https://wiki.postgresql.org/wiki/Replication,_Clustering,_an...

I too wish there existed a nice dashboard db management tool like the ones Rethinkdb and Couchbase provide out of the box.

1 comments

One of the risks here is that it's very hard to ascertain the support situation around some of these third party products.

If you design your application to communicate to your database through a certain sharding solution, and the you find that sharding product becomes abandoned, you can be in a very difficult position.

That wiki lists at least one product as "stalled".

If I run into a Postgresql bug, am I going to get told "we have no way of debugging that with your third party clustering extension in place"?

These are all obstacles that can be overcome, but just jumping on a random clustering project should be done with caution.

As a related part of clustering, I'd love to be able to do downtime free version upgrades like in Oracle - it would remove one of the major reasons for clustering.

PostgreSQL is a pretty solid platform for, and you can reason about it much like any piece of complex-but-coherent software. In practice, we debug and diagnose it right along with 3rd party extensions. Think about it like debugging a kernel with apps running. You don't get a "clean" case, you have to make it work for all cases cleanly.