Hi,
I’m using MemSQL running a benchmark, ‘Star Schema Benchmark’ (SSB). I find three queries in SSB(2.2, 2.3, 3.3) can not be executed by MemSQL in single node( one leaf and one master aggregator in single node). It seems that the query runs into an endless loop. Here are some details:
Memory: 100GB +
CPU: 32 cores
Partitions: 16
SSB scale factor: 20
Memsql version: 6.7.
schema:
CREATE TABLE CUSTOMER ( C_CUSTKEY     INTEGER,
C_NAME        VARCHAR(25) NOT NULL,
C_ADDRESS     VARCHAR(40) NOT NULL,
C_CITY        VARCHAR(10) NOT NULL,
C_NATION      VARCHAR(15) NOT NULL,
C_REGION      VARCHAR(12) NOT NULL,
C_PHONE       VARCHAR(15) NOT NULL,
C_MKTSEGMENT  VARCHAR(10) NOT NULL);
CREATE TABLE DATES ( D_DATEKEY          INTEGER,
D_DATE             VARCHAR(18) NOT NULL,
D_DAYOFWEEK        VARCHAR(18) NOT NULL,
D_MONTH            VARCHAR(9) NOT NULL,
D_YEAR             INTEGER NOT NULL,
D_YEARMONTHNUM     INTEGER,
D_YEARMONTH        VARCHAR(7) NOT NULL,
D_DAYNUMINWEEK     INTEGER,
D_DAYNUMINMONTH    INTEGER,
D_DAYNUMINYEAR     INTEGER,
D_MONTHNUMINYEAR   INTEGER,
D_WEEKNUMINYEAR    INTEGER,
D_SELLINGSEASON    VARCHAR(12) NOT NULL,
D_LASTDAYINWEEKFL  INTEGER,
D_LASTDAYINMONTHFL INTEGER,
D_HOLIDAYFL        INTEGER,
D_WEEKDAYFL        INTEGER);
CREATE TABLE PART  ( P_PARTKEY     INTEGER,
P_NAME        VARCHAR(22) NOT NULL,
P_MFGR        VARCHAR(6) NOT NULL,
P_CATEGORY    VARCHAR(7) NOT NULL,
P_BRAND       VARCHAR(9) NOT NULL,
P_COLOR       VARCHAR(11) NOT NULL,
P_TYPE        VARCHAR(25) NOT NULL,
P_SIZE        INTEGER NOT NULL,
P_CONTAINER   VARCHAR(10) NOT NULL);
CREATE TABLE SUPPLIER ( S_SUPPKEY     INTEGER,
S_NAME        VARCHAR(25) NOT NULL,
S_ADDRESS     VARCHAR(25) NOT NULL,
S_CITY        VARCHAR(10) NOT NULL,
S_NATION      VARCHAR(15) NOT NULL,
S_REGION      VARCHAR(12) NOT NULL,
S_PHONE       VARCHAR(15) NOT NULL);
CREATE TABLE LINEORDER ( LO_ORDERKEY       BIGINT,
LO_LINENUMBER     BIGINT,
LO_CUSTKEY        INTEGER NOT NULL,
LO_PARTKEY        INTEGER NOT NULL,
LO_SUPPKEY        INTEGER NOT NULL,
LO_ORDERDATE      INTEGER NOT NULL,
LO_ORDERPRIOTITY  VARCHAR(15) NOT NULL,
LO_SHIPPRIOTITY   INTEGER,
LO_QUANTITY       BIGINT,
LO_EXTENDEDPRICE  BIGINT,
LO_ORDTOTALPRICE  BIGINT,
LO_DISCOUNT       BIGINT,
LO_REVENUE        BIGINT,
LO_SUPPLYCOST     BIGINT,
LO_TAX            BIGINT,
LO_COMMITDATE     INTEGER NOT NULL,
LO_SHIPMODE       VARCHAR(10) NOT NULL);
Load data:
load data infile ‘/dbgen/lineorder.tbl’ into table LINEORDER fields terminated by ‘|’ lines terminated by ‘|\n’;
…
Queries:
q2.2
SELECT SUM(LO_REVENUE), D_YEAR, P_BRAND
FROM LINEORDER, DATES, PART, SUPPLIER
WHERE  LO_ORDERDATE = D_DATEKEY
AND LO_PARTKEY = P_PARTKEY
AND LO_SUPPKEY = S_SUPPKEY
AND P_BRAND BETWEEN  ‘MFGR#2221’
AND ‘MFGR#2228’
AND S_REGION = ‘ASIA’
GROUP BY D_YEAR, P_BRAND
ORDER BY D_YEAR, P_BRAND;
q2.3
SELECT SUM(LO_REVENUE), D_YEAR, P_BRAND
FROM LINEORDER, DATES, PART, SUPPLIER
WHERE  LO_ORDERDATE = D_DATEKEY
AND LO_PARTKEY = P_PARTKEY
AND LO_SUPPKEY = S_SUPPKEY
AND P_BRAND= ‘MFGR#2239’
AND S_REGION = ‘EUROPE’
GROUP BY D_YEAR, P_BRAND
ORDER BY D_YEAR, P_BRAND;
q3.3
SELECT C_CITY, S_CITY, D_YEAR, SUM(LO_REVENUE) AS REVENUE
FROM CUSTOMER, LINEORDER, SUPPLIER, DATES
WHERE LO_CUSTKEY = C_CUSTKEY
AND LO_SUPPKEY = S_SUPPKEY
AND LO_ORDERDATE = D_DATEKEY
AND (C_CITY=‘UNITED KI1’ OR C_CITY=‘UNITED KI5’)
AND (S_CITY=‘UNITED KI1’ OR S_CITY=‘UNITED KI5’)
AND D_YEAR >= 1992
AND D_YEAR >= 1997
GROUP BY C_CITY, S_CITY, D_YEAR
ORDER BY D_YEAR ASC, REVENUE DESC;
Really need help here!
Thanks.