Managing PostgreSQL High Availability – Part I: PostgreSQL Automatic Failover