Remote Cache

The remote cache stores cached data, such as validation and generation results, on a shared server or network location. This allows multiple users or build processes to reuse cached results, reducing redundant computations in collaborative environments and CI/CD pipelines.

Remote cache is an additional feature that extends the local cache. It only works when the local cache is enabled. When active, it synchronizes cache data from the local cache with the remote cache server.

What are the Advantages?

The remote cache provides the following advantages over local cache alone:

  • Cross-Team Sharing: Share cached results across multiple developers and machines, not just on a single workstation

  • CI/CD Integration: Build servers can reuse cache data from developers and vice versa, avoiding redundant calculations

  • Centralized Cache Management: One cache server serves the entire team or organization

  • No Local Cache Warming: New team members or clean CI environments benefit immediately from existing cache data

What are the Requirements?

DaVinci Configurator Classic uses the Bazel-remote cache protocol for remote caching.

The remote cache server is not provided by Vector. You must set up and maintain your own cache server infrastructure. You are responsible for:

  • Server installation, configuration, and maintenance

  • Server availability and performance

  • Security of cached data on the server

  • Access control and authentication

  • Data privacy and compliance with your organization’s policies

Supported Server Versions

The following remote cache server versions are supported:

  • Bazel-remote cache: Version 2.x

If an incompatible server version is detected, the remote cache functionality is automatically disabled. This does not affect the local cache, which continues to work normally.

Server Features

Your remote cache server should support:

  • Bazel Remote HTTP/1.1 REST API

  • Unauthenticated access or basic .htpasswd style authentication

  • HTTP or TLS/HTTPS (recommended for production)

How to get Started?

Follow these steps to enable the remote cache:

  1. Obtain the cache server connection details from your administrator:

    • Hostname or IP address

    • Port number

    • Protocol (http or https)

    • Credentials (if authentication is required)

  2. [Optional] Configure the location of the cache configuration file (see Configuration File Location) if necessary

  3. Add and configure the remote cache configuration file (see Configuration File Format)

  4. Restart DaVinci Configurator Classic

  5. Verify the connection by checking log messages during startup. See How to Verify Caching? for details.

  6. Start working - the cache operates automatically in the background

How to Configure Caching?

Remote cache requires configuration through the cache configuration file in JSON format.

If the remote cache server cannot be reached or the configuration is invalid, the remote cache functionality is automatically disabled. This does not affect the local cache, which continues to work normally.

Configuration File Location

See Configuration File Location for location details.

Configuration File Format

Example cache_config.json with remote cache
{
  "version": "1.0",
  "general": {
    "maxFileSizeInMb": 1024
  },
  "remote": {
    "endpoints": [
      {
        "host": "my-cache-server.com",
        "port": 443,
        "protocol": "https"
      }
    ],
    "authentication": {
      "credentials": {
        "username": "cache-server-username",
        "password": "cache-server-password"
      }
    }
  }
}

Configuration Options

version (string)

Configuration schema version (must be "1.0")

general (object)

General cache settings (optional)

general.maxFileSizeInMb (number)

Maximum file size in MB for cached objects (optional, default: 2048 MB / 2 GB). Files larger than this size will not be cached.

remote (object)

Remote cache configuration (optional)

remote.endpoints (array)

Array of cache server endpoints. Currently, only one endpoint is supported.

remote.endpoints[].host (string)

Hostname or IP address of the cache server

remote.endpoints[].port (number)

Port number of the cache server

remote.endpoints[].protocol (string)

Protocol to use (http or https)

remote.authentication (object)

Authentication configuration (optional)

remote.authentication.credentials (object)

Credentials for basic authentication (optional)

remote.authentication.credentials.username (string)

Username for authentication

remote.authentication.credentials.password (string)

Password for authentication

Store credentials securely. Consider using environment-specific configuration files with restricted file permissions.

Changes to cache configuration require a restart of the DaVinci Configurator Classic to take effect.

How to Verify Caching?

To verify that remote caching is working correctly:

  1. Delete your local cache (see Cache Storage for location)

  2. Perform an operation that was previously executed (and cached remotely)

  3. The operation should complete faster as it retrieves cached data from the remote cache server

Depending on the operation and the configuration of your project and BSW Package, caching benefits may manifest as reduced resource usage (CPU, memory) rather than faster execution time. Both are indicators that the cache is working correctly.

Network latency and bandwidth can affect the performance benefits of remote cache. For small files or fast local computations, the overhead of network transfer may reduce the perceived benefit.

Troubleshooting

For general cache troubleshooting (configuration file issues, corrupted cache data, file size limits), see Local Cache Troubleshooting.

The following issues are specific to remote cache.

Connection Failed

Symptom: Remote cache is configured but operations don’t benefit from remote caching. A message appears in the log:

Connection to the remote cache failed.

Reason: The remote cache server cannot be reached due to network issues, firewall restrictions, or incorrect server configuration.

Fallback: Remote cache functionality is automatically disabled. Local cache continues to work normally.

Solution:

  1. Verify network connectivity to the cache server (check if server is reachable via ping or browser)

  2. Check firewall rules and proxy settings

  3. Validate the endpoint configuration:

    • Correct hostname or IP address

    • Correct port number

    • Correct protocol (http or https)

    • Correct credentials (if authentication is required)

  4. Verify that the cache server is running and accessible

  5. Contact your system administrator if the problem persists

Authentication Failed

Symptom: Remote cache connection fails with authentication errors.

Reason: The provided credentials are invalid, expired, or the authentication method is not supported.

Fallback: Remote cache functionality is automatically disabled. Local cache continues to work normally.

Solution:

  1. Verify username and password in the configuration file are correct

  2. Check that the cache server has basic authentication enabled

  3. Ensure credentials have not expired

  4. Contact your system administrator to verify your access rights

Transfer Timeout

Symptom: Remote cache operations are slow or fail, especially for large files.

Reason: Network transfer exceeds the timeout.

Fallback: The specific transfer is aborted. Local cache continues to work normally.

Solution:

  1. Check network bandwidth and latency to the remote cache server

  2. Consider reducing maxFileSizeInMb to avoid transferring very large files (see Configuration Options)

  3. Large files may exceed the timeout - this is expected behavior

  4. Contact your network administrator if network performance is consistently poor