<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards an Analytics Query Engine</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nantia Makrynioti</string-name>
          <email>makriniotik@aueb.gr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vasilis Vassalos</string-name>
          <email>vassalos@aueb.gr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Athens University of Economics and Business</institution>
          ,
          <addr-line>Athens</addr-line>
          ,
          <country country="GR">Greece</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This vision paper presents new challenges and opportunities in the area of distributed data analytics, at the core of which are data mining and machine learning. At rst, we provide an overview of the current state of the art in the area and then analyse two aspects of data analytics systems, semantics and optimization. We argue that these aspects will emerge as important issues for the data management community in the next years and propose promising research directions for solving them.</p>
      </abstract>
      <kwd-group>
        <kwd>Data analytics</kwd>
        <kwd>Declarative machine learning</kwd>
        <kwd>Distributed processing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>With the rapid growth of world wide web (WWW) and the
development of social networks, the available amount of data
has exploded. This availability has encouraged many
companies and organizations in recent years to collect and
analyse data, in order to extract information and gain valuable
knowledge. At the same time hardware cost has decreased,
so storage and processing of big data is not prohibitive even
for smaller companies. Topic classi cation, sentiment
analysis, spam ltering, fraud and anomaly detection are only
a few analytics tasks that gained considerable popularity
over the past few years, along with more traditional
warehouse queries that gather statistics from data. Hence,
making the deployment of solutions for such tasks less tedious,
adds value to the services provided by these companies and
organizations, and encourages more people to enhance their
work using information from data.</p>
      <p>It is clear that the areas of data mining and machine
learning are at the core of data analysis tasks. However,
developing such algorithms needs not only expertise in software
engineering, but also a solid mathematical background in
order to interpret correctly and e ciently the mathematical
computations into a program. Even when experimenting
with black box libraries, evaluating various algorithms for a
task and tuning their parameters, in order to produce an
effective model, is a time-consuming process. Things become
even more complicated when we want to leverage
parallelization on clusters of independent computers for processing big
data. Details concerning load balancing, scheduling or fault
tolerance can be quite overwhelming even for an experienced
software engineer.</p>
      <p>
        Research in the data management domain recently started
tackling the above issues by developing systems for
largescale analytics that aim at providing higher-level primitives
for building data mining and machine learning algorithms,
as well as hiding low-level details of distributed execution.
MapReduce [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and Dryad [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] were the rst frameworks
that paved the way. However, these initial e orts su ered
from low usability, as they o ered expressive but at the same
time low-level languages to program data analysis tasks.
Soon the need for higher-level programming languages on
top of these frameworks became apparent. Systems, such
as Hive [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], Pig Latin [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], DryadLINQ [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] and Scope [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
o er higher-level languages that enable developers to write
part of their programs in declarative style. Then, these
programs are automatically translated into MapReduce jobs or
Dryad vertices that form a directed acyclic graph (DAG),
which is optimized for e cient distributed execution. This
paradigm is adopted by other systems, too. Stratosphere
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], Tupleware [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and MLbase [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] also aim at hiding
details of distributed execution, such as load balancing and
scheduling, in order to give the impression to the user that
she develops code for a single machine.
      </p>
      <p>Apart from the programming model, optimization
techniques is another important issue that these systems address.
Big data need fast and e cient solutions and as a
consequence frameworks should leverage any opportunity for code
optimization. Query rewriting, exploitation of data locality
and vectorization are concepts already known and widely
explored in databases and compilers. These techniques are
also applied in the aforementioned analytics systems along
with more recent ideas.</p>
      <p>In this paper, we study systems for large-scale data
analysis in the context of these two directions: semantics and
optimization techniques. We present an overview of the
immense development of systems for large scale data analysis
that made their appearance over the past few years and
propose research topics that we argue will attract the interest
of the data management community in the near future. The
rest of the paper is organized as follows. Section 2 describes
classes of systems for distributed data analytics and section
3 analyses open challenges concerning the semantics and the
optimization methods used in such systems. Finally, section
4 concludes the paper.</p>
    </sec>
    <sec id="sec-2">
      <title>CURRENT STATE OF THE ART</title>
      <p>Current work in the area of big data analytics focuses
on proposing programming models for data mining and
machine learning tasks, and developing optimizations that
result to e cient execution of users' programs on a distributed
execution engine. So, large-scale analytics frameworks can
be divided into two main categories: libraries of data
mining/machine learning algorithms or sets of primitives to
develop such algorithms.</p>
      <p>
        Libraries provide implementations of algorithms commonly
used in data analysis tasks, such as SVMs and K-means,
targeted to a speci c distributed execution platform. The user
is able to use these algorithms in her code by calling them
as functions, in order to load data from les or databases,
transform data or use machine learning algorithms to
analyse them. The programming paradigm is the same as that
of a developer writing code for a single machine and
calling functions from a third-party library. The di erence is
that this code is then automatically compiled by the
system in order to be executed on a distributed platform. Such
libraries are available for all popular distributed execution
engines. Apache Mahout [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] was initially implemented on
Hadoop [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and is gradually extended to Spark [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. A
similar example is MLlib [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], a scalable machine learning library
on top of Spark, whereas MADlib [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] is a library of
SQLbased machine learning and data analysis algorithms, which
run on database engines. They include algorithms for
classi cation, clustering, collaborative ltering, dimensionality
reduction and other useful preprocessing tasks.
      </p>
      <p>Systems that belong to the second category provide a
set of primitives to the users, in order to simplify the
development of distributed data analysis algorithms. These
primitives can be also combined with UDFs (User De ned
Functions) in many cases to allow for custom code in data
analysis tasks. In this class of systems, algorithms are not
ready to call, but the user can use these primitives to develop
machine learning or data mining algorithms that run on a
speci c distributed execution engine. The provided
primitives hide low-level details concerning distribution, such as
load balancing and fault tolerance, for which the system
provides solutions. Declarative style combined with
imperative/procedural programming, is popular in this kind of
systems, gaining ground for the application of the DBMS
paradigm in data analysis platforms.</p>
      <p>
        This trend is already evident in existing platforms, such
as Stratosphere, Jaql [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and Pig Latin that provide a
hybrid of procedural and declarative programming, as well as
DryadLINQ, Tupleware and Spark that attempt to
incorporate relational and other operators to a host language.
Stratosphere provides three programming models organized
as layers of a larger stack that comes down to an execution
engine and a data storage system. Sopremo is the top layer
of the stack and trades expressiveness for declarativity. It
includes a considerable number of high-level operators, such
as relational or domain-speci c operators which o er more
advanced functionality (e.g. duplicate detection, named
entity recognition). Each Sopremo plan is translated to the
programming model below Sopremo, PACT, and is nally
executed on Nephele, Stratosphere's execution engine.
Similar to Stratosphere's Sopremo layer, Jaql and Pig Latin
dene each work ow as a sequence of steps, but with each step
performing a high-level transformation, such as SQL and
ETL operations. Users are able to integrate custom code in
their data analysis tasks by writing their own UDFs either
in external languages, such as Java and Python, or by
using operators of the system. Eventually, Jaql and Pig Latin
scripts are automatically compiled to MapReduce jobs. A
variant of Pig Latin, called MyriaL, extends its
programming model with looping constructs and is used in Myria
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], a big data management service. Iterative processes are
also a limitation for Jaql and Sopremo, as the developer is
not able to de ne in these programming models that a given
work ow will be repeated for a number of iterations or as
long a condition holds.
      </p>
      <p>Moving on to the incorporation of relational operators
to a high-level language, we nd DryadLINQ that
transforms LINQ programs into distributed processes running on
an execution engine called Dryad. The LINQ model
incorporates constructs for manipulating data items into a host
language, such as C# and other .NET languages.
Iteration is expressed using loop constructs of the host language.
Spark exposes a similar functional programming interface
implemented in Scala, but provides greater support for
iterative processes and expression of shared state among
iterations. Finally, Tupleware follows the same approach as
Stratosphere's PACT model by proposing operators that are
second-order functions and take as argument a user de ned
rst-order function. However, Tupleware's set of operators
is more extended than the one provided by PACT. These
operators are used to de ne work ows inside a host language.
Then, the system transforms user's code into a distributed
program, which is deployed and executed on a cluster of
machines.</p>
      <p>
        On the other hand, MLI API [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] and SystemML [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] that
run on Spark and MapReduce respectively, aim to imitate
the style of statistical computing languages, such as R and
MATLAB, which are very popular among machine learning
researchers and help them build software prototypes quickly.
As a result, MLI includes interfaces for three main concepts,
Optimizers, Algorithms and Models, as well as APIs for two
data structures MLTable and LocalMatrix, which supports
linear algebra operations. In SystemML, programs are
sequences of statements written in DML, a language which
includes constructs for input/output, control structures and
assignments, as seen in R, on matrices or scalars.
Nevertheless, more advanced features of R, such as objects and lists,
are not currently supported by DML.
      </p>
      <p>Finally, MLbase provides a declarative language above a
layer of a library of algorithms, by which the user is able to
de ne the type of task she wants to execute, e.g. classi
cation, and the data to be used. Then the system tests various
machine learning algorithms from its library and parameter
values on the data provided, and determines an e ective
combination based on quality and time performance. Apart
from the declarative language, MLbase also o ers high-level
primitives, such as gradient and stohastic gradient descent,
that make development of distributed machine learning
algorithms easier for researchers.</p>
      <p>Despite the abundance of available systems and the
variety of approaches that these follow, programmers are still
expected to write a considerable amount of code in most
of these platforms. The idea of providing greater degree
of declarativity by extending the set of operators that data
analysis systems support, and minimize any glue code needed
between operation calls would make the development and
maintenance of programs much easier. The description of
an algebra that would form the basis of these operators and
model their semantics is a primary goal at this direction.
We explore this open problem in the following section, as
well as the challenges that are presented by optimizing the
execution of tasks written in this set of operators.</p>
    </sec>
    <sec id="sec-3">
      <title>OPEN CHALLENGES</title>
    </sec>
    <sec id="sec-4">
      <title>Data Analytics Semantics</title>
      <p>For some time now, the data management community
compares the current situation in data analytics with the
beginning of database systems. Currently, data mining and
machine learning tasks in distributed platforms are done in
ad hoc ways and developers have to use various systems,
each targeted to a speci c class of tasks. Data models and
operators are di erent among systems, each exposing its own
semantics, and there is no notion of an algebra that could
form a basis for data analytics languages. Figure 1 displays
the main categories of operators included in the current
systems.</p>
      <p>While relational queries are easily de ned with the
aforementioned operators, common concepts in machine
learning, such as models and optimization algorithms, are not
represented in a declarative way in the systems described
above and their implementation still involves a lot of
custom code. Hence, apart from the distributed execution, the
development of machine learning algorithms is not
simplied compared to more traditional languages such as R and
MATLAB.</p>
      <p>
        In an attempt to present declarative solutions for machine
learning tasks, recent work [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] proposes Datalog as a suitable
declarative foundation for analytics systems. As each
system is usually targeted to a speci c ML class of tasks (e.g.
graph analytics), Datalog can serve as a logical layer where
all these di erent programming models will be translated.
The purpose is two-folded. First, to avoid developing
optimizations for each new system and second to separate the
user's program from its logical interpretation. The second
argument is very important as it prevents changes in
logical and physical layer from a ecting user's code, whereas
improvements in these layers can increase the e ciency of
execution overall. An extension of Datalog could also cover
more requirements of data analysis tasks and be exposed
to the users as a programmable language. The distinction
between the user's program and the logical layer is also
supported by Hyracks [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], which serves as a parallel-platform
for compiling higher-level declarative data-processing
languages, such as Pig Latin and Hive.
      </p>
      <p>
        We also consider the sets of operations provided by MLI
API, MLbase and Spark ML [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] good attempts, as except
from relational operators, they are also closer to the
semantics of machine learning area by providing declarative
operators for some frequent components of machine learning
algorithms, such as linear algebra operations and gradient
descent. The Spark ML package is also built around the key
concepts of learning and data transformation algorithms, in
order to standardize multiple APIs for machine learning on
top of a data structure called DataFrame. Thus, a key
ingredient in the development of optimizable, massively
scalable analytics is the creation of an analytics query engine
supporting a language with clear semantics that
incorporates both relational operators and high-level operators for
common components of machine learning algorithms, e.g.
optimization functions and preprocessing tasks 1. The
purpose of this language is to model various data analysis tasks
as plans consisting solely or mostly of operation calls.
Another important aspect of an e cient analytics query engine
is the implementation of optimizations, as described in the
next section.
3.2
      </p>
    </sec>
    <sec id="sec-5">
      <title>Optimizations in Data Analytics Systems</title>
      <p>The optimization techniques adopted by large-scale
analytics systems are mainly borrowed from two areas: databases
and compilers.</p>
      <p>As in database systems, query rewriting is also used in
data analysis systems, either depending on heuristics or on
a cost model. Heuristics are rules that are red based on
speci c properties, but it is not examined whether these rules
produce a faster plan in any case. DryadLINQ is currently
applying heuristics in query rewriting, although in the
future the group plans to design and implement a cost model
for query optimization similar to the one used in DBMS.
Stratosphere and Jaql have already moved on to cost-based
optimizations, handling also di culties that appear due to
the large amount of user-de ned code. Given that many
operators of data analysis systems take as input user de ned
rst-order functions, semantics of these operators cannot be
known. This makes a big di erence from traditional query
optimizations. Static code analysis is one way to tackle
unknown semantics. Through code analysis, it is possible to
determine which data are read and written from each
operator and separate them into read and write sets. Applying
compiler optimizations to UDFs is also useful. Function and
variable inlining, as well as SIMD vectorization are the most
popular compiler optimization techniques we see in these
systems. Jaql and Tupleware already exploit these ideas.</p>
      <p>
        Concerning optimization in the context of the analytics
model proposed above, we describe crucial issues that come
into the picture. The rst decision to be made regards the
1Part of these elements are also covered by the PMML
format [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], a data exchange standard for sharing predictive
models produced by data mining and machine learning
algorithms.
de nition of the form of the logical plan for the programs
expressed with this model. Another important concern is
the computation of appropriate cost metrics for evaluating
these plans. Traditional cost models used in query
optimization are not designed to cover every dimension of query
performance, such as execution time. Machine learning has
already made its way into prediction of execution latency
and resource usage [
        <xref ref-type="bibr" rid="ref18 ref4">4, 18</xref>
        ] for queries running on DBMSs
with relevant papers proposing the training of models on
previous query instances, whose features are based on
cardinalities estimated by the optimizer, the count of occurrences
for each operator in the query plan and other statistics. The
application of similar machine learning techniques for
predicting performance metrics of data analysis programs is an
interesting direction to pursue, which becomes even more
challenging if we consider concurrent workloads [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Finally,
given the sheer size of data that are analysed nowadays, the
proposed optimization techniques should address challenges
that arise in a distributed environment [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] and e ciently
translate these logical plans to programs that would run in
a distributed execution engine, such as Spark.
      </p>
    </sec>
    <sec id="sec-6">
      <title>CONCLUSION</title>
      <p>In this paper, we presented open challenges in the research
area of big data analytics and we speci cally focused on the
aspects of semantics and optimization techniques. Given
the variety of systems that are used for data analysis, we
believe that the consolidation of semantics in an appropriate
algebra and the evolvement of optimization methods applied
in an analytics query engine are of great importance and will
attract even more interest in the next few years.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] Apache hadoop</article-title>
          . https://hadoop.apache.org/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[2] Apache mahout</article-title>
          . http://mahout.apache.org/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <article-title>[3] Spark ml</article-title>
          . http://spark.apache.org/docs/latest/ml-guide.html.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Akdere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Cetintemel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Riondato</surname>
          </string-name>
          , E. Upfal, and
          <string-name>
            <given-names>S. B.</given-names>
            <surname>Zdonik</surname>
          </string-name>
          .
          <article-title>Learning-based query performance modeling and prediction</article-title>
          .
          <source>In Proceedings of the 2012 IEEE 28th International Conference on Data Engineering</source>
          , ICDE '
          <volume>12</volume>
          , pages
          <fpage>390</fpage>
          {
          <fpage>401</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Alexandrov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ewen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-C.</given-names>
            <surname>Freytag</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Hueske</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Heise</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Kao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Leich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Leser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Markl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Peters</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Rheinlander,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Sax</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Schelter</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Hoger, K. Tzoumas</article-title>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Warneke</surname>
          </string-name>
          .
          <article-title>The stratosphere platform for big data analytics</article-title>
          .
          <source>The VLDB Journal</source>
          ,
          <volume>23</volume>
          (
          <issue>6</issue>
          ):
          <volume>939</volume>
          {
          <fpage>964</fpage>
          ,
          <string-name>
            <surname>Dec</surname>
          </string-name>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Beyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ercegovac</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Gemulla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Balmin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Eltabakh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kanne</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>O zcan, and</article-title>
          <string-name>
            <given-names>E. J.</given-names>
            <surname>Shekita</surname>
          </string-name>
          .
          <article-title>Jaql: A scripting language for large scale semistructured data analysis</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>4</volume>
          (
          <issue>12</issue>
          ):
          <volume>1272</volume>
          {
          <fpage>1283</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>V.</given-names>
            <surname>Borkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Carey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Grover</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Onose</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Vernica</surname>
          </string-name>
          .
          <article-title>Hyracks: A exible and extensible foundation for data-intensive computing</article-title>
          .
          <source>In Proceedings of the 2011 IEEE 27th International Conference on Data Engineering</source>
          , ICDE '
          <volume>11</volume>
          , pages
          <fpage>1151</fpage>
          {
          <fpage>1162</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. R.</given-names>
            <surname>Borkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Carey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Rosen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Polyzotis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Condie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Weimer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Ramakrishnan</surname>
          </string-name>
          .
          <article-title>Scaling datalog for machine learning on big data</article-title>
          .
          <source>CoRR, abs/1203.0160</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>R.</given-names>
            <surname>Chaiken</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Jenkins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.-A.</given-names>
            <surname>Larson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Ramsey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Shakib</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Weaver</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhou</surname>
          </string-name>
          . Scope:
          <article-title>Easy and e cient parallel processing of massive data sets</article-title>
          .
          <source>Proc. VLDB Endow</source>
          .,
          <volume>1</volume>
          (
          <issue>2</issue>
          ):
          <volume>1265</volume>
          {
          <fpage>1276</fpage>
          ,
          <string-name>
            <surname>Aug</surname>
          </string-name>
          .
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Dolan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dunlap</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Hellerstein</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Welton</surname>
          </string-name>
          .
          <article-title>Mad skills: New analysis practices for big data</article-title>
          .
          <source>Proc. VLDB Endow</source>
          .,
          <volume>2</volume>
          (
          <issue>2</issue>
          ):
          <volume>1481</volume>
          {
          <fpage>1492</fpage>
          ,
          <string-name>
            <surname>Aug</surname>
          </string-name>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Crotty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Galakatos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Dursun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kraska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Cetintemel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. B.</given-names>
            <surname>Zdonik</surname>
          </string-name>
          . Tupleware:
          <article-title>Rede ning modern analytics</article-title>
          .
          <source>CoRR, abs/1406.6667</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>J.</given-names>
            <surname>Dean</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghemawat</surname>
          </string-name>
          .
          <article-title>Mapreduce: simpli ed data processing on large clusters</article-title>
          .
          <source>In OSDI'04: Proceedings of the 6th Conference on Symposium on Operating Systems Design and Implementation</source>
          .
          <source>USENIX Association</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ghoting</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Krishnamurthy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Pednault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Reinwald</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Sindhwani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tatikonda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Tian</surname>
          </string-name>
          , and
          <string-name>
            <surname>S. Vaithyanathan. Systemml:</surname>
          </string-name>
          <article-title>Declarative machine learning on mapreduce</article-title>
          .
          <source>In Proceedings of the 2011 IEEE 27th International Conference on Data Engineering</source>
          , ICDE '
          <volume>11</volume>
          , pages
          <fpage>231</fpage>
          {
          <fpage>242</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Guazzelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zeller</surname>
          </string-name>
          , W.-C. Lin, and
          <string-name>
            <given-names>G.</given-names>
            <surname>Williams. PMML</surname>
          </string-name>
          :
          <article-title>An open standard for sharing models</article-title>
          .
          <source>The R Journal</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <volume>60</volume>
          {
          <fpage>65</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>D.</given-names>
            <surname>Halperin</surname>
          </string-name>
          , V. Teixeira de Almeida,
          <string-name>
            <given-names>L. L.</given-names>
            <surname>Choo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Koutris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Moritz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ortiz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ruamviboonsuk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Whitaker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Balazinska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Howe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Suciu</surname>
          </string-name>
          .
          <article-title>Demonstration of the myria big data management service</article-title>
          .
          <source>In Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data, SIGMOD '14</source>
          , pages
          <fpage>881</fpage>
          {
          <fpage>884</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Isard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Budiu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Birrell</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Fetterly</surname>
          </string-name>
          . Dryad:
          <article-title>Distributed data-parallel programs from sequential building blocks</article-title>
          .
          <source>In Proceedings of the 2Nd ACM SIGOPS/EuroSys European Conference on Computer Systems</source>
          <year>2007</year>
          , EuroSys '
          <volume>07</volume>
          , pages
          <fpage>59</fpage>
          {
          <fpage>72</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kraska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Talwalkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Duchi</surname>
          </string-name>
          , R. Gri th, M. J.
          <string-name>
            <surname>Franklin</surname>
            , and
            <given-names>M. I.</given-names>
          </string-name>
          <string-name>
            <surname>Jordan</surname>
          </string-name>
          .
          <article-title>Mlbase: A distributed machine-learning system</article-title>
          .
          <source>In CIDR. www.cidrdb.org</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. C.</surname>
          </string-name>
          <article-title>Konig, V. Narasayya, and</article-title>
          <string-name>
            <given-names>S.</given-names>
            <surname>Chaudhuri</surname>
          </string-name>
          .
          <article-title>Robust estimation of resource consumption for sql queries using statistical techniques</article-title>
          .
          <source>In 38th International Conference on Very Large Databases. Very Large Data Bases Endowment Inc</source>
          .,
          <year>August 2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>X.</given-names>
            <surname>Meng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. K.</given-names>
            <surname>Bradley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Yavuz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. R.</given-names>
            <surname>Sparks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Venkataraman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Freeman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. B.</given-names>
            <surname>Tsai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Amde</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Owen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Xin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Xin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Franklin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Zadeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zaharia</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Talwalkar</surname>
          </string-name>
          . Mllib:
          <article-title>Machine learning in apache spark</article-title>
          .
          <source>CoRR, abs/1505.06807</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>C.</given-names>
            <surname>Olston</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Reed</surname>
          </string-name>
          , U. Srivastava,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Tomkins</surname>
          </string-name>
          .
          <article-title>Pig latin: A not-so-foreign language for data processing</article-title>
          .
          <source>In Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data, SIGMOD '08</source>
          , pages
          <fpage>1099</fpage>
          {
          <fpage>1110</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M. T.</given-names>
            <surname>Ozsu</surname>
          </string-name>
          .
          <article-title>Principles of Distributed Database Systems</article-title>
          . Prentice Hall Press,
          <source>3rd edition</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>E. R.</given-names>
            <surname>Sparks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Talwalkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kottalam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Pan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Gonzalez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Franklin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. I.</given-names>
            <surname>Jordan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kraska</surname>
          </string-name>
          . Mli:
          <article-title>An api for distributed machine learning</article-title>
          .
          <source>CoRR, abs/1310.5426</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>A.</given-names>
            <surname>Thusoo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Sarma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Jain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Shao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Chakka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Anthony</surname>
          </string-name>
          , H. Liu,
          <string-name>
            <given-names>P.</given-names>
            <surname>Wycko</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Murthy</surname>
          </string-name>
          .
          <article-title>Hive: A warehousing solution over a map-reduce framework</article-title>
          .
          <source>Proc. VLDB Endow</source>
          .,
          <volume>2</volume>
          (
          <issue>2</issue>
          ):
          <volume>1626</volume>
          {
          <fpage>1629</fpage>
          ,
          <string-name>
            <surname>Aug</surname>
          </string-name>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>W.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chi</surname>
          </string-name>
          ,
          <string-name>
            <surname>H.</surname>
          </string-name>
          <article-title>Hac gumus, and</article-title>
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Naughton</surname>
          </string-name>
          .
          <article-title>Towards predicting query execution time for concurrent and dynamic database workloads</article-title>
          .
          <source>Proc. VLDB Endow</source>
          .,
          <volume>6</volume>
          (
          <issue>10</issue>
          ):
          <volume>925</volume>
          {
          <fpage>936</fpage>
          ,
          <string-name>
            <surname>Aug</surname>
          </string-name>
          .
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Isard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Fetterly</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Budiu</surname>
          </string-name>
          , U. Erlingsson,
          <string-name>
            <given-names>P. K.</given-names>
            <surname>Gunda</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Currey</surname>
          </string-name>
          .
          <article-title>Dryadlinq: A system for general-purpose distributed data-parallel computing using a high-level language</article-title>
          .
          <source>In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation</source>
          , OSDI'
          <volume>08</volume>
          , pages
          <fpage>1</fpage>
          {
          <fpage>14</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>M.</given-names>
            <surname>Zaharia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chowdhury</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Franklin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Shenker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I.</given-names>
            <surname>Stoica</surname>
          </string-name>
          . Spark:
          <article-title>Cluster computing with working sets</article-title>
          .
          <source>In Proceedings of the 2Nd USENIX Conference on Hot Topics in Cloud Computing, HotCloud'10</source>
          , pages
          <fpage>10</fpage>
          {
          <fpage>10</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>