Hello all,
I did a tpc-ds testing on MonetDB, and when it ran some queries,
the error message was appeared:
GDK reported error.
MT_mremap: mremap(0x7ffdc0000000,2054553600,2465464320) failed
!OS: Cannot allocate memory
HEAPextend: failed to extend to 2465464320 for 44/4415.tail:
GDKmremap() failed
It seems that the memory has been ran out. But I have no idea what
is the cause of this error.
The version of Monetdb is 11.27.13, and OS is Ubunbtu-16.04 with
memory is 8G, and with 20G testing data.(It is worth mentioning, a
table named store_sales is 7.5G in the query.)
The query statement is:
with
frequent_ss_items as
(
select
substr(i_item_desc,1,30) itemdesc
,i_item_sk item_sk
,d_date solddate
,count(*) cnt
from
store_sales
,date_dim
,item
where
ss_sold_date_sk = d_date_sk
and ss_item_sk = i_item_sk
and d_year in (1999,1999+1,1999+2,1999+3)
group by
itemdesc
,i_item_sk
,d_date
having count(*) >4
),
max_store_sales as
(
select
max(csales) tpcds_cmax
from
(
select
c_customer_sk
,sum(ss_quantity*ss_sales_price) csales
from
store_sales
,customer
,date_dim
where
ss_customer_sk = c_customer_sk
and ss_sold_date_sk = d_date_sk
and d_year in (1999,1999+1,1999+2,1999+3)
group by c_customer_sk
) x
),
best_ss_customer as
(
select
c_customer_sk
,sum(ss_quantity*ss_sales_price) ssales
from
store_sales
,customer
where
ss_customer_sk = c_customer_sk
group by c_customer_sk
having
sum(ss_quantity*ss_sales_price) > (95/100.0) *
(
select * from
max_store_sales
)
)
select sum(sales) from
(
select
cs_quantity*cs_list_price sales
from
catalog_sales
,date_dim
where
d_year = 1999
and d_moy = 1
and ws_sold_date_sk = d_date_sk
and ws_item_sk in (select item_sk from
frequent_ss_items)
and ws_bill_customer_sk in (select c_customer_sk from
best_ss_customer)) y
limit 100;
Please give me some advice if you have any idea, either of the
direct question or my expression. Thanks a lot!
Regards,
Rancho