<!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>An Architecture for Approximate Real-Time Query Optimization and Processing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Anna Yarygina</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Boris Novikov</string-name>
          <email>b.novikov@spbu.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Proceedings of the Ninth Spring Researcher's Colloquium on Database and Information Systems</institution>
          ,
          <addr-line>Kazan, Russia, 2013</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Saint-Petersburg University anya</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>High-level declarative scripting languages are considered to be an effective tool for specification and execution of complex analytical data processing scenarios as they can hide the complexity of underlying heterogeneous processing environment. A growing demand to process huge amounts of data under real-time requirements as well as advanced similaritybased models raises the need in approximate processing. We discuss architecture of an extendable system for optimization and execution of approximate complex queries formulated in similarity-based declarative query language.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Complex querying scenarios appear in various data
integration and processing tasks. Several different
information resources, such as databases, semi-structured data,
streams, and uncertain data might be needed in the same
data processing workflow. The systems might be
heterogeneous in terms of data model, dynamics,
trustfulness, and content type, as well as querying or retrieval
paradigms. The need to combine data extracted from
heterogeneous resources potentially based on diverse
querying paradigms appears in several application contexts
and application areas, including advanced search,
personalization, and analytical processing.</p>
      <p>Specifications of complex analytical scenarios can be
effectively expressed in high-level declarative scripting
languages hiding the complexity of underlying
processing environment.</p>
      <p>The systems integrating these ideas usually exploit
intermediate algebraic languages which in addition to
common features of query languages, such as filtering,
settheoretic operations, and joins incorporate their fuzzy
extensions and complex processing techniques such as
NLP, mining, and analytics.
Any complex data workflow processing based on
similarity or other uncertain querying model tends to be
com</p>
      <p>This work was partially supported by HP Labs under contract
No. CW317234.
putationally heavy. The expectation is that a declarative
algebraic approach to query evaluation over diverse set
of information resources enabling query optimization is
capable to address this performance issue.</p>
      <p>Query optimization techniques for such context differ
from relational due to significant differences in algebraic
properties and cost models for extended similarity-based
operations.</p>
      <p>The uncertain nature of the queries implies a need in
approximate query evaluation because in such context
exact query evaluation sometimes is not reasonable or
meaningful.</p>
      <p>The approximate algorithms implementing operations
of the algebra in combination with traditional exact query
evaluation can be applied to reduce the query
evaluation time. Some algorithms may produce different
quality of the output depending on the amount of resources
allocated for execution. This leads to the analysis of
speed/quality trade-offs in the context of query
optimization and evaluation.</p>
      <p>The problem of traditional query optimization,
namely “find an execution plan with the minimal cost” is
replaced with either “find the best plan yielding at least
specified quality”, or “provide the best possible quality
for at most given amount of resources”.</p>
      <p>We have to maximize the quality having the limited
resources for query evaluation. Thus, compared to
traditional query optimization the system incorporates the
resource allocation step in the whole query evaluation
pipeline.</p>
      <p>Our primary objective is to build an architecture
which is able to process complex data processing
workflows in real-time, that is ensure predictable response
time controlling approximate evaluation.
1.2</p>
    </sec>
    <sec id="sec-2">
      <title>Querying Examples</title>
      <p>The example from model implementation is based on
data from OpinRank dataset with judgments. The dataset
contains hotels from 10 cities over the world. For each
hotel its name, address, and scores on cleanliness, room,
service, etc. are available.</p>
      <p>
        Let us consider a query: find best 10 hotels in London
according to service and cleanliness. The query is
formulated in terms of high-level declarative query language
similar to one proposed in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and then is translated into
expression in terms of algebraic operations (query
evaluation plan) shown in figure 1(a).
      </p>
      <p>In this work we further do not distinguish operation
and algorithm its implementing because most modules
in the architecture process algorithms rather than logic
operations.</p>
      <p>The primary operations retrieve hotels with scores
from primary sources based on provided score types.
Subsequent top operations are applied to reduce the
number of objects for further analysis. The next price filter
retrieves the price for double room for specific date. The
city filter keeps only hotels in London. The fusion
operation combines scores for hotels based on provided rule.
Finally, top operation is applied to retrieve only 10 best
hotels according to new input scores.</p>
      <p>(a) Example query evaluation plan
(b) Alternative query evaluation plan
(c) Approximate query evaluation plan</p>
      <p>One may see that there are several opportunities for
optimization. For example, we can swap unary
operations. The system also supports implementation of
fusion operation which simultaneously retrieves best
objects and integrated implementation of primary operation
and city filter.</p>
      <p>Figure 1(b) demonstrates how the query evaluation
plan can be transformed (not necessarily making it
optimal).</p>
      <p>The quality of the query evaluation result depends on
the amount of time specified by the user.</p>
      <p>
        Thus, as soon as the query optimization step produces
a reasonably good query evaluation plan the system has
to distribute fixed amount of resources specified by the
user. Figure 1(c) shows some query evaluation plan
with operations admitting approximate implementation
marked by dashed borders. Approximate algorithms for
them and corresponding cost models are described in
details in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
1.3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Analytics Example</title>
      <p>Let us suppose that we analyze social sources (such as
ratings from retailer web site and customer tweets) to
find out how customer satisfaction depends on price, for
each product group. Thus, we probably formulate the
following query: count average values of ratings from
retailer and from sentiments, grouped by price range, for
each product group. The corresponding query evaluation
plan is shown in figure 2 with the following description
of nodes:
1: group by PriceRange</p>
      <p>nest (ProdGroup, avg(Rating),avg(Sent))
2; group join on ProductModel
3: group join on ProductModel
4: get database product table
5: get retailer ratings for products
6: get sentiments from tweets for products
(a) Possible resource allocation (b) Another resource allocation</p>
      <p>Let us as well suppose that external primary sources
produce results as output streams of objects with
different speed: 500 objects per second for retailer ratings
and 300 objects per second for sentiments extracted from
tweets. As the data sources are actually (potentially
unlimited) streams, an exact evaluation is impossible. We
assume that an approximate result is expected in at most
230 ms. This implies an ultimate need in approximate
evaluation which restricts the quantity of data items
processed by each of operations.</p>
      <p>The limited amount of resources can be distributed
among operations in the plan in different ways shown
in figures 2(a), 2(b). One may see that the resource
allocation strategy shown in figure 2(b) is preferable
because we do not retrieve excessive tweets when have not
enough retailer ratings.
We propose an architecture for an extendable system
for optimization and execution of approximate complex
queries formulated in similarity-based declarative query
language. Based on the proposed architecture we
demonstrate the integration of techniques proposed in previous
research and connect together several parts:
similaritybased algebra, extended cost/quality models, and
resource allocation techniques. We provide the detailed
discussion of several aspects of the architecture focusing
on its extensibility.</p>
      <p>The rest of the paper is structured as follows.
Section 2 describes the architecture including underlying
data model, intermediate algebraic query language, and
main modules. The architecture details on specific
modules are followed by a detailed discussion of classes of
operations from the system extensibility point of view in
section 3. Section 4 outlines the related work.
2</p>
      <sec id="sec-3-1">
        <title>The Architecture</title>
        <p>This section outlines high-level architecture of a
middleware query processing system acting on top of existing
query evaluation and data processing systems, and below
some user interface for query formulation and results
exploration.</p>
        <p>The system supports different types of data sources
and applies the uniform representation of different types
of data to enable their integration in one query. This
results in a compromise between uniform integration of
different types of sources and processing units and
necessity to control the query correctness and validity at
the query formulation step.
2.1</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>The Language and Data Model</title>
      <p>
        The central concept of our model is a q-set defined in
[
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] as a tripe (q,B,S) where
q is a query (no matter how represented),
      </p>
      <sec id="sec-4-1">
        <title>B is a base set of objects,</title>
      </sec>
      <sec id="sec-4-2">
        <title>S is a scoring function for objects in B. Actually q-sets are represented as sets of objects with scores indicating relevance of object to the underlying query.</title>
        <p>
          The algebra on q-sets is characterized in [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] and
includes extended relational operations taking q-sets as
input arguments and return q-sets as results as well.
Operations can be configured with different parameters, for
example top k operation has parameter representing the
number of objects to be returned; selection filter may
have parameter with selection predicate; and primary
operation extracting q-set from database is configured
with a SQL query.
2.2
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Query Optimization and Execution</title>
      <p>Query processing engine contains modules shown in
figure 3: parser, optimizer which interacts with
transformations and cost models, resource allocation module which
is based on quality models, and executor.
The parser translates a query into the initial query
evaluation plan that is the query tree with algebraic operations.</p>
      <p>
        The initial query is supposed to be formulated in some
high-level language: extension of SQL similar to one
proposed in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] or some graphic one. In this work we
focus on intermediate level and essential part of query
evaluation is processed on the algebraic level. In our model
implementation the initial query is represented by XML
tree with nodes and attributes describing operations and
parameters.
2.2.2
      </p>
    </sec>
    <sec id="sec-6">
      <title>Optimization</title>
      <p>The optimizer in query evaluation system in the
described environment should be adaptive and distensible.</p>
      <p>Similar to the traditional optimization of relational
queries the optimizer has to analyze the algebraic
properties of underlying operations. The associativity and
distributive properties enable the rewriter to form the space
of query plans based on the transformations of the query
tree.</p>
      <p>We have to support algebra extensibility and develop
optimizer tunable to new specific operations which may
possess new algebraic equivalences and expand the space
of possible query plans.</p>
      <p>The optimizer is based on extensible and tunable set
of possible transformations of the query representing
the space of query evaluation plans. It is important to
note that in the proposed architecture the set of
transformations includes all possible reorganizations of the
query evaluation (sub) plan: based on algebraic
equivalencies or different implementations of algebraic
operations. This fact enables an easy way to introduce new
operations, algorithms, and corresponding transformations.</p>
      <p>In comparison with traditional relational data bases
the space of transformations is not as homogeneous as in
extended algebra: for example, non-associative joins and
complex transformations with top k operation are there.</p>
      <p>A special attention on the implementation of
transformations in the system is needed because of its
extensibility: the space of transformations should not be
deeply coded in the optimizer, thus uniform interfaces
are needed to make transformations easily pluggable in.</p>
      <p>Any high-quality optimizer should be cost-based,
hence cost models for all operations should be provided,
including user-defined extensions. In order to be able
to select a good query evaluation plan the optimizer for
complex query processing should be constructed based
on cost models of operations in the queries. The
architecture should support an integration of new cost
models for operations and tuning of existing ones. The cost
models are supposed to be tunable and adaptive, that is,
be able to use data statistics when available.</p>
      <p>In the model implementation an optimizer is based on
limited descent by plan cost.</p>
      <p>
        Further the adaptive query optimization technique
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] should be integrated into the system, as it
compensate for the lack of statistics inherent for heterogeneous
environment, especially with user-defined operations.
2.2.3
      </p>
    </sec>
    <sec id="sec-7">
      <title>Resource Allocation</title>
      <p>The architecture supports the class of approximate
algorithms with the following properties:
with controllable quality (allocated resources define
the quality of result);
with fixable parameters (the fixed amount of
allocated resources is transferred into fixed operation
call parameters).</p>
      <p>
        The restricted class of supported approximate
algorithms contains quite large number of specific
algorithms: for example, an approximate algorithm for
aggregation operation proposed in [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], approximate join
algorithms discussed in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], or any algorithm based on
sampling.
      </p>
      <p>
        Approximate algorithms with fixable parameters
should be distinguished from any-time techniques when
user is able to stop operation evaluation based on
estimations of already achieved result quality, for example
proposed in [
        <xref ref-type="bibr" rid="ref14 ref4">4, 14</xref>
        ].
      </p>
      <p>Approximate pre-configurable algorithms are more
restrictive as the estimation of result quality should be
done in advance. On the other hand, this property is less
restrictive as there is no need to support correct
approximate result of operation evaluation at any time of
execution.</p>
      <p>
        As the focus of this work is on the approximate query
evaluation the cost models are extended with the
notion of quality and form the quality models for algebraic
operations. Few examples of such extended cost
models are presented in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Quality models describe the
speed/quality trade-off for approximate algorithms that
is, the models show how the result quality depends on
the amount of resources allocated for operation
processing. In model implementation only simple non-adaptable
cost and quality models are implemented.
      </p>
      <p>
        Although the semantics of data quality is
complex [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] and may be considered in several dimensions,
we assume that the quality of a data set is estimated with
a single numeric value. For example, the quality of an
average value might be based on its accuracy, and a larger
size of sample is more expensive but, in general, provides
better quality. In other case we can assume that the
result quality of approximate aggregation operation based
on sampling can be estimated as relative sample size.
      </p>
      <p>It is important to note that cost/quality models are
based on relative operation quality. Let us consider unary
operation which receives input data with absolute
quality ain. Even the best possible implementation of
operation may reduce the quality of the result data aout.
Thus, the quality of operation equals aaoiunt . If the
operation receives the unlimited resources for the fixed input
data it produces data with the best feasible absolute
quality aout(1): If it receives amount of resources t; which
is less than needed for the best quality, the absolute
quality of its output is aout(t); thus, the relative quality of
operation is aaoouutt((1t)) :</p>
      <p>Another concept essential for our extended
cost/quality models is a resource. Different types of resources
may be used to restrict the query execution, some of
them, like CPU time, CPU cycles, and I/O, depend
mostly on the complexity of the plan, while others like
memory size or elapsed time may also depend on
available configuration (e.g. number of processors allocated
for the query).To treat all kinds of resources uniformly,
we consider configuration to be a part of the plan.</p>
      <p>In this work the amount of resources is expressed with
single numeric value. This value may represent either
the most important type of resources, e.g. elapsed time
for real-time requirements, or a combination of different
resource types.</p>
      <p>In order to construct the query evaluation plan which
operates in the limited amount of time and provides
the best possible quality the resource allocation
module should interact with the optimizer. The optimization
problem for approximate query evaluation seems to be
much harder than commonly known exact query
optimization: in addition to selection of one of equivalent
execution plans, the optimizer has to distribute available
processing resources between operations of the query
execution plan.</p>
      <p>
        Model implementation uses an approximate solution
described and analyzed in [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]: the limited amount of
resources is allocated to the best execution plan for
unlimited resource yielding the best possible quality. The
rationale is separation of resource allocator from an
optimizer, enabling the use of any of well-known
optimization techniques.
      </p>
      <p>Obviously, the above solution may result in
suboptimal plan. For example, approximate evaluation of
operations may limit the cardinality of intermediate
results making the selected query evaluation plan
inefficient. Another limitation is in the inability to support
approximate algorithms implementing operations
without controllable quality but still relevant for approximate
real-time query evaluation. An integrated
implementation of an optimizer and resource allocator is planned for
future work.
2.2.4</p>
    </sec>
    <sec id="sec-8">
      <title>Execution</title>
      <p>The executor is based on commonly accepted pipeline
query evaluation augmented with provisions for
extendibility. Thus intermediate results of evaluation are
transferred between operations without materialization;
however, some implementations of specific operation
still may materialize intermediate results internally.</p>
      <p>The set of operations can be extended by other generic
or user operations; new exact and approximate
algorithms implementing operations also can be smoothly
introduced to the system together with new algebraic
equivalences and cost/quality models.
3</p>
      <sec id="sec-8-1">
        <title>Detailed Discussion</title>
        <p>The main requirements to the system are extensibility
and approximation, thus we should take them into
account in the system architecture.
3.1</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>Transformations</title>
      <p>A notable feature of the environment in consideration is
the need to provide for configurable transformations, in
contrast with usually hard-coded transformations for
relational optimizers.</p>
      <p>Transformations are described in the system by 2
functions and are registered in the list of available
transformations.</p>
      <p>Check function which evaluates the applicability of
transformation to the root of the query evaluation
(sub) plan.</p>
      <p>Apply function which constructs a new query
evaluation (sub) plan from input one applying the
transformation.</p>
      <p>The system has base implementation of some
universal query transformations such as algorithm change
transformation and distributive property. This enables
easy implementation of additional transformations just
configuring base ones.
3.2</p>
    </sec>
    <sec id="sec-10">
      <title>Cost Models</title>
      <p>As any effective query optimization is based on cost
models of operations the system should support
userdefined cost models for operations to be able to improve
applied cost models for basic operations and add new
ones for extensions.</p>
      <p>A cost model is a function with the following
interface:
Input: Operation call parameters; input data statistics.
Output: Operation cost; output data statistics.
3.3</p>
    </sec>
    <sec id="sec-11">
      <title>Quality Models</title>
      <p>At the resource allocation step the system applies
quality models which describe the trade-off between cost of
operation execution and quality of result for approximate
algorithms.</p>
      <p>A quality model is a function with the following
parameters:
Input: Input data statistics; non-changeable operation
call parameters.</p>
      <p>Output: Piecewise-linear representation of dependence
between resources allocated for operation execution
and result quality.</p>
      <p>In addition, a function mapping allocated resources
and quality into operation parameters is needed for
correct work of the system. This function returns operation
call parameters based on specified operation execution
conditions (resources, quality or both):
Input: Input data statistics; non-changeable operation
call parameters; resources allocated for operation
execution; expected operation result quality.</p>
      <sec id="sec-11-1">
        <title>Output: Operation call parameters.</title>
        <p>3.4</p>
      </sec>
    </sec>
    <sec id="sec-12">
      <title>Operations</title>
      <p>Discussion of operation library is followed by
architecture details for specific classes of operations: primary,
unary, and binary focusing on algebra extensibility.
3.4.1</p>
    </sec>
    <sec id="sec-13">
      <title>Operation Library</title>
      <p>Operation library stores the set of algebraic operations
and all attendant structures. For each operation the
library stores the following:</p>
      <p>Mapping of operation call in the query evaluation
plan into the direct call;</p>
      <sec id="sec-13-1">
        <title>Cost model;</title>
      </sec>
      <sec id="sec-13-2">
        <title>Quality model;</title>
        <p>Relevant transformations using the operation.</p>
        <p>Each algorithm, for example join based on nested
loops or sort merge, is registered in the operation library
as a separate operation. To add new operation to the
operation library one should register the corresponding cost
model, quality model, and transformations.</p>
        <p>From the architecture point of view the set of
algebraic operations can be divided into: primary operations,
unary operations, binary operations.</p>
        <p>During the algebra extension operations from all these
groups can be implemented supporting predefined
interface discussed below or constructed based on universal
basic implementations for each class.</p>
        <p>Parameters of data processors and functions used to
configure basic implementations are passed from
operation parameters: map of parameter names into values. In
this case the interface of basic implementation is
universal to some extent and different data processors can work
with different sets of specific parameters.</p>
        <p>All operations support the following interface:
Input: Operation call parameters, pipelined
argument(s)</p>
      </sec>
      <sec id="sec-13-3">
        <title>Output: Pipelined output</title>
        <p>The number of arguments depends, of course, on the
arity of the operation.
3.4.2</p>
      </sec>
    </sec>
    <sec id="sec-14">
      <title>Primary Operations</title>
      <p>Primary sources of data are implemented as operations
without input arguments.</p>
      <p>For example, if the primary source is a database, it is
implemented as an operation with input parameters
representing SQL query to retrieve data and data needed to
setup the connection.</p>
      <p>A built-in basic implementation of primary operation
is provided. It can be configured by data retrieval
processor to construct different real primary operations.</p>
      <p>Data retrieval processor returns an object from data
set for each call until all data is returned. Basic
implementation of primary operation calls data retrieval
processor while the latter returns objects and transfer
collected objects to the output pipe. To extend the algebra
by new primary operation one may implement a data
retrieval processor and register it in the system. After that
a new primary operation may be implemented as basic
primary operation configured by new data retrieval
processor can be registered in the operation library.
3.4.3</p>
    </sec>
    <sec id="sec-15">
      <title>Unary Operations</title>
      <p>The architecture supports the basic implementation of
the unary operation which can be configured by unary
data processor. Basic implementation of unary
operation reads objects from input pipe one by one,
asynchronously calls unary data processor, and when results
of processing are available it forwards objects to the
output pipe.</p>
      <p>Unary data processor implements 2 methods: put
object, get object. Put method retrieves object and
processes it in specific way, for example adds new attribute
or inserts object into the internal list of object sorted by
score. Get method returns the results of processing
(objects) one by one if they are available in the moment of
method call.</p>
      <p>Let us consider the architecture of unary operation
based on aggregation. Aggregation process can be
implemented as 4 unary operations:
grouping operation which defines how objects are
grouped, that is adds group label to each object;
aggregating operation, which constructs objects
representing groups based on input objects with
group labels;
group score calculation operation, which retrieves
input objects representing groups and returns them
with scores calculated based on specific rule;
aggregate calculation operation, which retrieves
input objects representing groups and returns them
with additional attribute (aggregate) calculated
based on group of objects, for example sum on some
attribute.</p>
      <p>All these operations can be implemented using the
basic one configured by corresponding unary data
processors.
3.4.4</p>
    </sec>
    <sec id="sec-16">
      <title>Binary Operations</title>
      <p>Binary operations retrieve objects from 2 input pipes and
return result objects when possible to the output pipe.</p>
      <p>The system architecture supports the basic
implementation of the binary operation based on construction of
cross product of operation arguments. Basic
implementation is configured by predicate function which takes
two objects as arguments and returns the object
constructed based on input pair of objects with
corresponding score. Basic implementation of binary operation
reads objects from input pipes, calls predicate function,
and puts to the output pipe new objects with scores from
predicate function.</p>
      <p>Thus the extensibility of algebra by new binary
operations can be based on implementation of new
predicate functions. It is important to note that basic
configurable predicate implementations can be applied:
predicate function comparing attribute value with constant
takes attribute name, constant value, and sing of
comparison as parameters.</p>
      <p>New binary operations can be implemented without
predicate function supporting interface used by basic
implementation. It is especially important in case of
implementation of approximate algorithms for binary
operations. One can extend the core of the system with
other configurable basic implementations of binary
operation, for example approximate algorithms based on
partial consideration of cross product pairs.
4</p>
      <sec id="sec-16-1">
        <title>Related Work</title>
        <p>
          A comprehensive discussion of the related work can be
found in [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ]. However, some main works should be
outlined there make the presentation consistent.
4.1
        </p>
      </sec>
    </sec>
    <sec id="sec-17">
      <title>Systems</title>
      <p>
        Several data processing systems are developed to
process Big Data [
        <xref ref-type="bibr" rid="ref11 ref3 ref7">3, 7, 11</xref>
        ]. High-level declarative querying
languages were proposed [
        <xref ref-type="bibr" rid="ref24 ref30">24, 30</xref>
        ] to decrease the
complexity of data processing workflows specification and
benefit from query optimization.
      </p>
      <p>
        The system for optimization and procession of
complex analytical workflows is discussed in [
        <xref ref-type="bibr" rid="ref10 ref28">10, 28</xref>
        ].
      </p>
      <p>
        System for approximate evaluation of SQL
aggregation queries is proposed in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Approximate queries can
be annotated with either an error bound, or a time
constraint, based on which the system selects an
appropriate sample to evaluate the query. In [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] authors
developed a framework for data exploration based on
approximately evaluated SQL queries that gives precise control
over runtime and quality of result. The proposed system
is based on data samples, called impressions, selected to
produce low statistical error of a query evaluation result
within strict time bounds.
      </p>
      <p>
        Systems presented in [
        <xref ref-type="bibr" rid="ref2 ref27">2, 27</xref>
        ] enable evaluation of
specific classes of queries in limited resources and focus on
approximate query execution based on sampling. The
aim of the architecture proposed in this research is to
support different types of approximate real-time data
analytics in uniform way.
4.2
      </p>
    </sec>
    <sec id="sec-18">
      <title>Extended Models</title>
      <p>
        Traditional data querying means are reconsidered and
extended because of variety of data under processing.
Proposed declarative querying languages are mostly the
extensions of relational algebra [
        <xref ref-type="bibr" rid="ref1 ref18 ref22 ref26">1, 18, 22, 26</xref>
        ] and support
new approaches to data mining, for example based on
similarity and probabilistic models. This fact enables
their natural integration into traditional relational data
management systems and application of some known
query optimization techniques.
      </p>
      <p>
        Some extensions of querying languages are based on
extension of relational data model: attribute
representing rank or score of object is marked out from the set of
attributes [
        <xref ref-type="bibr" rid="ref1 ref22 ref9">1, 9, 22</xref>
        ].
      </p>
      <p>
        Based on the extended data model new algebraic
operations can be introduced. Several types of querying
language extension can be outlined:
languages supporting user-defined weights
representing the importance of data source or sub-query
[
        <xref ref-type="bibr" rid="ref22 ref26">22, 26</xref>
        ];
extensions of relational algebra [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] based on
notion of fussy sets with fixed interpretation of object
scores (scores of tuple represents the degree of its
membership in relation);
specific algebras processing fixed type of data, for
example images [
        <xref ref-type="bibr" rid="ref5 ref8">5, 8</xref>
        ].
      </p>
      <p>
        The ideas and approaches for querying systems with
different data processing paradigms, such as relational
database and information retrieval in collection of
documents, were considered in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
4.3
      </p>
    </sec>
    <sec id="sec-19">
      <title>Query Optimization</title>
      <p>
        A brief overview of classical query optimization
techniques can be found in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. The optimization
techniques for distributed heterogeneous systems are
discussed in [
        <xref ref-type="bibr" rid="ref16 ref25">16, 25</xref>
        ]. The query optimization to generate
efficient distributed query execution plans for
MapReduce workflows were proposed in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
Extended querying languages usually constrain the
optimization because underlying open and extensible
similarity-based algebras support less amount of
algebraic equivalencies compared to relational algebra [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
For example, extended operations changing object scores
do not commute with sorting operation.
      </p>
      <p>
        Authors of [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] proposed 2 alternative ways of
extension of the set of equivalent query evaluation plans
transformations: based on special limitations on underlying
algebra or support of approximate algebraic
equivalencies.
      </p>
      <p>
        Extended querying languages support some algebraic
equivalencies considered in [
        <xref ref-type="bibr" rid="ref1 ref22">1, 22</xref>
        ]. For example,
authors of [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] discuss exact transformation of algebraic
expression with join and following selection by
threshold on score value into the equivalent one with
preliminary selection. Such algebraic equivalencies demonstrate
that the set of possible query transformation have not
decreased but have changed.
4.3.2
      </p>
    </sec>
    <sec id="sec-20">
      <title>Cost Models</title>
      <p>
        The development of cost models is base for
optimization of queries specified in extended high-level language
[
        <xref ref-type="bibr" rid="ref1 ref18">1, 18</xref>
        ]. The cost models for specific extended operations
and corresponding algorithms should be constructed and
analyzed. The technique for estimation of operation
evaluation result based on sampling is proposed in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Cost
models based on selectivity estimation of extended
operations are developed in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Authors of [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] proposed system fully integrating
rank-join operation into relational database. The
probabilistic model to estimate the size of input arguments
for rank-join operation and corresponding cost model are
developed in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
4.4
      </p>
    </sec>
    <sec id="sec-21">
      <title>Positioning</title>
      <p>
        The proposed system architecture is based on the
authors previous research and connects together several
parts: similarity-based algebra [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], extended
cost/quality models [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], resource allocation approach [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]. The
detailed discussion of some separate ideas, concepts, and
techniques relevant for implementation of extendable
system for optimization and execution of approximate
complex queries formulated in similarity-based
declarative query language was presented and model
implementation was developed to check them. In this work a step
forward implementation of full integrated prototype of
such system is done: main modules and corresponding
interfaces are discussed.
5
      </p>
      <sec id="sec-21-1">
        <title>Conclusion</title>
        <p>The proposed architecture of an extendable system for
optimization and execution of approximate complex
queries formulated in similarity-based declarative query
language demonstrates the possible integration of
techniques proposed in previous research and connects
together several parts: similarity-based algebra, extended
cost/quality models, resource allocation approach.</p>
        <p>The future work includes full prototype development
supporting adaptable cost and quality models, adaptive
query evaluation, enhanced optimizer for approximate
query evaluation, and support for multiple execution
platforms.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Adali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bonatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. L.</given-names>
            <surname>Sapino</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V. S.</given-names>
            <surname>Subrahmanian</surname>
          </string-name>
          .
          <article-title>A multi-similarity algebra</article-title>
          .
          <source>In Proceedings of the 1998 ACM SIGMOD international conference on Management of data, SIGMOD '98</source>
          , pages
          <fpage>402</fpage>
          -
          <lpage>413</lpage>
          , New York, NY, USA,
          <year>1998</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Agarwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Mozafari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Panda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Milner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Madden</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Stoica.</surname>
          </string-name>
          <article-title>Blinkdb: queries with bounded errors and bounded response times on very large data</article-title>
          . In Z. Hanza´lek, H. Ha¨rtig, M. Castro, and M. F. Kaashoek, editors,
          <source>EuroSys</source>
          , pages
          <fpage>29</fpage>
          -
          <lpage>42</lpage>
          . ACM,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Alsubaiee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Altowim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Altwaijry</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Behm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. R.</given-names>
            <surname>Borkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Carey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Grover</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Heilbron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.-S.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Onose</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pirzadeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Vernica</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Wen</surname>
          </string-name>
          . Asterix:
          <article-title>An open source system for “big data“ management and analysis</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>5</volume>
          (
          <issue>12</issue>
          ):
          <fpage>1898</fpage>
          -
          <lpage>1901</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>B.</given-names>
            <surname>Arai</surname>
          </string-name>
          ,
          <string-name>
            <surname>G. Das</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Gunopulos</surname>
            , and
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Koudas</surname>
          </string-name>
          .
          <article-title>Anytime measures for top-k algorithms</article-title>
          . In C. Koch,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gehrke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. N.</given-names>
            <surname>Garofalakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Srivastava</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Aberer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Deshpande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Florescu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. Y.</given-names>
            <surname>Chan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ganti</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.-C. Kanne</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Klas</surname>
          </string-name>
          , and E. J. Neuhold, editors,
          <source>VLDB</source>
          , pages
          <fpage>914</fpage>
          -
          <lpage>925</lpage>
          . ACM,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Atnafu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Brunie</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Kosch</surname>
          </string-name>
          .
          <article-title>Similaritybased algebra for multimedia database systems</article-title>
          .
          <source>In ADC</source>
          , pages
          <fpage>115</fpage>
          -
          <lpage>122</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Braga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Campi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Raffio</surname>
          </string-name>
          .
          <article-title>Joining the results of heterogeneous search engines</article-title>
          . Inf. Syst.,
          <volume>33</volume>
          (
          <issue>7-8</issue>
          ):
          <fpage>658</fpage>
          -
          <lpage>680</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>N.</given-names>
            <surname>Bruno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jain</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhou</surname>
          </string-name>
          .
          <article-title>Continuous cloudscale query optimization and processing</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>6</volume>
          (
          <issue>11</issue>
          ):
          <fpage>961</fpage>
          -
          <lpage>972</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bud</surname>
          </string-name>
          ´ıkova´,
          <string-name>
            <given-names>M.</given-names>
            <surname>Batko</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Zezula</surname>
          </string-name>
          .
          <article-title>Query language for complex similarity queries</article-title>
          . In T. Morzy, T. Ha¨rder, and R. Wrembel, editors,
          <source>ADBIS</source>
          , volume
          <volume>7503</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>85</fpage>
          -
          <lpage>98</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Chaudhuri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ramakrishnan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Weikum</surname>
          </string-name>
          .
          <article-title>Integrating db and ir technologies: What is the sound of one hand clapping? In CIDR</article-title>
          , pages
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>U.</given-names>
            <surname>Dayal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Castellanos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Simitsis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Wilkinson</surname>
          </string-name>
          .
          <article-title>Data integration flows for business intelligence</article-title>
          . In M. L.
          <string-name>
            <surname>Kersten</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Novikov</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Teubner</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Polutin</surname>
          </string-name>
          , and S. Manegold, editors,
          <source>EDBT</source>
          , volume
          <volume>360</volume>
          of ACM International Conference Proceeding Series, pages
          <fpage>1</fpage>
          -
          <lpage>11</lpage>
          . ACM,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <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>
          . Mapreduce:
          <article-title>Simplified data processing on large clusters</article-title>
          .
          <source>In OSDI</source>
          , pages
          <fpage>137</fpage>
          -
          <lpage>150</lpage>
          . USENIX Association,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Deshpande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Ives</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Raman</surname>
          </string-name>
          .
          <article-title>Adaptive query processing</article-title>
          .
          <source>Found. Trends databases</source>
          ,
          <volume>1</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>140</lpage>
          ,
          <year>January 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>O.</given-names>
            <surname>Dolmatova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yarygina</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Novikov</surname>
          </string-name>
          .
          <article-title>Cost models for approximate query evaluation algorithms</article-title>
          . In A. Caplinskas,
          <string-name>
            <given-names>G.</given-names>
            <surname>Dzemyda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lupeikiene</surname>
          </string-name>
          , and O. Vasilecas, editors,
          <source>Databases and Information Systems. Tenth International Baltic Conference on Databases and Information Systems. Local Proceedings, Materials of Doctoral Consortium.</source>
          , pages
          <fpage>20</fpage>
          -
          <lpage>28</lpage>
          . Vilnius: Zara,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>J. M. Hellerstein</surname>
            ,
            <given-names>P. J.</given-names>
          </string-name>
          <string-name>
            <surname>Haas</surname>
            , and
            <given-names>H. J.</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
          </string-name>
          .
          <article-title>Online aggregation</article-title>
          . In J. Peckham, editor,
          <source>SIGMOD Conference</source>
          , pages
          <fpage>171</fpage>
          -
          <lpage>182</lpage>
          . ACM Press,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>I. F.</given-names>
            <surname>Ilyas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Shah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. G.</given-names>
            <surname>Aref</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Vitter</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. K.</given-names>
            <surname>Elmagarmid</surname>
          </string-name>
          .
          <article-title>Rank-aware query optimization</article-title>
          . In G. Weikum,
          <string-name>
            <surname>A. C.</surname>
          </string-name>
          <article-title>Ko¨nig, and S</article-title>
          . Deßloch, editors,
          <source>SIGMOD Conference</source>
          , pages
          <fpage>203</fpage>
          -
          <lpage>214</lpage>
          . ACM,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kossmann</surname>
          </string-name>
          .
          <article-title>The state of the art in distributed query processing</article-title>
          .
          <source>ACM Comput. Surv.</source>
          ,
          <volume>32</volume>
          (
          <issue>4</issue>
          ):
          <fpage>422</fpage>
          -
          <lpage>469</lpage>
          , Dec.
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kossmann</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Stocker</surname>
          </string-name>
          .
          <article-title>Iterative dynamic programming: a new class of query optimization algorithms</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>25</volume>
          (
          <issue>1</issue>
          ):
          <fpage>43</fpage>
          -
          <lpage>82</lpage>
          , Mar.
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>C.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. C.-C. Chang</surname>
            ,
            <given-names>I. F.</given-names>
          </string-name>
          <string-name>
            <surname>Ilyas</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Song</surname>
          </string-name>
          . Ranksql:
          <article-title>Query algebra and optimization for relational top-k queries</article-title>
          . In F. O¨ zcan, editor,
          <source>SIGMOD Conference</source>
          , pages
          <fpage>131</fpage>
          -
          <lpage>142</lpage>
          . ACM,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>F.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. M.</given-names>
            <surname>Moro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghandeharizadeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Haritsa</surname>
          </string-name>
          , G. Weikum,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Carey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Casati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. Y.</given-names>
            <surname>Chang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Manolescu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mehrotra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Dayal</surname>
          </string-name>
          , and V. J. Tsotras, editors.
          <source>Proceedings of the 26th International Conference on Data Engineering, ICDE 2010, March 1-6</source>
          ,
          <year>2010</year>
          , Long Beach, California, USA. IEEE,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>H.</given-names>
            <surname>Lim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Herodotou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Babu</surname>
          </string-name>
          .
          <article-title>Stubby: A transformation-based optimizer for mapreduce workflows</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>5</volume>
          (
          <issue>11</issue>
          ):
          <fpage>1196</fpage>
          -
          <lpage>1207</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>S. E.</given-names>
            <surname>Madnick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. W.</given-names>
            <surname>Lee</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhu</surname>
          </string-name>
          .
          <article-title>Overview and framework for data and information quality research</article-title>
          .
          <source>J. Data and Information Quality</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):2:
          <fpage>1</fpage>
          -
          <lpage>2</lpage>
          :
          <fpage>22</fpage>
          ,
          <year>June 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>D.</given-names>
            <surname>Montesi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Trombetta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Dearnley</surname>
          </string-name>
          .
          <article-title>A similarity based relational algebra for web and multimedia data</article-title>
          .
          <source>Inf. Process. Manage.</source>
          ,
          <volume>39</volume>
          (
          <issue>2</issue>
          ):
          <fpage>307</fpage>
          -
          <lpage>322</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>B.</given-names>
            <surname>Novikov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Vassilieva</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Yarygina</surname>
          </string-name>
          .
          <article-title>Querying big data</article-title>
          .
          <source>In Proceedings of the 13th International Conference on Computer Systems and Technologies</source>
          ,
          <source>CompSysTech '12</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          , New York, NY, USA,
          <year>2012</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <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>
          . In J. T.-L. Wang, editor,
          <source>SIGMOD Conference</source>
          , pages
          <fpage>1099</fpage>
          -
          <lpage>1110</lpage>
          . ACM,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pentaris</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ioannidis</surname>
          </string-name>
          .
          <article-title>Query optimization in distributed networks of autonomous database systems</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>31</volume>
          (
          <issue>2</issue>
          ):
          <fpage>537</fpage>
          -
          <lpage>583</lpage>
          ,
          <year>June 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>I.</given-names>
            <surname>Schmitt</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Schulz</surname>
          </string-name>
          .
          <article-title>Similarity relational calculus and its reduction to a similarity algebra</article-title>
          . In D. Seipel and
          <string-name>
            <surname>J. M. T.</surname>
          </string-name>
          Torres, editors,
          <source>FoIKS</source>
          , volume
          <volume>2942</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>252</fpage>
          -
          <lpage>272</lpage>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>L.</given-names>
            <surname>Sidirourgos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. L.</given-names>
            <surname>Kersten</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Boncz</surname>
          </string-name>
          . Sciborq:
          <article-title>Scientific data management with bounds on runtime and quality</article-title>
          .
          <source>In CIDR</source>
          , pages
          <fpage>296</fpage>
          -
          <lpage>301</lpage>
          . www.cidrdb.org,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>A.</given-names>
            <surname>Simitsis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Wilkinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Castellanos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>U.</given-names>
            <surname>Dayal</surname>
          </string-name>
          .
          <article-title>Optimizing analytic data flows for multiple execution engines</article-title>
          . In K. S. Candan,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. T.</given-names>
            <surname>Snodgrass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Gravano</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Fuxman, editors,
          <source>SIGMOD Conference</source>
          , pages
          <fpage>829</fpage>
          -
          <lpage>840</lpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>M.</given-names>
            <surname>Theobald</surname>
          </string-name>
          , G. Weikum, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Schenkel</surname>
          </string-name>
          .
          <article-title>Top-k query evaluation with probabilistic guarantees</article-title>
          . In M. A.
          <string-name>
            <surname>Nascimento</surname>
            , M. T. O¨ zsu, D. Kossmann,
            <given-names>R. J.</given-names>
          </string-name>
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>J. A.</given-names>
          </string-name>
          <string-name>
            <surname>Blakeley</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          K. B. Schiefer, editors,
          <source>VLDB</source>
          , pages
          <fpage>648</fpage>
          -
          <lpage>659</lpage>
          . Morgan Kaufmann,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <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>N.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , S. Anthony, H. Liu, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Murthy</surname>
          </string-name>
          .
          <article-title>Hive - a petabyte scale data warehouse using hadoop</article-title>
          .
          <source>In Li et al. [19]</source>
          , pages
          <fpage>996</fpage>
          -
          <lpage>1005</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>A.</given-names>
            <surname>Yarygina</surname>
          </string-name>
          .
          <article-title>Execution and optimization techniques for approximate queries in heterogeneous systems</article-title>
          .
          <source>Programming and Computer Software</source>
          , pages
          <fpage>309</fpage>
          -
          <lpage>317</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>A.</given-names>
            <surname>Yarygina</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Novikov</surname>
          </string-name>
          .
          <article-title>Optimizing resource allocation for approximate real-time query processing</article-title>
          .
          <source>Computer Science and Information Systems</source>
          ,
          <volume>11</volume>
          :
          <fpage>69</fpage>
          -
          <lpage>88</lpage>
          ,
          <year>January 2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>