Vitesse Deepgreen DB is a scalable MPP data warehouse solution derived from the open source Greenplum Database Project. While maintaining 100% compatibility with the open source GPDB project, Deepgreen DB has a next-genaration query processor enhanced with (1) better join and aggregation algorithms, (2) new subsystem to handle spills, and (3) advanced techniques that maximize CPU performance through JIT-compiled query execution, vectorized scans, and data-path optimization.


Contact Sales

TPC-H 10G Results

All 22 queries of TPC-H are measured against Greenplum DB and Deepgreen DB. Q1 and Q5 are specifically graphed below for comparisons.



Q1: Scan and aggregate fact table

Q1 is a typical aggregate query running against the fact table.

 SELECT lineitem.l_returnflag,
    lineitem.l_linestatus,
    sum(lineitem.l_quantity) AS sum_qty,
    sum(lineitem.l_extendedprice) AS sum_base_price,
    sum(lineitem.l_extendedprice * (1 - lineitem.l_discount)) AS sum_disc_price,
    sum(lineitem.l_extendedprice * (1 - lineitem.l_discount) * (1 + lineitem.l_tax)) AS sum_charge,
    avg(lineitem.l_quantity) AS avg_qty,
    avg(lineitem.l_extendedprice) AS avg_price,
    avg(lineitem.l_discount) AS avg_disc,
    count(*) AS count_order
   FROM lineitem
  WHERE lineitem.l_shipdate <= ('1998-12-01'::date - '112 days'::interval)
  GROUP BY lineitem.l_returnflag, lineitem.l_linestatus;

Q5: 6-way-join

Q5 is an aggregate over a snowflakey 6-way hashjoin that joins the fact table lineitem table against the orders and supplier tables, and subsequently against other dimension tables.

 SELECT nation.n_name,
    sum(lineitem.l_extendedprice * (1 - lineitem.l_discount)) AS revenue
   FROM customer, orders, lineitem, supplier, nation, region
  WHERE customer.c_custkey = orders.o_custkey
    AND lineitem.l_orderkey = orders.o_orderkey
    AND lineitem.l_suppkey = supplier.s_suppkey
    AND customer.c_nationkey = supplier.s_nationkey
    AND supplier.s_nationkey = nation.n_nationkey
    AND nation.n_regionkey = region.r_regionkey
    AND region.r_name = 'AMERICA'
    AND orders.o_orderdate >= '1994-01-01'
    AND orders.o_orderdate < ('1994-01-01'::date + '1 year'::interval)
  GROUP BY nation.n_name;


Raw result: Greenplum DB vs Deepgreen DB using Heap Tables


 Q   GPDB   Deepgreen   Speedup
 1   14.1      2.6       5.4
 2    2.1      0.7       2.8
 3    6.0      1.9       3.1
 4    5.4      1.8       3.0
 5    5.5      1.8       3.1
 6    3.7      0.8       4.6
 7   14.3     11.0       1.3
 8    5.8      1.6       3.6
 9   13.4      6.6       2.0
10    7.0      3.5       2.0
11    2.2      1.4       1.6
12    5.4      1.7       3.2
13    5.5      4.8       1.2
14    3.6      1.0       3.5
15    7.0      2.1       3.3
16    1.5      1.0       1.5
17   29.6     16.2       1.8
18   16.1      7.0       2.3
19    4.0      1.9       2.1
20    9.2      7.1       1.3
21   18.8      8.0       2.4
22    7.8      4.9       1.6 


Machine
Single Instance Google Cloud Intel Sandy Bridge.
CPU
12 vCPUs.
Memory
32GB.
Segments
4.
DLL Modifications
Changed NUMERIC type to DOUBLE PRECISION.
Optimizer
ORCA is OFF.