Understand Firebolt’s consumption metric, Firebolt Unit (FBU), and how to calculate FBU for a given engine configuration.
This page explains the engine consumption metric, Firebolt Units (FBUs), and provides detailed examples showing how to calculate the following:
For more information about Firebolt engines, see Understanding Engine Fundamentals.
Firebolt uses a metric called Firebolt Units (FBU) to track engine consumption. The number of FBUs available to an engine is determined by the following engine attributes:
Each node type provides a minimum number of FBUs as shown in the following table:
Node type | Compute family | Firebolt Units (FBUs) per hour |
---|---|---|
Small (S) | Storage-optimized | 8 |
Medium (M) | Storage-optimized | 16 |
Large (L) | Storage-optimized | 32 |
Extra Large (XL) | Storage-optimized | 64 |
Small (S) | Compute-optimized | 4 |
Medium (M) | Compute-optimized | 8 |
Large (L) | Compute-optimized | 16 |
Extra Large (XL) | Compute-optimized | 32 |
Small and medium engines are available for use right away. If you want to use a large or extra-large engine, reach out to support@firebolt.io.
As you add more nodes and more clusters to your engine, the number of FBUs available to the engine increases linearly. The available FBUs for a given engine configuration are calculated as follows:
FBUs are consumed only when an engine is in a running state. The FBUs consumed by an engine depends on both the current configuration of the engine (node type, number of nodes and number of clusters) and the duration for which the engine has been running in that configuration. Since Firebolt provides per-second billing, the consumed FBU is calculated at per-second granularity, as shown in the following examples:
If you create an engine with the following configuration: TYPE = “S”, NODES = 2, CLUSTERS=1, it has 16 available FBUs per hour. If the engine runs for only 15 minutes of that hour, then the engine consumes 4 FBUs.
If you create an engine with the following configuration: TYPE = “L”, NODES = 3, CLUSTERS=2, it has 192 FBUs available per hour. If the engine was only running for 40 seconds to quickly ingest a small amount of data. The consumed FBU is calculated as follows:
FBU Consumed = (192/3600) x 40 = 2.13
If you perform scaling operations on an engine, you add additional compute resources (clusters) to the engine. These operations include scaling up or down, and scaling out or in.
Any new clusters resulting from a resizing operation will have the new node type for a scale up or down operation. Any new clusters will have the desired number of nodes for a scale in or out operation. Existing clusters will be removed after they finish running any currently running queries. New queries will run on the new resized clusters. This can result in a temporary overlap when both old and new clusters are running concurrently, which will be reflected in the engine’s consumption.
If you create an engine with the following configuration: TYPE = “S”, NODES = 2, CLUSTERS=1, there are 16 available FBUs per hour.
The consumed FBUs are calculated as follows:
Total number of FBUs consumed for the hour = 4 + 1.3 + 3.3 + 6.7 = 15.3 FBUs.
If you create an engine with the following configuration: TYPE = “L”, NODES = 2, CLUSTERS=1, there are 64 available FBUs per hour.
The consumed FBUs are calculated as follows:
Total number of FBUs consumed for the hour = 16 + 5.3 + 2.7 + 5.3 = 29.3 FBUs.
Firebolt Engines are priced based on the amount of FBUs consumed by a given engine. For more details on engine pricing, including examples, visit the Pricing page.