During upgrade, each OrientDB database is checkpointed using standard OrientDB backup API.
Two backup options we hardcode defaults for are compressionLevel and bufferSize at 9 and 16kb respectively. These defaults are optimized for high compression to save disk space and low RAM utilization for a server system at the cost of speed.
The API call is made here:
NXRM also includes an "Admin Exported databases for backup" task used to perform regular backups. The defaults in this case, up to at least version 3.16.2, for compression level and buffer size are defaulted to 9 and 1kb respectively. These defaults are optimized for high compression and low RAM utilization.
The problem is the defaults do not seem optimized for the general case.
Neither default buffer size value of 16MB or 1MB seems ideal for typical server installs. Customer want backups to be as fast as possible at the cost of RAM. We should increase the buffer size to a larger value and align these values.
A maximum compression level of 9 will maximize CPU utilization and further lengthen backup time. Generally customers would prefer minimizing CPU and backup time at the cost of disk. Disk is cheap and it is harder to scale CPU and I/O. An offline compression of the backup can be performed if needed.
- align default values wherever backup is performed
- increase default buffer size
- decrease default compression level