<!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>
      <journal-title-group>
        <journal-title>SEBD</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>On the Optimization of Query Plans in Multistores</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>(Discussion Paper)</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Chiara Forresi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matteo Francia</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Enrico Gallinucci</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matteo Golfarelli</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Bologna</institution>
          ,
          <addr-line>Cesena</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <volume>31</volume>
      <fpage>02</fpage>
      <lpage>05</lpage>
      <abstract>
        <p>Multistores are data management systems that facilitate query processing across databases based on diferent data models; in addition to distributing data, integration and data fusion activities are necessary to address complexities such as schema heterogeneity and data replication. Our multistore solution relies on a dataspace to provide the user with an integrated view of the available data and enables the formulation and execution of GPSJ queries. In this paper, we outline a technique to optimize the execution of GPSJ queries by formulating and evaluating diferent execution plans on the multistore. In particular, we identify diferent strategies to carry out joins and data fusion by relying on diferent schema representations; then, a self-learning black-box cost model is used to estimate execution times and select the most eficient plan. The experiments assess the efectiveness of the cost model in choosing the best execution plan.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Multistore</kwd>
        <kwd>NoSQL</kwd>
        <kwd>Query optimization</kwd>
        <kwd>Cost model</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        The decline of the one-size-fits-all paradigm has pushed researchers and practitioners towards
the idea of polyglot persistence [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], where a multitude of databases is employed to support data
storage and querying. The motivations are manifold, including the exploitation of the strongest
features of each system, the of-loading of historical data to cheaper DBMS, and the adoption of
diferent storage solutions by diferent branches of the same company. This trend has influenced
the discipline of data science, as analysts are steered away from traditional data warehousing
and towards a more flexible and lightweight approach to data analysis.
      </p>
      <p>Multistores are characterized by 1) the replication of data across diferent storage systems
(i.e., there is no sharp horizontal partitioning) with possibly conflicting records (e.g., the same
customer with a diferent country of residence in diferent databases), and 2) a high level of
schema heterogeneity: records of the same real-world entity may be represented with diferent
structures, using diferent naming conventions for the same kind of data. The large volume and
the frequent evolution of these data hinder the adoption of a traditional integration approach.
C1 : Customer</p>
      <p>C2 : Order
C3 : Orderline</p>
      <p>C4 : Product
Legend:
data flow
metadata flow</p>
      <p>C5 : Customer
: Order
: Orderline
C6 : Product
C7 : Invoice
(a)</p>
      <p>LEGEND
relational
document-based
wide-column
key-value</p>
      <p>
        In recent work [
        <xref ref-type="bibr" rid="ref2 ref3 ref4 ref5">2, 3, 4, 5</xref>
        ] we have proposed a multistore solution that relies on a dataspace
to provide the user with an integrated view of the data. A dataspace is a lightweight integration
approach providing basic query expressiveness on a variety of data sources, bypassing the
complexity of traditional integration approaches and possibly returning best-efort or approximate
answers [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The dataspace is built in accordance with a pay-as-you-go philosophy, i.e., by
applying simple matching rules to recognize relationships between data structures and by letting
the users progressively refine the dataspace as new relationships are discovered [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Users
exploit the dataspace to formulate GPSJ (generalized projection, selection, and join) queries,
i.e., the most common class of queries in analytical applications [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Queries are translated into
execution plans that consist of many local computations (carried out by the single databases)
and a global computation (carried out by the middleware layer).
      </p>
      <p>In this paper, we outline a technique to optimize the execution of GPSJ queries by finding the
most eficient execution plan on the multistore and experimentally assess its eficiency.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Overview and multistore formalization</title>
      <p>We consider a multi-cloud architecture case study, where diferent branches of the same holding
rely on diferent storage systems to store overlapping data on the same domain. The physical
implementation is depicted in Figure 1a, with 1 to 7 representing the collections of data and
the “:” notation indicating the entities contained in each collection (notice that the
documentbased database contains a single collection which uses nested structures, e.g., to embed orders
and order lines within customers). While Cloud 1 employs a relational database, Cloud 2 satisfies
the need for data variety support by relying on NoSQL systems and also stores orders’ invoices.
As the two branches belong to the same holding, both customers and products are partially
overlapped in the two cloud environments. Figure 1b shows the dataspace of the case study.</p>
      <p>The multistore is described by a dataspace, i.e., an abstract global representation of the data
scattered across diferent databases. It is composed of two main concepts: entities, corresponding
to the real-world entities in the multistore (e.g., customers, products), and features, corresponding
to the attributes that describe entities (e.g., the name of customers, the brand of products). These
concepts are built in a pay-as-you-go fashion by analyzing the schemas in the data and detecting
relationships between attributes.</p>
      <p>Figure 2 provides a functional overview of the multistore system and the supported user
interactions. Most importantly, users interact with the dataspace to formulate GPSJ queries,
which are well-suited for data analysis; a typical analytical query consists of a group-by set (i.e.,
the features used to carry out an aggregation), one or more numerical features to be aggregated
by some function (e.g., sum, average), and (possibly) selection predicates. Based on the user’s
query, the system’s Optimizer defines the query plan to be executed on the multistore in two
steps: first, the Query planner generates multiple query plans, then a Cost model is used to
choose the most convenient one. Query plans are decomposed into subplans, each identified
by macro operators that embed a tree of operations. Local subplans are computed directly on
the local databases; global subplans are computed on the middleware’s execution framework to
combine the partial results from local subplans and obtaining the final result to be returned.</p>
      <p>In the dataspace, entities are identified by a  that corresponds to the feature that uniquely
distinguishes the instances (e.g., the feature identifying orders in  is ). Relationships
are expressed between two entities  and  on a feature  . Most importantly, many-to-one
relationships are indicated with →−   . It is  ⇒  if there exists a path of many-to-one
relationships from  to .</p>
      <p>A collection  contains data that refer to one or more dataspace entities, indicated with ℰ ;
the portion of the dataspace described by  is called a collection graph ( ). Depending on
the way that entities ℰ are modeled in , we recognize three kinds of schema representations.
• Normal (NoR), composed by a single entity.
• Nested (NeR), composed by at least two entities connected in a single path of many-to-one
relationships from  to  ( ⇒ ). Each instance in  is identified by the  of ,
and contains features about the other entities in the form of nested arrays. For example,
 in Figure 3 is a fully nested collection, showing an instance of  containing an array
of instances of , each containing an array of instances of .
• Flat (FlR), which is also composed of at least two entities where ∃ ∈ ℰ such that
{ "cid":"C001",
"firstName":"Alice",
"orders":[{
"oid":"O010",
"orderDate":"2020-01-01",
"orderLines":[{
"olid":"OL100",
"asin":"B00794N76O",
"qty":94
},{ "olid":"OL101",
"asin":"B004PYML90",
"quantity":80
}]}]}
{ "oid":"O010",
"orderDate":"2020-01-01",
"cid":"C001",
"firstName":"Alice"
"orderLines":[{
"olid":"OL100",
"asin":"B00794N76O",
"qty":94
},{ "olid":"OL101",
"asin":"B004PYML90",
"quantity":80,
}]}
{ "olid":"OL100",
"asin":"B00794N76O",
"qty":94,
"oid":"O010",
"orderDate":"2020-01-01",
"cid":"C001",
"firstName":"Alice"
},{ "olid":"OL101",
"asin":"B004PYML90",
"quantity":80,
"oid":"O010",
"orderDate":"2020-01-01",
"cid":"C001",
"firstName":"Alice"}</p>
      <p>∀ ∈ ℰ ∖  it is  ⇒  . Each instance in  is identified by the  of  and
instances of  also contain features of the other entities. For example,  in Figure 3 is
a fully flat collection showing two instances of  with the corresponding features of
 and . Notice that FlR implies the duplication of values from  and .</p>
      <p>If a collection graph fully conforms to one of these schema representations, we indicate it
with ( ) ∈ {NoR, NeR, FlR}. If a collection mixes diferent schema representations (for
instance  in Figure 3, which mixes NeR and FlR), then ( ) = ∅.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Multistore algebra</title>
      <sec id="sec-3-1">
        <title>3.1. NRA and data fusion operations</title>
        <p>
          The query execution plans are formulated in Nested Relational Algebra (NRA) extended with
the merge operator ( )⊏to support data fusion operations, handling overlap between collections
and resolving schema heterogeneity and record overlapping [
          <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
          ]. Its goal is to retain as much
information as possible, both from the extensional and the intensional points of view. The merge
operator ( )⊏answers this need by (i) avoiding any loss of records, (ii) providing output in terms
of features instead of attributes, and (iii) resolving conflicts whenever necessary. The operation
essentially involves a full-outer join between the collections, followed by the resolution of the
columns that represent the same feature.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Entity views</title>
        <p>To simplify the discussion on query plans, we introduce the notion of entity views as high-level
abstraction operations. An entity view (EV) is a runtime-computed collection that provides a
standard representation for the records modeling a set of entities.</p>
        <p>Definition 1 (Entity view). An entity view is a collection  whose records represent the features
of a given set of entities in accordance to a schema representation. Its collection graph  is such
that ( ) ∈ { ,  ,  }.</p>
        <p>An EV is either local or global. A local entity view (LEV) is obtained from collections belonging
to the same database, thus it may provide a partial representation of a set of entities. A global
entity view (GEV) provides a complete and cleansed representation of a set of entities in the
multistore. The operations on EVs are defined as EV operators, i.e., macro-NRA operators
(distinguished from simple ones by the hatˆsymbol) that embed a tree of NRA operations.
• LEV creation: ˆ( ,  ,  ,  ). This operation creates a LEV  from a set of
collections  from the same database, projects a set of features  , and applies the optional
selection predicates  ; the structure of the result is defined by  .
• GEV creation: ˆ ⊏(,  ), where  is a set of LEVs, || ≥ 2, and  is an optional
conjunction of selection predicates. This operation creates a GEV  ′ by resolving conflicts
between duplicated records from two or more LEVs sharing the same collection graph
′, i.e., ∀ ∈  it is  = ′. Essentially, this macro-operator produces a left-deep
tree of binary merge operations between LEVs. Once all LEVs have been merged, the
optional selection predicates are applied.
• Join of GEVs: ◁▷ˆ (), where  is a set of GEVs, || ≥ 2. The obtained GEV  ′ is
the result of join operations between the GEVs in  representing connected but
nonoverlapping sets of entities. Like ˆ,⊏this macro-operator produces a left-deep tree of
binary join operations between two GEVs. The result is the GEV that provides a cleansed
representation of all the records in the multistore that are required to answer the query.
EV operations implement logical rules to produce an optimized NRA tree (e.g., push-down of
selection predicates, join operation reordering), but we overlook them due to space limitations.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Query planning</title>
      <p>The execution plans of GPSJ queries are defined in terms of EV operations as follows.
Definition 2 (Query plan). A query plan  is a rooted tree of entity view operations, where (i) the
root is a GEV join operation (◁▷ˆ ), (ii) the root is preceded by one or more GEV creation operations
(ˆ)⊏,and (iii) each of the latter is preceded by one or more (parallel) LEV creation operations (ˆ).
The root is possibly extended with an NRA aggregation operation ( ).</p>
      <p>Example 1. Figure 4 shows a sample plan for a query that computes, for each gender, the average
quantities bought for products of brand “BrandABC”. In the upper part, two LEV creation operations
compute an EV in NeR with customers, orders, and order line records from the collection in the
document-based database (i.e., 5) and the tables in the relational one (i.e., 1 to 3), respectively;
in particular, the latter is the one hiding the most complexity, as multiple join and nest operations
are required to compute the NeR representation. The two LEVs are then merged in a GEV creation
operation, that returns a cleansed FlR representation of the same data and projects the only features
required by subsequent operations. Similarly in the lower part, two other LEV creation operations
{ "cid":"C001",
"firstName":"Alice",
"gender":"F",
"orders":[{
"oid":"O010",
"orderLines":[{
"olid":"OL100",
"asin":"B00794N76O",
"qty":120
},{ "olid":"OL101",
"asin":"A43677C31E",
"qty":74 }]}]}
{ "asin":"B00794N76O",
"brand":"AB"
},{
"asin":"A43677C31E",
} "brand":"ABC"
cid oid orderDate
C001 O010 2020-01-01
cid gender</p>
      <p>C001 F
asin brand
B00794N76O BrandNO
B004PYML90 BrandABC
C3
C2
C1
C4
C6
^
π
NeR
^
π
NeR
^
π
NoR
^
π
NoR
^
^
^
⋈
gender qty
asin F 74
B004PYML90 F 101
A43677C31E
compute an EV in NoR with product records from 6 and 4, respectively. The subsequent GEV
creation operation merges the products and applies the filter on the reconciled records. Ultimately,
the GEV join operation combines the produced GEVs, while the aggregation operation computes the
ifnal result.</p>
      <p>Several query plans can be devised for the same query. The factors that determine the number
of alternative query plans are summarized below.</p>
      <p>#1 LEV creation. Diferent query plans can be created by choosing diferent schema
representations to create the LEVs.
#2 GEV creation. A query plan may include several alternative combinations of GEVs (e.g.,
considering a query that involves two entities  and , the options are to create (i) a
GEV for each entity and joining them, or (ii) a single GEV in NeR or FlR).
#3 LEV allocation. Each LEV creation operation can be executed either directly by the
middleware or pushed down to the database storing the respective data.</p>
      <p>
        For a given query, all feasible query plans are enumerated. Due to space constraints, we refer
the reader to [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] for the detailed algorithms to enumerate query plans. Among all possible
query plans, the most eficient one is identified by the cost model discussed in Section 5.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Cost model</title>
      <p>
        Finding the most eficient query plan is crucial and challenging due to the heterogeneity of
diferent DBMSes and the variability in terms of DBMS’s resources. In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], we relied on existing
literature to model the cost of each NRA operation on each engine in terms of read and written
disk pages. While this worked well on the simple example considered by [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], (i) it did not
consider resources allocation, (ii) it made simplistic assumptions about the parallelization of
the computation, (iii) it considered execution costs related to disk I/O only, (iv) it required
an advanced knowledge about the internal details of each engine and related algorithms that
reduces its extensibility.
      </p>
      <p>
        We overcome these limitations by adopting a self-learning cost model, which implicitly
captures the aforementioned aspects without requiring explicit and complex modeling of
execution costs [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
        ]. Inspired by [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], the cost model is composed by a set of multi-regression
models  = {ℎ0(), ..., ℎ()}, one for each of the  execution engines composing the multistore
including the middleware denoted by ℎ0(). The query plan  is partitioned in a set subplans
 , each corresponding to the execution of an EV operation on an engine. A multi-regression
model ℎ( ′)( ′) estimates the execution time for the subplan  ′ on the corresponding engine
( ′) based on a plan profile. Table 1 shows the list of the features captured by the profile;
some of them are directly obtained from the plan (e.g., number of unnest operations embedded in
a ˆ or ˆ o⊏peration), while others also require basic statistics on the local databases (e.g., indexes,
collections’ cardinalities, and attributes’ histograms to compute selectivity and aggregation
rate). The execution time for  is estimated by composing the execution time of its subplans
 as follows:  ( ) = ∑︀ ′∈ |( ′)=0 ℎ0( ′) + max∈[1,] ∑︀ ′∈ |( ′)= ℎ( ′).
Models’ drift is detected through an error threshold, and new regression trees must be built for
drifted engines or new databases.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Related Work and Conclusions</title>
      <p>
        The variety in terms of data models responds to diferent requirements of modern data-intensive
applications, but providing transparent querying mechanisms to query large-scale collections on
heterogeneous data stores is an active research area [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Multistore and polystore systems have
emerged as solutions to provide integrated access and querying to several heterogeneous stores
through a mediator layer (middleware) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The diference between multistores and polystores
lies in whether they ofer a single or multiple querying interfaces, respectively. Among the most
notable are BIGDAWG [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], TATOOINE [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], and CloudMDsQL [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. However, these systems
do not provide direct support for data fusion. To efectively query a heterogeneous system with
Baseline wins
      </p>
      <p>Tie</p>
      <p>OPT wins</p>
      <p>OPT</p>
      <p>PRV</p>
      <p>NOB</p>
      <p>NEB</p>
      <p>FLB
100
0 RCL</p>
      <p>PRV</p>
      <p>NOB
Baselines
(a)</p>
      <p>NEB</p>
      <p>
        FLB
overlapping records, data fusion techniques [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] are necessary, but limited proposals consider
this scenario in a polyglot system [
        <xref ref-type="bibr" rid="ref17 ref18">17, 18</xref>
        ]. As for the cost model, BIGDAWG [
        <xref ref-type="bibr" rid="ref13 ref19">13, 19</xref>
        ] uses
black-box models for optimization within each engine, TATOOINE [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] makes no mention of
cost optimization, and CloudMDsQL [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] blends rule-based and white/black-box cost modeling
without giving details. Our multistore uses rule-based optimization and a black-box cost model
with active learning, overcoming challenges of white-box models in complex environments;
indeed, black-box models automatically learn and fine-tune a system behavior model, freeing
the user from the task of modeling query costs.
      </p>
      <p>In this paper, we have outlined a cost-based optimization of execution plans in a multistore
by devising and evaluating diferent strategies to carry out joins and data fusion in presence of
data replication. The execution plans are generated in terms of a multistore algebra extended
from NRA and are based on diferent schema representations, so as to possibly take advantage
of the original modeling of the data in the local databases. Experiments on diferent multistore
benchmarks1 have revealed the factors that drive the performance of diferent execution plans,
demonstrating the need to evaluate alternative plans. Two key factors impacting execution plan
performance are: (i) the need to solve record overlapping, which afects schema representation
choice, and (ii) preserving the original modeling of data usually translates to faster executions.</p>
      <p>
        Figures 5a and 5b show the efectiveness of the cost model ( OPT) by comparing it with five
baseline strategies: RCL is the oracle that always selects the optimal plan; PRV is based on a
previous multistore implementation [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]; NOB, NEB, and FLB adopt a simple strategy to choose
the plan that maximizes both computation push-down and the creation of LEVs in a given
schema representation (respectively NoR, NeR, and FlR). The results show that OPT outperforms
all baseline strategies and is more likely to choose the optimal (or a sub-optimal) plan.
      </p>
      <p>Future work aims to enhance the multistore data platform by adding support for the graph
data model and incorporating advanced features (e.g., data profiling, provenance investigation,
application pipeline orchestration [20]). We plan to improve the system’s eficiency by exploring
data aggregation push-down to local databases and developing cost-efective execution plans.
1Available at https://big.csr.unibo.it/multistore
D. Maier, T. Mattson, S. B. Zdonik, The bigdawg polystore system, SIGMOD Rec. 44 (2015)
11–16.
[20] M. Francia, E. Gallinucci, M. Golfarelli, A. G. Leoni, S. Rizzi, N. Santolini, Making data
platforms smarter with MOSES, Future Gener. Comput. Syst. 125 (2021) 299–313.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Sadalage</surname>
          </string-name>
          , M. Fowler,
          <article-title>NoSQL distilled: a brief guide to the emerging world of polyglot persistence</article-title>
          ,
          <source>Pearson Education</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>H.</given-names>
            <surname>Ben Hamadou</surname>
          </string-name>
          , E. Gallinucci,
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <article-title>Answering GPSJ queries in a polystore: A dataspace-based approach</article-title>
          ,
          <source>in: Proceedings of Conceptual Modeling - 38th Int. Conf., ER</source>
          <year>2019</year>
          , volume
          <volume>11788</volume>
          , Springer,
          <year>2019</year>
          , pp.
          <fpage>189</fpage>
          -
          <lpage>203</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>C.</given-names>
            <surname>Forresi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Francia</surname>
          </string-name>
          , E. Gallinucci,
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <article-title>Optimizing execution plans in a multistore</article-title>
          ,
          <source>in: Advances in Databases and Information Systems - 25th European Conference, ADBIS</source>
          <year>2021</year>
          , Tartu, Estonia,
          <source>August 24-26</source>
          ,
          <year>2021</year>
          , Proceedings, Springer,
          <year>2021</year>
          , pp.
          <fpage>136</fpage>
          -
          <lpage>151</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C.</given-names>
            <surname>Forresi</surname>
          </string-name>
          , E. Gallinucci,
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. B.</given-names>
            <surname>Hamadou</surname>
          </string-name>
          ,
          <article-title>A dataspace-based framework for olap analyses in a high-variety multistore</article-title>
          ,
          <source>The VLDB Journal</source>
          (
          <year>2021</year>
          )
          <fpage>1</fpage>
          -
          <lpage>24</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Forresi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Francia</surname>
          </string-name>
          , E. Gallinucci,
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <article-title>Cost-based optimization of multistore query plans</article-title>
          ,
          <source>Information Systems Frontiers</source>
          (
          <year>2022</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Franklin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Y.</given-names>
            <surname>Halevy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Maier</surname>
          </string-name>
          ,
          <article-title>From databases to dataspaces: a new abstraction for information management</article-title>
          ,
          <source>SIGMOD Record 34</source>
          (
          <year>2005</year>
          )
          <fpage>27</fpage>
          -
          <lpage>33</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Jefery</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Franklin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Y.</given-names>
            <surname>Halevy</surname>
          </string-name>
          ,
          <article-title>Pay-as-you-go user feedback for dataspace systems</article-title>
          ,
          <source>in: 2008 ACM SIGMOD Int. Conf. on Management of Data, ACM</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>847</fpage>
          -
          <lpage>860</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Maio</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. Rizzi,</surname>
          </string-name>
          <article-title>The dimensional fact model: A conceptual model for data warehouses</article-title>
          ,
          <source>Int. J. Cooperative Inf. Syst</source>
          .
          <volume>7</volume>
          (
          <year>1998</year>
          )
          <fpage>215</fpage>
          -
          <lpage>247</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>L.</given-names>
            <surname>Baldacci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lombardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Sami</surname>
          </string-name>
          ,
          <article-title>Natural gas consumption forecasting for anomaly detection</article-title>
          ,
          <source>Expert systems with applications 62</source>
          (
          <year>2016</year>
          )
          <fpage>190</fpage>
          -
          <lpage>201</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>C.</given-names>
            <surname>Loader</surname>
          </string-name>
          ,
          <article-title>Local regression</article-title>
          and likelihood, Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Graziani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rizzi</surname>
          </string-name>
          ,
          <article-title>An active learning approach to build adaptive cost models for web services</article-title>
          ,
          <source>Data Knowl. Eng</source>
          .
          <volume>119</volume>
          (
          <year>2019</year>
          )
          <fpage>89</fpage>
          -
          <lpage>104</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>R.</given-names>
            <surname>Tan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Chirkova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Gadepally</surname>
          </string-name>
          , T. G. Mattson,
          <article-title>Enabling query processing across heterogeneous data models: A survey</article-title>
          ,
          <source>in: 2017 IEEE Int. Conf. on Big Data, IEEE Computer Society</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>3211</fpage>
          -
          <lpage>3220</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>V.</given-names>
            <surname>Gadepally</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Duggan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Elmore</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Haynes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kepner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Madden</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mattson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Stonebraker</surname>
          </string-name>
          ,
          <article-title>The bigdawg polystore system and architecture</article-title>
          ,
          <source>in: 2016 IEEE High Performance Extreme Computing Conference, HPEC</source>
          <year>2016</year>
          ,
          <article-title>Waltham</article-title>
          , MA, USA,
          <year>2016</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R.</given-names>
            <surname>Bonaque</surname>
          </string-name>
          , et al.,
          <article-title>Mixed-instance querying: a lightweight integration architecture for data journalism</article-title>
          ,
          <source>Proc. VLDB Endow</source>
          .
          <volume>9</volume>
          (
          <year>2016</year>
          )
          <fpage>1513</fpage>
          -
          <lpage>1516</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Kolev</surname>
          </string-name>
          , et al.,
          <article-title>Cloudmdsql: querying heterogeneous cloud data stores with a common language</article-title>
          ,
          <source>Distributed and Parallel Databases</source>
          <volume>34</volume>
          (
          <year>2016</year>
          )
          <fpage>463</fpage>
          -
          <lpage>503</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bleiholder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <article-title>Data fusion</article-title>
          ,
          <source>ACM Comput. Surv</source>
          .
          <volume>41</volume>
          (
          <year>2008</year>
          ) 1:
          <fpage>1</fpage>
          -
          <lpage>1</lpage>
          :
          <fpage>41</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Maccioni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Torlone</surname>
          </string-name>
          ,
          <article-title>Augmented access for querying and exploring a polystore</article-title>
          ,
          <source>in: 34th IEEE Int. Conf. on Data Engineering, ICDE</source>
          <year>2018</year>
          , IEEE Computer Society,
          <year>2018</year>
          , pp.
          <fpage>77</fpage>
          -
          <lpage>88</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>E.</given-names>
            <surname>Gallinucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rizzi</surname>
          </string-name>
          ,
          <article-title>Approximate OLAP of document-oriented databases: A variety-aware approach</article-title>
          , Inf. Syst.
          <volume>85</volume>
          (
          <year>2019</year>
          )
          <fpage>114</fpage>
          -
          <lpage>130</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>J.</given-names>
            <surname>Duggan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Elmore</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Stonebraker</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>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kepner</surname>
          </string-name>
          , S. Madden,
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>