Choosing the Right Database
Artifactory uses Derby as the default database, which requires no additional configuration. Derby provides good performance for small to medium size loads. However, if you expect intensive usage or high load, high availability setup, and better tooling, we recommend that you use PostgreSQL(PostgreSQLv10.x to v13.x). Since o其他JFrog产品只支hth华体会最新官方网站持PostgreSQL,决定ing PostgreSQL for Artifactory will allow you to use the same database for the entire JFrog Platform.
Additionally, Artifactory supports the following pluggable database implementations:
- MySQL v5.7 and 8.x
- Oracle versions v.12.2, v.18, and v.19
- Microsoft SQL Server 2008 (10.5) and above
- MariaDB versions 10.2.9-10.4 and version 10.5.9
For each of the supported databases you can find the corresponding example values in thesystem.yaml
configuration file.
Checksum-Based Storage
Artifactory uniquely stores artifacts using checksum-based storage. For details, please refer toChecksum-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
Database Tuning for Heavy Loads in Artifactory
You can alter the maximum connections an Artifactory node can open to the database by modifying themaxOpenConnections
parameter in theArtifactory System YAML. The default value of themaxOpenConnections
parameter is 100. You must set the value of the parameter in theartifactory
,access
, and元数据
sections of the system YAML file.Once you set the value, the Artifactory node will open up that many database connections.Therefore, ensure that the database can accommodate the total number of connections all Artifactory nodes can open.
Use the following formula to determine the value of the parameter.
Total number of connections = (number of nodes) * ((artifactory.database.maxOpenConnections * 2) + access.database.maxOpenConnections + metadata.database.maxOpenConnections) + 50 The additional 50 are to provide extra breathing room in situations where all database connection pools are exhausted.
The following sample shows an example.
artifactory: database: maxOpenConnections: 300 ... access: database: maxOpenConnections: 300 ... metadata: database: maxOpenConnections: 300
In the example, the total number of open database connections is 1200.