BigYAP: Exo-compilation meets UDI
VĂtor Santos Costa and David Vaz
2013
Abstract
The widespread availability of large data-sets poses both an
opportunity and a challenge to logic programming. A first approach is
to couple a relational database with logic programming, say, a Prolog
system with MySQL. While this approach does pay off in cases where the
data cannot reside in main memory, it is known to introduce
substantial overheads. Ideally, we would like the Prolog system to
deal with large data-sets in an efficient way both in terms of memory
and of processing time. Just In Time Indexing (JITI) was mainly
motivated by this challenge, and can work quite well in many
application.
Exo-compilation, designed to deal with large tables, is a next step
that achieves very interesting results, reducing the memory footprint
over two thirds. We show that combining exo-compilation with Just In
Time Indexing can have significant advantages both in terms of memory
usage and in terms of execution time.
An alternative path that is relevant for many applications is
User-Defined Indexing (UDI). This allows the use of specialized
indexing for specific applications, say the spatial indexing crucial
to any spatial system. The UDI sees indexing as pluggable modules, and
can naturally be combined with Exo-compilation. We do so by using UDI
with exo-data, and incorporating ideas from the UDI into
high-performance indexers for specific tasks.
Bibtex
@Article{santoscosta-tplp13,
author = {V. Santos Costa and D. Vaz},
title = {{BigYAP: Exo-compilation meets UDI}},
journal = {Journal of Theory and Practice of Logic Programming},
pages = {799--813},
volume = {13},
number = {4 \& 5},
year = {2013},
}
Download Paper
PDF file
Cambridge University Press