Cloud customer?
Start for Free >
Upgrade in MyJFrog >
What's New in Cloud >

Search





Overview

Artifactory comes with a built-in embedded Derby database that can be reliably used to store data (metadata) for production-level repositories up to hundreds of gigabytes in size.

Accessing a Remote Database

When using an external database, you need a reliable, stable and low-latency network connection to ensure proper functioning of your system.

When using a full-DB configuration, we strongly recommend a high-bandwidth to accommodate the transfer of large BLOBs over the network.

Setup Flow

To set up your new database, you will need to perform the following steps:

  1. Create a database instance.
  2. Create an Artifactory user for the database.
  3. Install the appropriate JDBC driver.
  4. Set the database parameters in your system.yaml configuration file.
  5. Start Artifactory.

To migrate your existing database:

  • Import the metadata using Full Import and Export (optional for migration, not required for a new installation). Changing the database does not automatically transfer your data to the new database.

* For a complete step-by-step guide, follow the details in the specific page for each of the supported databases listed below.

Database Connection Settings

Add or change the below parameters for database connections settings under the system.yaml configuration file.

maxOpenConnections
The maximum number of pooled database connections (default: 100).
maxIdleConnections

The maximum number of pooled idle database connections (default: 10).

Tomcat Only

This parameter is applicable on Tomcat.

Default Home Directory

The default product home directory is defined according to the installation type. For additional details see the Product Directory Structure page.

Note: This guide uses  $JFROG_HOME  to represent the product home directory.

How is connection pool for database locking done in Artifactory?

From version 6.0.0, the new database locking mechanism adds its own connection pool (defaults to the value of the pool.max.active value).

However, you may need to adjust your database connection limit to accept more connections. For example, if your database is set to accept up to 100 connections from each node, you may consider increasing the limit to 200 concurrent connections per-node, to accommodate the full utilization of the locking connection pool. Your database should accept the number of configured connections per-node multiplied by the number of the nodes in the cluster.  



Choosing the Right Database

Artifactory supports the following pluggable database implementations allowing you to change the default to use other popular databases:

For each of the supported databases you can find the corresponding example values in the system.yaml configuration file.

As the default database, Derby provides good performance, since it runs in the same process as Artifactory; however, under intensive usage or high load, performance may be degraded, since Artifactory and the database compete for shared JVM resources such as caches and memory. Therefore, for Artifactory servers that need to support a heavy load, you may want to consider using an external database such as PostgreSQL or MySQL, which are very common choices in many Artifactory installations.

Any of the other supported databases is also a fair choice and may be the practical choice to make if your organization is already using one of them.


Checksum-Based Storage

Artifactory uniquely stores artifacts using checksum-based storage. For details, please refer to Checksum-Based Storage.


Modes of Operation

Artifactory supports two modes of operation:

  • Metadata in the database and binaries stored on the file system (This is the default and recommended configuration).
  • Metadata and binaries stored as BLOBs in the database


Copyright © 2021 JFrog Ltd.