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.

sql workers

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:

worker 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.