Dear all,

I’m reasonably experienced with Postgres with simple (single, „rebuild and 
restore“) requirements, but would need some hints on what to look for in a more 
complex situation - deploying Postgres as the backend for a (virtual) 
appliance. 

This appliance can scale horizontally from a single to dozens of VMs 
(theoretically more, but most installations are small-ish). It is feasible to 
configure VMs for particular purposes (eg „you are [also] a DB node“), but 
basically all instances will/should be able to perform their main tasks besides 
(also) being a DB node. As the VMs may be installed in very different 
environments, network-based solutions are less feasible and we would prefer a 
DB-level solution. We assume that for most cases, primary/stand-by 
configurations would be sufficient in terms of availability / latency / 
throughput. 

We must also assume that there is no person who would be able to touch things 
if an error occurs. Data consistency and (as much as possible) automated 
recovery from error situations („VM down“, „network lost“, …) are therefor more 
important than „n nines". We can assume that the VMs can talk to each other 
over TCP (eg using SSH tunnels, direct Postgres connection, or some other 
suitable protocol). Scripting „around“ the database is available to initialize 
instances and for similar tasks.

Would Postgres’ own log-shipping (file-based + streaming replication, possibly 
with remote_write) be sufficient for such a set of requirements?

What aspects would you consider important for such a scenario? 

PS: In case it matters, OpenBSD is the base platform of the VMs.

Thanks for your inputs!

— Matthias




Reply via email to