Calculation
In Tengri, computation is performed in virtualised compute pools.
Compute pools
SQLA -computing pool is a lightweight container that runs on a hardware cluster in ~100 milliseconds.
SQL-computers:
-
receives exclusive cores (vCPU) and RAM-budget
-
loads data and executes SQL-queries
-
is switched off by the system after some waiting period (if idle without load)
Due to this compute architecture:
-
Each analyst works with its own SQL-computer.
-
Analysts do not interfere with each other.

Each analyst in each session can select the size of the calculator for SQL-query:
XS
/ S
/ M
/ L
/ XL
.
Each next calculator size is twice the size of the previous one.
Execution time of TPC-H test on different calculator sizes:

Code used to execute this test
SELECT profit.nation AS nation,
profit.o_year AS o_year,
SUM(profit.amount) AS sum_profit
FROM (SELECT s100_nation.n_name AS nation,
EXTRACT(YEAR FROM s100_orders.o_orderdate) AS o_year,
s100_lineitem.l_extendedprice * (1 - s100_lineitem.l_discount) -
s100_partsupp.ps_supplycost * s100_lineitem.l_quantity AS amount
FROM s100_part, s100_supplier, s100_lineitem,
s100_partsupp, s100_orders, s100_nation
WHERE s100_supplier.s_suppkey = s100_lineitem.l_suppkey
AND s100_partsupp.ps_suppkey = s100_lineitem.l_suppkey
AND s100_partsupp.ps_partkey = s100_lineitem.l_partkey
AND s100_part.p_partkey = s100_lineitem.l_partkey
AND s100_orders.o_orderkey = s100_lineitem.l_orderkey
AND s100_supplier.s_nationkey = s100_nation.n_nationkey
AND s100_part.p_name LIKE '%' || 'black' || '%')
AS profit
GROUP BY profit.nation, profit.o_year ORDER BY nation, o_year
DESC NULLS FIRST LIMIT 1000;
Computers are also supported in Tengri Python .
Accelerating calculations
To accelerate computations, Tengri supports:
- Morsel-driven parallelism
-
OLAP SQL-queries run faster by using Morsel algorithms to load all vCPU, allocated by the system.
- SIMD-instructions
-
OLAP SQL-queries run faster by using SIMD-instructions of modern CPU.
-
Performance tests of Tengri are given in Test results.
-
For more details on computing performance, see Computing pools.