<!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>Benchmark Proposal for Multi-Tenancy in the Database Layer</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Philipp Neugebauer</string-name>
          <email>philipp.neugebauer@innoq.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christian Maier</string-name>
          <email>christian.maier@uni-bamberg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Bumann</string-name>
          <email>a.bumann@nubibase.de</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Information Systems and Services, University of Bamberg</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>innoQ Deutschland GmbH</institution>
          ,
          <addr-line>Kreuzstraße 16, D-80331 München</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>nubibase GmbH</institution>
          ,
          <addr-line>Silbersteinstraße 14, D-97424 Schweinfurt</addr-line>
        </aff>
      </contrib-group>
      <fpage>71</fpage>
      <lpage>78</lpage>
      <abstract>
        <p>The cloud is often utilized with the hope to increase the IT budget efficiency. The cloud service model Software as a Service in combination with its key feature multi-tenancy shines here brightly, but its adoption is complicated by the multiplicity of possible solutions. In detail, multiple multi-tenancy implementations meet many possible database systems requiring a reliable comparison to find the optimal solution. This article briefly explains multi-tenancy, its benefits and implementations. It also indicates through the results of a literature review that no benchmark for multi-tenancy implementations exists. It proposes and describes a benchmark and its setup to gain reliable results of the disk space usage and performance.</p>
      </abstract>
      <kwd-group>
        <kwd>cloud</kwd>
        <kwd>SaaS</kwd>
        <kwd>multi-tenancy</kwd>
        <kwd>database</kwd>
        <kwd>benchmark</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        An increasing number of companies try to address their business challenges and
opportunities with their IT budget more efficiently in response to growing IT
budgets or IT budget constraints.1,2 Restrictively, big business solutions and
services do not match with requirements and also budgets of small and
middlesized companies [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. A possible solution to the problem of small and middle-sized
companies is provided by the cloud, especially Software as a Service (SaaS) in
combination with multi-tenancy. The application of multi-tenancy enables the
better utilization of hardware and economies of scale for IT service providers
through the pooling of more tenants on a single server [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ] which allows them
to provide their services for a smaller price [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Small and middle-sized companies
can then optimize or even reduce their IT budget through the adoption of these
services.
      </p>
      <p>
        Multi-tenancy is the primary feature of SaaS and enables the handling of
multiple independent tenants in a single instance on a single hardware and
software infrastructure while allowing individual configuration to the tenant’s
needs [
        <xref ref-type="bibr" rid="ref3 ref4 ref5">3, 4, 5</xref>
        ]. It captivates by the combination of efficiency improvement and
the enabling of customization which provides a broad range of application targets.
The most efficient application of multi-tenancy can improve the served number
of tenants from about a dozen to more than hundred per machine and therefore
enable huge cost savings [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ].
      </p>
      <p>
        Companies have different possibilities to utilize multi-tenancy and thereby to
improve their IT budget efficiency. Various approaches have been proposed in a
lot of articles [
        <xref ref-type="bibr" rid="ref1 ref5 ref7 ref8 ref9">1, 5, 7, 8, 9</xref>
        ] for the adoption of multi-tenancy in the database layer
proving an academic interest in the research field. Thus, diverse implementations
for different database solutions are available, but even though some of them have
been tested, contractionary results have been released which exacerbates the
solution selection [
        <xref ref-type="bibr" rid="ref6 ref8 ref9">6, 8, 9</xref>
        ]. Unfortunately, neither a guideline for the selection of
the best matching multi-tenancy implementation nor a summary of all
implementations exists to simplify the identification of possible solutions. The development
of such a guideline requires a reliable benchmark with criterias like disk space
usage and performance to test and compare the multi-tenancy approaches to
enable the selection of the best matching solution for the scenario.
      </p>
      <p>This article proposes the setup for the benchmark so that the guideline for the
selection of multi-tenancy approaches can be created. It covers first the different
multi-tenancy implementations and reasons why the existing work cannot be
used for the guideline development. In the following, the ideas for the settings
and configuration of the benchmark for multi-tenancy approaches are explained.
Lastly, the article is concluded and future work areas and plans are presented.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Multi-Tenancy Background and Related Work</title>
      <p>This section briefly explains the three different levels of multi-tenancy in the
database layer: separate databases, shared database and shared table approaches.
It approaches their implementation opportunities and lastly justifies the required
creation of a new benchmark.</p>
      <p>
        Separate databases provide each tenant its own database instance that is
adaptable to their needs but multiple tenants share the same machine [
        <xref ref-type="bibr" rid="ref10 ref11 ref6">6, 10, 11</xref>
        ].
The shared database provides each tenant its own tables, but all share the same
database process [
        <xref ref-type="bibr" rid="ref11 ref7">7, 11</xref>
        ]. Lastly, shared table approaches [
        <xref ref-type="bibr" rid="ref11 ref7">7, 11</xref>
        ] preserve data
from many tenants in the same tables and each row is marked with a tenant id
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Unlike separate databases and shared database, they represent a category
of various implementations most efficiently addressing the problem of
multitenancy adoption. They avoid data replication, support client customizations and
encourage business changes while serving the highest number of tenants through
their lowest overhead [
        <xref ref-type="bibr" rid="ref10 ref6">6, 10</xref>
        ]. On the downside, the solutions often turn the
database into a dumb data repository and many features like query optimization
or indexes must be reimplemented [
        <xref ref-type="bibr" rid="ref11 ref12">11, 12</xref>
        ]. Additionally, the security must be
handled outside the database and generic columns can only used if sparse tables
are handled efficiently [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>In summary, 22 shared table approaches were identified in the literature
review. The standardized benchmarking of shared table approaches is complicated
by the required adaptions of the initial benchmark schema to each approach
because they utilize custom schemas. Additionally, the merge of the database
tables of all tenants requires an extendable approach schema and therefore the
extensibility and the efficiency of its implementation must be determined. The
different approach schemas may also vary about the efficiency of their disk space
usage so that the disk space usage must be analyzed specifically for shared table
multi-tenancy approaches. Lastly, it must be checked if the approaches can be
implemented in the specific database system or must be excluded for some or all
systems. The relational database systems to be benchmarked must be added to
the complexity of the missing overview, resulting in a non trivial n to n problem.</p>
      <p>
        All identified and implementable approaches need to be comprehensibly
and repeatably compared by their disk space usage and performance to gain
the information for the determination of the optimal implementation. Such a
test environment is realized in a benchmark which are created in the articles
of Krebs et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and Kiefer et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] but they lack the full support for
shared table approaches. Krebs et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] developed an extension for the in the
meantime as obsolete marked TPC-W3 and is only able to test the very simple
basic table approach. The MulTe framework designed by Kiefer et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] can
only examine separate databases and shared databases. Benchmark standards of
the Transaction Processing Performance Council (TPC)4, a community which
provides a wide range of database benchmarks to enable effective performance
comparisons between them, cannot be applied to shared table multi-tenancy
approaches since they support only single tenant databases and therefore provide
no tenant configurable schema. Hui et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] based their test settings on the
TPCC and TPC-H frameworks but just briefly described them and also optimized
them to their test scenario. However, some of their test specifications inspired this
proposed benchmark and were adopted. In conclusion, no existing benchmark
can be utilized for the testing of shared table multi-tenancy scenarios.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Benchmark Proposal</title>
      <p>This section covers the proposed benchmark. The complete benchmark must be
automatically executable and easily extendable to cover new shared table
approaches to finally develop guidelines for the simple selection and implementation
of the best matching approach. In the beginning, only the shared table approaches
are addressed due to their best cost efficiency. First, the benchmark background
is approached by the influences to this proposal. Second, the general setup of the
benchmark is explained. Third, the test environment is specified in more detail.
The settings for result measurement conclude the section.</p>
      <p>
        Existing research of Hui et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and Aulbach et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] inspired the setup of
this benchmark. Hui et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] contributed the foundation of TPC-H, concurrent
access queries and the measurement of disk space usage and performance, while
3 http://www.tpc.org/tpcw/
4 http://www.tpc.org/
      </p>
      <p>
        Aulbach et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] also considered the concurrency aspect and partially contributed
together with Heng et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and Yaish et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] the query statement numbers.
TPC-H was selected as benchmark base because it aims on concurrent data
manipulation and data of large volumes and broad industry-wide relevance
which are the characteristics of cloud scenarios. Moreover, the service for many
customers leads to big data volumes and requires the handling of concurrent
accesses. Since TPC-H approaches normal business requirements, has an
industrywide relevance and is easily implementable in relational databases, it also provides
a fair benchmark base. The selection is further justified by Kiefer et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
who also based their benchmark on TPC-H. TPC frameworks are currently not
applicable to multi-tenancy approaches as already stated, so that only general
guidelines of TPC-H could be adopted and were then applied to the shared table
context: In the beginning, the database tables are created. Afterwards, the data
is generated and lastly the test queries are executed.
      </p>
      <p>Mapping these guidelines to the multi-tenancy context results in the initial
setup of all tenants’ general schema. The test data is generated and populated
into the database to ensure the same base data for all tested approaches to avoid
any result biasing. In the next step, the specific approach tables regarding the
tenants’ requirements are created and the base data is mapped into them. In the
last step, the concurrent benchmark queries are executed and benchmarked.</p>
      <p>The schema is specifically chosen for the testing of multi-tenancy and
comprises only the three tables orders, lineitems and parts to simulate multi-tenant
characteristics. The schema of TPC-H is therefore simplified and to multi-tenancy
adapted to focus on the determination of the performance in terms of response
time allowing for the extensibility of the approaches. The targeted scenario is
a service provider who serves multiple small clients by hosting and managing
their data and aims for the long-tail of business applications. It does not change
the stored data volume of the big single tenant application of the TPC-H but
splits them between between many tenants. While only the shared attributes of
all tenant groups are displayed in Figure 2, the schemas of the other groups are
enriched for their use cases. The benchmark scenario will contain 500 tenants,
each having ordered 3,000 times with four lineitems. The catalog contains 187,500
parts so that the benchmark will run against more than 7.5 million records in
total. The tenant number is based on the assumption that the usage of shared
table approaches must provide a significant increase of served tenants to warrant
the effort for its adoption. The other ratios are taken from the TPC-H benchmark
whose selection is justified in section 2. The lineitem table is used to regard the
different tenant requirements and has a customized column length for each tenant
group. Five tenant groups are introduced in the tests meeting different business
requirements which results in varying table column numbers. Therefore, also
different ratios of these groups will be considered to represent multiple business
scenarios. The first group uses only a very small subset of the possible attributes,
the second employs just slightly less attributes than the third and normal group
which utilizes the general schema. The fourth group lacks a bit more attributes
than the normal group and the fifth group utilizes much more attributes than all
other groups to satisfy their business requirements.</p>
      <p>
        The measurement and resulting metrics are conducted with the execution of
SELECT, INSERT, UPDATE and DELETE queries. SELECT queries must be
more often executed to provide helpful results leading to 100 and 1,000 record
statements, while INSERT, UPDATE, DELETE queries allow already good
comparisons at 50 and 100 records. As already stated, these query numbers were
already used and contributed by Heng et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Aulbach et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and Yaish
et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and are therefore considered a fair benchmark base. Specifically, Heng
et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] run 1,000 record SELECTs, Aulbach et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] executed 50 and 1,000
record SELECT queries as well as 50 INSERT and 100 UPDATE statements,
while Yaish et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] performed 100 record queries. The benchmark queries
are inspired by the queries of TPC-H but primary focus on the performance
testing of the characteristics of shared table approaches or multi-tenancy instead
of specific business logic. Therefore, the queries of TPC-H were analyzed and their
characteristics like JOINs and aggregations taken to model these benchmark’s
queries which are listed below. In consequence, queries must be executed on both
the attributes shared by all tenant groups and custom extension attributes since
they are a key feature for the enabling of multi-tenancy and their impact needs
to be analyzed. Same and different table queries must be executed to reveal the
1
1
2
3
1
2
3
1
load balancing capability of the multi-tenancy approaches. The seven benchmark
queries are in the following introduced and reasoned for their capability to
expose the support for specific multi-tenancy features. Placeholders like x, y or
custom_column will be replaced by real values in the executed queries, but are
used to exemplify the targets of the queries.
      </p>
      <p>Query 1: All line items of a specific tenant with a custom column value of y
Reason: Same table query aiming at extension support and specifically index
support for extension fields</p>
      <p>SELECT ∗ FROM l i n e i t e m s WHERE tenant_id = x AND</p>
      <p>custom_column = y
Query 2: All line items with summed prices, grouped by the order of a tenant
and ordered by their sum and quantity
Reason: Different table query to reveal aggregation and join efficiency and load
balancing capabilities</p>
      <p>SELECT o r d e r s . i d as order_id , o r d e r s . tenant_id , o r d e r s .
t o t a l _ p r i c e , sum ( l i n e i t e m s . p r i c e ) as l i p , sum (
l i n e i t e m s . q u a n t i t y ) as l i q FROM o r d e r s , l i n e i t e m s
WHERE o r d e r s . i d = l i n e i t e m s . o r d e r s _ i d AND o r d e r s .</p>
      <p>tenant_id = l i n e i t e m s . tenant_id</p>
      <p>GROUP BY o r d e r s . i d ORDER BY l i p DESC, l i q DESC
Query 3: All parts that are used by an order and fulfill a custom value comparison
ordered by their usage count
Reason: Different table query to determine aggregation and index support as
well as load balancing capability and extension field efficiency</p>
      <sec id="sec-3-1">
        <title>SELECT p a r t s . id , COUNT( o r d e r s . i d ) as oc FROM p a r t s ,</title>
        <p>o r d e r s , l i n e i t e m s
WHERE o r d e r s . i d = l i n e i t e m s . o r d e r s _ i d AND p a r t s . i d =
l i n e i t e m s . p a r t s _ i d AND custom_column &gt; x</p>
        <p>GROUP BY p a r t s . i d ORDER BY oc DESC</p>
        <sec id="sec-3-1-1">
          <title>Query 4: All closed orders of the last year filtered through LIKE Reason: Same table query for complex clause and index support</title>
          <p>SELECT ∗ FROM o r d e r s WHERE o r d e r s . date &gt;
current_timestamp − i n t e r v a l ’ 1 y e a r ’ AND o r d e r s .
s t a t u s LIKE ’ c l o\% ’</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Query 5: Inserting new orders and line items Reason: Different table query for determining load balancing capability</title>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>INSERT INTO o r d e r s VALUES . . . INSERT INTO l i n e i t e m s VALUES . . .</title>
        <sec id="sec-3-2-1">
          <title>Query 6: Updating orders and line items Reason: Different table query for determining load balancing capability</title>
          <p>UPDATE o r d e r s SET colum=new_value WHERE tenant_id = x
UPDATE l i n e i t e m s SET colum=new_value WHERE tenant_id = x</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>Query 7: Delete parts of a specific tenant Reason: Same table query for performance determination</title>
          <p>1</p>
          <p>DELETE FROM p a r t s WHERE tenant_id = x</p>
          <p>A practically relevant SaaS scenario requires additionally the concurrent
execution of tenants’ queries which is met through queries of a configurable
number of tenants considering the tenant groups’ ratio. The minimum concurrent
load will be 10% of the tenants and can be increased up to 50%. As result, the
strength and weaknesses of the approaches regarding the disk space usage as well
as the response time of reads and writes can be demonstrated and analyzed.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>
        A benchmark of multi-tenancy approaches and its results enable the creation of a
guideline which simplifies the decision to adopt the best approach and thus avoids
costly wrong decisions. This article indicates through the results of a literature
review that no benchmark of multi-tenancy implementations exists. Therefore,
it proposed the setup for a reliable and useful multi-tenancy benchmark for
shared table approaches to close the identified information gap. The benchmark
is inspired by existing work and seized their ideas for a general shared table
benchmarking scenario to ensure meaningful results for all identified approaches
in relevant scenarios. Future research does not need to collect basic information
about multi-tenancy anymore and can either extend the proposed benchmark or
start its development. The development focuses on relational database systems
like MySQL and PostgreSQL, but the support for NoSQL databases is considered
as a possible and useful option because the latter enables the utilization of new
technologies which cannot be realized in relational databases. The benchmark
will be theoretically tested against the findings of Sim et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and Huppler [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
Beside the inclusion of separate databases and shared databases, the benchmark
could also consider the handling of metadata and middleware in future to take
these effects into account.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>O.</given-names>
            <surname>Schiller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schiller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Brodt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Mitschang</surname>
          </string-name>
          . “
          <article-title>Native Support of Multi-tenancy in RDBMS for Software as a Service”</article-title>
          .
          <source>In: Proceedings of the 14th International Conference on Extending Database Technology. EDBT/ICDT '11</source>
          .
          <string-name>
            <surname>Uppsala</surname>
          </string-name>
          , Sweden: ACM,
          <year>2011</year>
          , pp.
          <fpage>117</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Hui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Li</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhou</surname>
          </string-name>
          . “
          <article-title>Supporting Database Applications as a Service”</article-title>
          .
          <source>In:Data Engineering</source>
          ,
          <year>2009</year>
          .
          <source>ICDE '09. IEEE 25th International Conference on. 2009</source>
          , pp.
          <fpage>832</fpage>
          -
          <lpage>843</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R.</given-names>
            <surname>Krebs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Wert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Kounev.</surname>
          </string-name>
          <article-title>“Multi-tenancy Performance Benchmark for Web Application Platforms”</article-title>
          .
          <source>In: Proceedings of the 13th International Conference on Web Engineering. ICWE'13</source>
          .
          <string-name>
            <surname>Aalborg</surname>
          </string-name>
          , Denmark: SpringerVerlag,
          <year>2013</year>
          , pp.
          <fpage>424</fpage>
          -
          <lpage>438</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kwok</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Lam</surname>
          </string-name>
          . “
          <string-name>
            <given-names>A Software</given-names>
            <surname>As</surname>
          </string-name>
          <article-title>a Service with Multitenancy Support for an Electronic Contract Management Application”</article-title>
          .
          <source>In: Proceedings of the 2008 IEEE International Conference on Services Computing - Volume 2. SCC '08</source>
          . Washington, DC, USA: IEEE Computer Society,
          <year>2008</year>
          , pp.
          <fpage>179</fpage>
          -
          <lpage>186</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Yaish</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Goyal</surname>
          </string-name>
          , and
          <string-name>
            <surname>G. Feuerlicht. “</surname>
          </string-name>
          <article-title>An Elastic Multi-tenant Database Schema for Software as a Service”</article-title>
          .
          <source>In:IEEE Ninth International Conference on Dependable, Autonomic and Secure Computing</source>
          ,
          <string-name>
            <surname>DASC</surname>
          </string-name>
          <year>2011</year>
          ,
          <volume>12</volume>
          -
          <fpage>14</fpage>
          December 2011, Sydney, Australia. IEEE,
          <year>2011</year>
          , pp.
          <fpage>737</fpage>
          -
          <lpage>743</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L.</given-names>
            <surname>Heng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Dan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Xiaohong</surname>
          </string-name>
          . “
          <article-title>Survey on Multi-Tenant Data Architecture for SaaS”</article-title>
          .
          <source>In: International Journal of Computer Science Issues</source>
          . Vol.
          <volume>9</volume>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W.</given-names>
            <surname>Lehner</surname>
          </string-name>
          and K.-U. Sattler. “
          <article-title>Virtualization for Data Management Services”</article-title>
          . English. In:
          <article-title>Web-Scale Data Management for the Cloud</article-title>
          . Springer New York,
          <year>2013</year>
          , pp.
          <fpage>13</fpage>
          -
          <lpage>58</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Aulbach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Jacobs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kemper</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Seibold</surname>
          </string-name>
          .
          <article-title>“A Comparison of Flexible Schemas for Software As a Service”</article-title>
          .
          <source>In: Proceedings of the 2009 ACM SIGMOD International Conference on Management of Data. SIGMOD '09</source>
          . Providence, Rhode Island, USA: ACM,
          <year>2009</year>
          , pp.
          <fpage>881</fpage>
          -
          <lpage>888</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Pippal</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Kushwaha</surname>
          </string-name>
          .
          <article-title>“A Simple, Adaptable and Efficient Heterogeneous Multi-tenant Database Architecture for ad hoc Cloud”</article-title>
          .
          <source>English. In: Journal of Cloud Computing 2.1</source>
          ,
          <issue>5</issue>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>F.</given-names>
            <surname>Chong</surname>
          </string-name>
          , G. Carraro, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Wolter</surname>
          </string-name>
          <article-title>. Multi-Tenant Data Architecture</article-title>
          .
          <source>MSDN Library</source>
          , Microsoft Corporation.
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>D.</given-names>
            <surname>Jacobs</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Aulbach</surname>
          </string-name>
          . “
          <article-title>Ruminations on Multi-Tenant Databases”</article-title>
          .
          <source>In: BTW Proceedings</source>
          , volume
          <volume>103</volume>
          <source>of LNI. GI</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>514</fpage>
          -
          <lpage>521</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Aulbach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Seibold</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Jacobs</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Kemper</surname>
          </string-name>
          . “
          <article-title>Extensibility and Data Sharing in Evolving Multi-tenant Databases”</article-title>
          .
          <source>In: Proceedings of the 27th International Conference on Data Engineering, ICDE 2011, April 11-16</source>
          ,
          <year>2011</year>
          , Hannover, Germany. Ed. by
          <string-name>
            <given-names>S.</given-names>
            <surname>Abiteboul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Böhm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Koch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Tan</surname>
          </string-name>
          . IEEE Computer Society,
          <year>2011</year>
          , pp.
          <fpage>99</fpage>
          -
          <lpage>110</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kiefer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schlegel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Lehner</surname>
          </string-name>
          . “
          <article-title>MulTe: A Multi-Tenancy Database Benchmark Framework”</article-title>
          . In:
          <article-title>Selected Topics in Performance Evaluation and Benchmarking</article-title>
          . Vol.
          <volume>7755</volume>
          . Lecture Notes in Computer Science. Springer Berlin Heidelberg,
          <year>2013</year>
          , pp.
          <fpage>92</fpage>
          -
          <lpage>107</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>H.</given-names>
            <surname>Yaish</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Goyal</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Feuerlicht.</surname>
          </string-name>
          “
          <article-title>A Proxy Service for Multi-tenant Elastic Extension Tables”</article-title>
          . In:T.
          <article-title>Large-Scale Data-</article-title>
          and
          <string-name>
            <surname>Knowledge-Centered</surname>
            <given-names>Systems</given-names>
          </string-name>
          9070 (
          <year>2015</year>
          ), pp.
          <fpage>1</fpage>
          -
          <lpage>33</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S. E.</given-names>
            <surname>Sim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Easterbrook</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. C.</given-names>
            <surname>Holt</surname>
          </string-name>
          . “
          <article-title>Using Benchmarking to Advance Research: A Challenge to Software Engineering”</article-title>
          .
          <source>In: Proceedings of the 25th International Conference on Software Engineering. IEEE Computer Society</source>
          .
          <year>2003</year>
          , pp.
          <fpage>74</fpage>
          -
          <lpage>83</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>K.</given-names>
            <surname>Huppler</surname>
          </string-name>
          . “
          <article-title>The Art of Building a Good Benchmark”</article-title>
          .
          <source>In:Performance Evaluation and Benchmarking</source>
          . Springer,
          <year>2009</year>
          , pp.
          <fpage>18</fpage>
          -
          <lpage>30</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>