Goals

Although the cutover period is projected to last up to a week, this could extend into two weeks or longer if data synchronization processes need to be restarted (as they did last time). We need to ensure that we have access to an accurate and complete reporting database source throughout the cutover period, ideally without having to change what is already in place for our dashboards, automated batch jobs, and automated reports. It is important to minimize the disruption to access to accurate data and to provide safeguards if the Metadb resychronization process fails and/or takes longer than expected.

Environment Definitions

FOLIO Production = the FOLIO Production application server, which is the data source for reporting databases

LDP = our current LDP production reporting database

Metadb1 = our current Metadb production reporting database

Metadb2 = a separate Metadb reporting database that does not become Metadb Production until updates, synchronization, and testing processes are complete (2-3 weeks)

3 Cutover Scenarios to Consider


SCENARIO 1 (METADB1 and METADB2)

DateCornell Production 
Reporting Database
Environment ChangesActivity
February 3 - 7, 2025LDPLDP and Metadb1Reporting Team sets up dashboards, automated reports, and other processes to use Metadb1 as data source during cutover period
February 7, 2025


Metadb1

FOLIO Production 
LDP
Metadb1

FOLIO Production is upgraded from PostgreSQL version 12 to 16. FOLIO Production is set up as source for continued streaming data to Metadb1. LDP is saved, but "frozen" without data updates.

start February 7, 2025
end Feb 14 - 21, 2025

Metadb1FOLIO Production
Metadb2
Metadb2 is upgraded from PostgreSQL version 12 to 16. Start data resynchronization process between FOLIO Production and Metadb2.

for one week following
synchronization end:
February 17-21
OR
February 24-28

Metadb1Metadb2 

Reporting and Automation Teams test data accuracy and performance on updated and resynchronized Metadb2. 
Based on results of testing, Cornell makes "Go/No Go" decision to continue using Metadb1 or to start using Metadb2 as production reporting database. 

March 1

Metadb2 or Metadb1, depending on "Go/No Go" decision

Metadb2
Metadb1
LDP


If decision is a "Go," Metadb2 becomes the production reporting database, and Metadb1 and LDP are retired. Reporting and Automation Teams set up dashboards, automated reports, and other processes to use Metadb2, or Hosting Team makes a seamless switch from Metadb1 to Metadb2 host addresses such that no host address changes are needed.

If decision is "No Go" Metadb1 continues running as the production reporting database until Metadb2 is working properly.

OR


SCENARIO 2 (LDP KEEPS RUNNING)

DateCornell Production 
Reporting Database
Environment ChangesActivity
February 3 - 7, 2025LDPLDP Reporting and Automation Teams set up dashboards, automated reports, and other processes to use LDP as data source during cutover period.
February 7, 2025


LDPLDP 

FOLIO Production is upgraded from PostgreSQL version 12 to 16. FOLIO Production is set up as source for continued nightly LDP data transfers.

start February 7, 2025
end Feb 14 - 21, 2025

LDPMetadb1 Start data resynchronization process between FOLIO Production and Metadb1.

for one week following
synchronization end:
February 17-21
OR
February 24-28

LDPMetadb1 

Reporting and Automation Teams test data accuracy and performance on updated and resynchronized Metadb1.

Based on results of testing, Cornell makes "Go/No Go" decision to continue using LDP or to start using Metadb1 as production reporting database.

March 1

LDP or Metadb1, depending on "Go/No Go" decision

LDP
Metadb1

If "Go," Reporting and Automation Teams set up dashboards, automated reports, and other automation processes to use Metadb1.

If "No Go," LDP continues to serve as production reporting database until Metadb1 is working properly.


OR


SCENARIO 3 (REPORTING DATABASE SNAPSHOT SYNC)

DateCornell Production 
Reporting Database
Environment ChangesActivity
February 3 - 7, 2025Metadb1Metadb1Reporting and Automation Teams set up dashboards, automated reports, and other processes to use Metadb1 as data source during cutover period.
February 7, 2025


LDP

Metadb1temp

Metadb1original

Snapshot of Metadb1 reporting database is taken (e.g., pg_dump) and restored to a temporary PostgreSQL instance that is still on version 12 (Metadb1temp). Pause Debezium connector.

FOLIO Production is upgraded from PostgreSQL version 12 to 16.

Reconnect the upgraded FOLIO Production server to Metadb1temp and start Debezium to continue data streaming.

Use Metadb1temp for reporting during the upgrade and resynchronization of Metadb1original. 

start February 7, 2025
end Feb 14 - 21, 2025

Metadb1tempMetadb1original 

Metadb1original is upgraded from PostgreSQL version 12 to 16. 

Use Debezium Connector between Metadb1temp and Metadb1original to capture changes that took place during the upgrade process (resynchronize).

Once the upgrade and resychronization processes are complete on Metadb1original, switch the connection to the FOLIO Production server from Metadb1temp to Metadb1original.

for one week following
synchronization end:
February 17-21
OR
February 24-28

Metadb1temp

Metadb1original

Metadb1temp 

Reporting and Automation Teams test data accuracy and performance on updated and resynchronized Metadb1original.

Based on results of testing, Cornell makes "Go/No Go" decision to continue using Metadb1temp or to start using Metadb1original as production reporting database.

March 1

Metadb1original or Metadb1temp, depending on "Go/No Go" decision

Metadb1original

Metadb1temp

If "Go," Reporting and Automation Teams set up dashboards, automated reports, and other automation processes to use Metadb1original, or Hosting Team makes a seamless switch from Metadb1temp to Metadb1original host addresses such that no host address changes are needed.

If "No Go," Metadb1temp continues to serve as production reporting database until Metadb1original is working properly.



NOTES:

-Would using snapshots help?

-What about a 3rd scenario where the synchronization is done ahead of time?

-When do you have to do a resynch?

-when we update postgres (Yes)

-when we update Metadb software (no?)

-when we update to Eureka? 

-when we update to a new version of FOLIO on the application server? Yes


-FOLIO application servers must be upgraded on PostgreSQL 12 to 16
-Metadb is on version 14 of PostgreSQL 

-


-Ramsons upgrade in April , perhaps bundle with Metadb 1.4 release so we can resynchronize the data just once


-down 8am to 10am

-noon on Friday


From Nassib on 1-31-25:
Resync is not required when upgrading the Metadb software.  It may be required in some cases when upgrading the FOLIO software.  It is required for upgrading Postgres from versions prior to 17.