68 karma · joined April 19, 2016
* Optimizing for roll forward upgrades in a fully automated cloud environment * Streaming: encryption and compression on the fly for the backup streams without creating temp files on disk * Solid object storage support (AWS/GCP/Azure) * Survive over various glitches like faulty networks, processes getting restarted, etc.
Restore speed is very important for us and pghoard is pretty nice in that respect, e.g. 2.5 terabytes restored from an S3 bucket to an AWS i3.8xlarge in half an hour (1.5 gigabytes per second avg). This means hitting all of cpu/disk/network very hard, but at restore time there's not typically much else to do with them.
What worked well for us (https://aiven.io):
- Architecturally relying only to a few cloud provider services (only need VMs, disk, object storage)
- Upfront investment on being able to move services from one region to another without downtime
- Pre-existing tooling for easily (manually) reconfiguring backup destinations on the fly
- Not running everything on just AWS
What did not work so well:
- Backups should automatically reroute to a secondary backup site on N consecutive failures
- Alert spam, need more aggregation
- New failure mode: extremely slow EBS access, some affected VMs were kinda working, but very slowly: need to create a separate alert trigger for this
Here's just a quick "hdparm -t" test I just ran on two random low-end nodes:
upcloud-de-fra: 1028 MB in 3.00 seconds = 342.12 MB/sec
aws-us-west-1: 58 MB in 3.02 seconds = 19.17 MB/sec
I would of course recommend everyone to benchmark their actual workload on each cloud option before making the decision.
Major enhancements in PostgreSQL 9.6 include:
Parallel sequential scans, joins and aggregates
Elimination of repetitive scanning of old data by autovacuum
Synchronous replication now allows multiple standby servers for increased reliability
Full-text search for phrases
Support for remote joins, sorts, and updates in postgres_fdw
Substantial performance improvements, especially in the area of improving scalability on many-CPU servers
Which vendor neutral protocol are you interested in using?