License Management

Slack Docker Pulls

Configuration and startup

A license string is provided from Alluxio that encodes the license details. In conf/alluxio-site.properties, set the property alluxio.license with the aforementioned license string.

Start the processes for the cluster via their start scripts. If the process successfully starts and joins the cluster, its corresponding log file will contain the line: License startup check succeeded.

Startup failure scenarios

A process will fail to start if it is in violation of the license. An error will appear in the corresponding log file of the failed process.

License expiration

License has expired after <date>

Licenses have an expiration date to govern the time period in which Alluxio may be used. Processes will fail to start if the expiration date has passed.

Production ID mismatch

The license production ID (<id>) does not match the artifact production ID (<id>)

Each license and deployment artifact (ex. tarball or docker image) are encoded with a unique ID. A license may not be used for an artifact with a different ID.

Individual process limits

<limit type> per process constraint exceeded

The license may define a maximum limit of a resource type available for an individual process. The limitation could be:

  • vCPU: Defined as the the number of available processors that the JVM can utilize
  • JVM memory: Defined as the maximum heap memory for the JVM, ex. -Xmx
  • Storage capacity, if process is a worker: Defined by the configuration property alluxio.worker.page.store.sizes. If multiple are provided, takes the sum of the list.

If any of these limits are violated, the process will terminate itself. Reduce the corresponding resource for the specific process to allow the process to start.

Cluster total limits

<limit type> cluster total constraint exceeded

The license may define a maximum limit of a resource type as an aggregated sum of all the processes registered to a cluster.

The limitation could be:

  • Number of processes: Each registered process contributes a count of 1 to the sum
  • vCPU: Each registered process contributes its number of available processors to the sum
  • Storage capacity: Each registered worker contributes its storage capacity to the sum

A newly started process will fail to register if adding its resources to the cluster will exceed the cluster total limits.

Upkeep and shutdown

CLI commands

Run bin/alluxio license show to view the details of the configured license. Displays information such as the expiration date or resource limits.

Example output:

{
    "type": "trial",
    "licenseId": "unqj2na0huf5xe37",
    "productionId": "trial000",
    "expirationDate": "2023-12-31T00:00:00+00:00",
    "gracePeriodDate": "2023-12-31T00:00:00+00:00",
    "licenseVersion": 1,
    "maxTotalVCpu": 320,
    "maxTotalStorageCapacityGb": 10000
}

Run bin/alluxio license status to view the license related cluster details. Displays the current aggregated resources that are registered for the cluster.

Example output:

{
    "summary": {
        "vCPU": 20,
        "memory": 7635730432,
        "storage": 1073741824
    },
    "processes": {
        "192.168.31.42:29989": {
            "vCPU": 10,
            "memory": 3817865216,
            "storage": 536870912
        },
        "192.168.31.42:29999": {
            "vCPU": 10,
            "memory": 3817865216,
            "storage": 536870912
        }
    }
}

Run bin/alluxio info production to display the production ID of the artifact. This needs to match the production ID of the license for the process to start. A production ID of trial000 signifies that the license details are embedded in the artifact rather than being provided as a configuration property.

Unexpected shutdown

If a process is crashes or unexpectedly shuts down, its resources will still count towards the cluster total for some duration. The orphaned resources will eventually timeout and be automatically deregistered after 1 minute.