NEXUS PostgreSql SIZE when migrating from OrientDB to PostgreSql

Hello,

We are planning to migrate from OrientDB to PostgreSQL. We are currently estimating the size of our database in GB. At the moment, our OrientDB database is about 5 GB.

What would be the ideal size for the new database?

The documentation recommends a minimum of 200 GB, but we don’t understand the reason for such a large difference.

Thank you in advance

H!

If your current database size is 5 GB, then I’m assuming you’re part of a very small team.

Our recommendation for a database of 200 GB assumes your Nexus Repository has close to 200,000 requests per day. If that’s not true, and you have fewer, then it’s true you may be able to get away with a smaller database.

However, it’s important to plan for growth. Databases have a tendency to grow very quickly, and some formats (like Docker) grow faster than others. 200 GB gives you a enough overhead to keep working even if a pipeline breaks or your cleanup task configuration changes.

How does the DB size relate to the number of requests? Number of artifacts is obvious.

Just checked on a medium team instance with 30k artifacts and 100k-600k daily requests. DB size is around 2 GB, blob store 800GB.
This instance was peaking at 200k artifacts with 3TB blob store size, but the DB never exceeded 10GB.

It may strongly depend on the actual usage profile, for 1M POMs or Helm Charts of a few KB the relation between DB and blob is expected to be very different from 100 Docker images of 1GB each while the total amount of data is roughly the same.

So I wouldn’t necessarily set up a 200GB PostgreSQL node, if disk space was a concern and the workload is not expected to change dramatically (in this case that may not be your only concern anyway). If you have to buy or reserve fixed size resources and scaling is an issue, probably add a decent buffer though.

@jzora @stkl
Thank you for your responses. To provide more details, here is some additional information that may be useful:

OrientDB: 5 GB
Blob size: 84 GB
Blob count: 749,036
Total components: 187,711 (current)
Requests per day: 665,246 (last 24 hours)

We are having trouble understanding, based on these metrics, the exact sizing and resources to allocate to the Postgres database.
We don’t want to over-allocate too much memory.
Thank you in advance for your responses.