Licensing

The Enterprise Edition of HEAVY.AI contains a rich set of analytical and location intelligence features at various capacity levels. A HEAVY.AI license provides the ability to use these features at specific capacities (e.g. specific number of GPUs) for a specified period of time, typically based on an end user license agreement.

A new license version and mechanism was implement in the 8.0 HEAVY.AI release. This is a breaking change that would require all enterprise customers to request a new license before upgrading to the 8.0 release. This document provides details about the new licensing options and provides guidance on how to decide on the best licensing option for your organization and how to request and apply an appropriate license.

Starting at the 8.0 release, HEAVY.AI supports two types of licenses: Node Locked Licenses and Floating Licenses.

Node Locked Licenses

Node locked licenses restrict the use of the HEAVY.AI platform to a single machine. A node locked license is generated for a specific machine that an organization has set up to run their HEAVY.AI instance and is appropriate for organizations with single instance deployment agreements with dedicated machines for HEAVY.AI use.

In order to get started with a node locked license, a unique machine identifier called a “Host ID“ has to be derived from the machine on which HEAVY.AI will be running. The Host ID can be displayed using the heavysql “\status” command. For example:

$ echo "\status" | ./bin/heavysql -p HyperInteractive
License invalid
Not connected to any database. See \h for help.
Server Version                      : 7.2.4 Enterprise Edition
Host ID                             : 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr
--------------------------------------------------
Server Name                         : example.com
Server Start Time                   : 2024-03-01 : 00:00:00

The HEAVY.AI instance that the heavysql client connects to has to be launched on the machine in question and with privileged access (e.g. using “sudo“) in order to view the Host ID and use a Node Locked License. See the “Using systemd to Launch HeavyDB with Privileged Access” section for more details about how to launch HeavyDB with privileged access using systemd. For HEAVY.AI docker deployments, no additional deployment steps are required.

Note that changing fundamental hardware components of the machine can result in a change in the Host ID. If this happens, please reach out to the Customer Success team for assistance.

The Host ID is only meaningful within the context of HEAVY.AI and cannot be used to derive any information about the machine on which HEAVY.AI is running.

If you intend on getting a Node Locked License, create a new Node Locked License Request support ticket and provide the Host ID in the ticket description.

Floating Licenses

Floating licenses allow for the deployment of the HEAVY.AI platform on multiple machines on the same network. Floating licenses require the deployment of another type of server called a “License Server”. The License Server monitors the use of HEAVY.AI licenses and resources across deployments and determines whether a deployment should proceed based on license restrictions related to the number of allowed deployments and total resources consumed across all deployments. When all license specified resources are used to the limit, no additional HEAVY.AI deployments will be allowed. A floating license is appropriate for organizations who have multiple instance deployment agreements or single instance deployment agreements but cannot rely on a dedicated machines for HEAVY.AI use (e.g. cloud deployments on non-dedicated hosts).

Similar to the process for Node Locked License deployments, a Host ID has to be derived for the machine on which the License Server will run (i.e. the license server is node locked). The steps for getting the Host ID is the same as those mentioned in the “Node Locked Licenses“ section above. If you intend on getting a floating license, create a new Floating License Request support ticket and provide the following information in the ticket description:

  1. Host ID of machine on which the License Server will be running.

  2. Hostname of License Server (as seen by the HeavyDB instances).

  3. License Server port number (as seen by the HeavyDB instances).

License Server Deployment

The License Server can be deployed using the heavyai/heavyai-license-server docker image. A directory containing an initially empty storage directory and license_server.conf file should be bound to the /var/lib/heavyai path. Example deployment:

$ mkdir -p ~/heavyai-license-server/storage
$ echo "port = 6278" > ~/heavyai-license-server/license_server.conf

$ docker run --rm -p 6280:6280 \
  -v ~/heavyai-license-server:/var/lib/heavyai \
  heavyai/heavyai-license-server

Organizations that have multiple teams, each using a different HEAVY.AI floating license, can use the same license server for all HEAVY.AI deployments across all teams. The license server is a lightweight application that can be deployed on a small CPU only machine.

Upgrade Scenarios

No Existing HEAVY.AI Deployments

Customers with no existing HEAVY.AI deployments can follow the above steps for getting either a Node Locked or Floating License using the latest HEAVY.AI release.

Existing License on a HEAVY.AI 7.x.x Deployment

Customers with existing 7.x.x HEAVY.AI deployments should follow the above steps for getting either a Node Locked or Floating License using their existing deployment. An upgrade to the latest (or any 8.0 and later releases) should occur only after getting a new license from the Customer Success team. The old heavy.license file should be deleted or renamed before attempting to upgrade.

Existing license on a HEAVY.AI 6.x.x deployment

Customers with existing 6.x.x HEAVY.AI deployments should first upgrade to a 7.0.x release and follow the steps specified in the above “Existing license on a HEAVY.AI 7.x.x deployment“ section.

Using systemd to Launch HeavyDB with Privileged Access

In order to launch HeavyDB with privileged access using systemd, the [Service] User and [Service] Group fields in the /lib/systemd/system/heavydb.service file (see CUDA Compatibility Drivers | v7.2.4 (latest) | HEAVY.AI Docs for more details) should be removed. The updated file should look like:

[Unit] 
Description=HEAVY.AI database server 
After=network.target remote-fs.target

[Service] 
Environment=LD_LIBRARY_PATH=/usr/local/cuda-11.0/compat:$LD_LIBRARY_PATH
WorkingDirectory=/opt/heavyai
ExecStart=/opt/heavyai/bin/heavydb --config /var/lib/heavyai/heavy.conf 
KillMode=control-group 
SuccessExitStatus=143 
LimitNOFILE=65536 
Restart=always

[Install] 
WantedBy=multi-user.target

After updating the service file, force reload of the systemd configuration by executing the following command:

sudo systemctl daemon-reload

Last updated