Skip to content
Snippets Groups Projects
Closed Add support for PostgreSQL 11
  • Add support for PostgreSQL 11

  • Add support for PostgreSQL 11

    Closed Epic created by Larissa Lane

    Summary

    For performance and availability reasons, we would like to move to PG11 as a minimum requirement in Omnibus no later than the next major Omnibus release in May 2020. To allow plenty of time for testing upgrades and transitioning to opt out, PG11 should be added as opt in by 12.8. This will give us 3 months to do testing. Much of the work should be completed in the 12.7 timeframe.

    • PG11 opt in by 12.8
    • PG11 opt out by 12.10
    • PG11 minimum requirement by 13.0

    Requirements

    • Test using PG11 in fresh installs and upgrades.
    • Test the following install types:
    • Single node
    • Separate database node, omnibus managed
    • PG HA with 3 or more database nodes
    • GEO with one primary node, one secondary node (postgresql and geo-postgresql on the same secondary node)
    • Geo and HA with one primary database node and one secondary database node (postgresql and geo-postgresql on the same secondary node).
    • Geo and HA with PG HA for the primary database node, one secondary database node (postgresql and geo-postgresql on the same secondary node)
    • Geo with one primary node, separate secondary nodes for postgresql, and geo-postgresql databases
    • Test that backups and restores work

    Tasks

    Issues have been created and linked to this epic. Per @ibaum adding and testing the upgrade should happen on their own. But verifying the different installation types, and implementing the upgrade procedures should be able to be worked on in parallel by different engineers.

    Screen_Shot_2020-01-14_at_4.16.54_PM

    In summary, key tasks include:

    • Include PostgreSQL 11 in the omnibus-gitlab package
      • This should be straightforward. Building 11 is not significantly different than building previous versions
    • Verify application works on PostgreSQL 11
      • At a minimum, we'll want to run gitlab-qa against an instance using PostgreSQL 11 on each of the install types. We should rope in quality and database team for their feedback on that, but I think it should be sufficient. We just want to ensure that existing functionality works. We don't need to concern ourselves at the beginning if new features work.
      • Verify backups and restores work.
    • Verify upgrade from 9.6 -> 11
    • Verify upgrade from 10 -> 11
    • Ensure GitLab errors out on an upgrade if run on a node with an omnibus-gitlab managed PostgreSQL 9.X still installed before any changes occur. We should print out a useful error message, and the GitLab instance should still be functioning.
      • We may still run into users on older versions with 9.2. So rather than look for version 9, perhaps we should just ensure they're on version 10 before we proceed.
    • Update pg-upgrade to handle 3 versions
      • This could be complicated. Originally, pg-upgrade was written for single node installs when we were doing the 9.2 to 9.6 upgrade. With the addition of GEO and PG HA for the 9.6 -> 10 upgrade, we've added on a bit of frailty. We should spend some time seeing if we can make it support an arbitrary number of versions. There are two major changes for this
        1. Interim state, we'll need to support upgrading to 10 or 11. Defaulting to 10.
        2. Final (for now) state. We should just need to change the default upgrade target from 10 to 11.

    Risks

    * We don't yet know if it is possible to upgrade directly from PG9.6 to PG11 or whether an interim step of upgrading to PG10 will be required. The upgrade path will be confirmed as part of this epic. * We are targeting opt-in for PG11 by 12.8. The work to add and test PG11 requires issues to be completed in a specific order and some issues cannot be started until blocking issues are completed.

    ✓ 10 of 10 checklist items completed · Edited by Larissa Lane

    Linked items 0

  • Link items together to show that they're related or that one is blocking others.

    Activity

    • All activity
    • Comments only
    • History only
    • Newest first
    • Oldest first