Frequently Asked Questions on Metadata Migration
What happens to the UI during the migration?
When the migration takes place, the JFrog Platform UI displays a notification that the metadata is currently being migrated.
What happens if the migration stops in the middle?
The migration will continue from the same point the next time Artifactory is started.
Does the migration happen during or after the upgrade?
The migration occurs after the upgrade, and will be triggered on the first system initialization after the upgrade (the first time you start Artifactory v7.x).
Is there any downtime during migration?
JFrog tested the migration process using a benchmark ofArtifactory of 27k packages and 1.2M versions:
- Artifactory ran with the default migration configurations (5 threads migrating to MDS).
- The Artifactory and a PostgreSQL database were run on different machines with the following spec - GCP VM with 8 CPU & 30 Gb RAM.
There is no downtime caused by the migration, however, search results in the UI and in the GraphQL API will be limited.
How long will the migration take and what is the rate of conversion?
Based on the benchmark above, the migration rate was60k-67k versions per hour. The total migration using these specifications tookbetween 18-22 hours.
Database Details
Database Connections
The Metadata service uses a databaseconnection pool that by default contains 100 connections.Running Artifactory with the default MDS migration settings (5 threads migrating metadata), no significant raise in the active connections to the database (about 10 live connections) were detected.In the worst case, the number of connections will not pass 100 connections.
CPU
- The PostgreSQL CPU max value was 60%.
- The MDS CPU max value was 23%
RAM
- The PostgreSQL RAM consumption was about 5%
- The MDS RAM consumption was about 10%
Storage
The database size increased from 95GB to 155GB (~60% increase).
Managing the Metadata Migration Process
Customers can control the metadata migration by limiting the number of threads in Artifactory (threads<=1 means that the migration is off):
shared.extraJavaOpts -Dartifactory.metadata.event.operator.threads=5
Customers cancheck the migration status by querying the database as follows.
SELECT encode(migration_info_blob::bytea, 'escape') FROM migration_status where identifier = 'metadata-service-migration';