TPC-H, comparison with Greenplum

TPC-H (Transaction Processing Performance Council - High Performance) is a benchmark for evaluating the performance of decision support systems and data warehouses. It includes a set of business-oriented analytical queries and parallel data modifications that simulate real-life scenarios of using such systems.

Test parameters

Benchmark

TPC-H

Scaling factor

100

Query

random Q1-Q10

Parameters

random

Number of threads

1, 5, 10, 20

Time

1 hour

Examples of test queries

See examples of test SQL-queries
--Q1. Pricing Summary Report Query
--inputs = [{"depth": random.choice(range(90))}]
select
      l_returnflag,
      l_linestatus,
      sum(l_quantity) as sum_qty,
      sum(l_extendedprice) as sum_base_price,
      sum(l_extendedprice * (1-l_discount)) as sum_disc_price,
      sum(l_extendedprice * (1-l_discount) * (1+l_tax)) as sum_charge,
      avg(l_quantity) as avg_qty,
      avg(l_extendedprice) as avg_price,
      avg(l_discount) as avg_disc,
      count(*) as count_order
from
      s1_lineitem
where
      l_shipdate <= (DATE '1998-12-01') - :depth * interval '1' day
group by
      l_returnflag,
      l_linestatus
order by
      l_returnflag,
      l_linestatus;


--Q2. Minimum Cost Supplier Query
--inputs.size = random.choice(range(50))
--inputs.type = random.choice(['TIN','NICKEL', 'BRASS', 'STEEL', 'COPPER'])
--inputs.region = random.choice(['AFRICA','AMERICA','ASIA','EUROPE','MIDDLE EAST'])
select s_acctbal,s_name,n_name,p_partkey,p_mfgr,s_address,s_phone,s_comment
from s1_part, s1_supplier,s1_partsupp,s1_nation,s1_region
where p_partkey = ps_partkey
and s_suppkey = ps_suppkey
and p_size = :size
and p_type like '%' || :type
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = :region
and ps_supplycost = (
    Select min(ps_supplycost)
    from s1_partsupp, s1_supplier, s1_nation, s1_region
    Where p_partkey = ps_partkey
    and s_suppkey = ps_suppkey
    and s_nationkey = n_nationkey
    and n_regionkey = r_regionkey
    and r_name = :region
)
order by s_acctbal desc,n_name,s_name,p_partkey;

Systems under test

  • Tengri

    • 100 vCPU

    • 200GB RAM

  • Greenplum [1]

    • 1 coordinator + 3 nodes of 30 each vCPU, 64GB RAM

Results

Number of streams Tengri, requests per hour Greenplum, requests per hour

1

302

304

5

1466

1082

10

2890

1444

20

4111

1800

When the system is used by a single analyst, the performance of Tengri and Greenplum is comparable:

test result 1

When the system is used by 10 analysts, Tengri outperforms Greenplum due to efficient resource utilisation without competition:

test result 2

Tengri scales linearly as the number of analysts increases, efficiently utilising computing resources:

test result 3

1. The performance data contained on this site was obtained in a strictly controlled Postgres Professional environment while simulating the intended analytical workloads and is for reference only. Results obtained in other environments may vary