i built from actual master, but the sort looks to be done on cpu and selecting a table the sort is performed on GPU (judging by the response times) while selecting other tables it takes the old path and the sort is performed on CPU; is there a specific sintax for top_n queries?
yes even using the CPU only MPAD is faster than other in-memory solution i tried;
e.g. mapd CPU-only on a machine with a spec-int rate of 200 is 3-4 times faster than an oracle with in-memory option running on a machine with 520 spec-int rate using joins, grouping and filtering on a dataset of 120m records.
anyway now i tried with exasol 6.0 installed on the same machine of MAPD (200 specint-rate) with this query
select * from flights where distance <202 and arrdelay >9 order by arrdelay limit 100; (3m after filtering) and it takes
2.5 secs while mapd (cpu+gpu) 1.5, mapd (cpu only) 2 secs
selecting more records changing filtering parameters
select * from flights where distance <502 and arrdelay >9 order by arrdelay limit 100; (14m after filtering)
exasol 12 secs, mapd 21 secs (a lot of time spent on projection and some paging on mapd)
rewriting the query to force the final projection on top_n records only
select * from flights join (select flight_timestamp,flightnum,deptime from flights where distance <502 and arrdelay >9 order by arrdelay limit 100) as a on a.flight_timestamp=flights.flight_timestamp and a.flightnum=flights.flightnum and flights.deptime=a.deptime;
3.1 secs cpu+gpu and 3.7 secs cpu-only without paging.
on other scenarios (join,group by etc.) mapd is significantly faster than exasol