Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk...

21
Universität Leipzig Fakultät für Mathematik und Informatik Institut für Informatik Professur Datenbanksysteme Seminararbeit Multi-Tenant-Datenbanken für SaaS (Schema Management) Betreuerin: Sabine Maßmann Bearbeiter: Hendrik Kerkhoff Nürnberger Str. 20 04103 Leipzig Matr.-Nr: 1501624 MSc. 1. Semester Eingereicht am: 24.01.2010

Transcript of Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk...

Page 1: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

Universität Leipzig

Fakultät für Mathematik und Informatik

Institut für Informatik

Professur Datenbanksysteme

Seminararbeit

Multi-Tenant-Datenbanken für SaaS

(Schema Management)

Betreuerin: Sabine Maßmann

Bearbeiter: Hendrik Kerkhoff

Nürnberger Str. 20

04103 Leipzig

Matr.-Nr: 1501624

MSc. 1. Semester

Eingereicht am: 24.01.2010

Page 2: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

Inhaltsverzeichnis I

Inhaltsverzeichnis

Abkürzungsverzeichnis II

1 Einleitung 1

1.1 Ziel der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Grundlagen 3

2.1 Software as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Anforderungen an Multi-Tenancy Datenbanken . . . . . . . . . . . . . 3

2.3 Einsatzszenarien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Multi-Tenancy mit aktuellen Datenbanken 6

3.1 Shared Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Shared Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3 Shared Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3.1 Private Table Layout . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3.2 Basic Table Layout . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3.3 Extension Table Layout . . . . . . . . . . . . . . . . . . . . . . 10

3.3.4 Universal Table Layout . . . . . . . . . . . . . . . . . . . . . . . 10

3.3.5 Pivot Table Layout . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.6 Chunk Table Layout . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.7 Chunk Folding . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.4 Beispiel: force.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Ausblick 15

Abbildungsverzeichnis III

Verzeichnis der Listings IV

Literaturverzeichnis V

Page 3: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

Inhaltsverzeichnis II

Abkürzungsverzeichnis

CRM . . . . . . . . . . Customer Relationship Management

DBS . . . . . . . . . . . Datenbanksystem

ERP . . . . . . . . . . . Enterprise Resource Planning

ID . . . . . . . . . . . . . Identifikationsnummer

QTL . . . . . . . . . . . Query Transformation Layer

SaaS . . . . . . . . . . . Software as a Service

SLA . . . . . . . . . . . Service Level Agreements

TCO . . . . . . . . . . . Total Cost of Ownerchip

Page 4: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

1 Einleitung 1

1 Einleitung

In seinem Blog1 stellt Robert Warfield die These auf, dass Unternehmen durch den

Einsatz von Software as a Service im Vergleich zu klassischer Software bis zu 16% ih-

rer Kosten einsparen können [War07]. Dies wird durch Mehrmandantenfähigkeit (engl.

Multi-Tenancy) erreicht: Mehrere Kunden nutzen gemeinsam ein Softwaresystem, wel-

ches von einem Serviceanbieter bereitgestellt wird. Hierdurch sinken die Kosten, die

für das Betreiben notwendig sind.

1.1 Ziel der Arbeit

Diese Arbeit soll Möglichkeiten zeigen und erläutern, wie Multi-Tenancy Datenbanken

implementiert werden können. Da für den performanten und somit kostensparenden

Betrieb einer Mehrmandanten-Datenbank eine möglichst hohe Konsolidierung (“Ver-

einheitlichung”) benötigt wird, werden verschiedene Möglichkeiten gezeigt, diese zu

erreichen, ohne dabei auf flexibele Datenbankschemas für die Mandanten verzichten zu

müssen.

1.2 Aufbau der Arbeit

In Kapitel 2 werden die Grundlagen zu Software as a Service erklärt und die An-

forderungen an Multi-Tenancy-Datenbanken erläutert sowie mögliche Einsatzszenari-

en skizziert. Kapitel 3 beleuchtet die drei Grundmöglichkeiten für den Aufbau einer

Mehrmandantendatenbank. Hierbei liegt der Schwerpunkt auf den verschiedenen An-

sätzen zum Schema-Mapping in der Shared Table-Methode. Zudem wird anhand der

Plattform Force.com die Umsetzung und Optimierung in der Praxis gezeigt.

1http://smoothspan.wordpress.com/

Page 5: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

1 Einleitung 2

Im Ausblick (Kapitel 4) werden Methoden und Techniken vorgestellt, mit denen For-

scher der Technischen Universität München sowie der SAP AG die Umsetzung einer

reinen Multi-Tenancy Datenbank planen.

Page 6: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

2 Grundlagen 3

2 Grundlagen

In diesem Kapitel wird zunächst das Konzept von Software as a Service erläutert. Im

Anschluss werden Anforderungen an eine Multi-Tenancy Datenbank für Software as a

Service beschrieben sowie mögliche Einsatzszenarien beschrieben.

2.1 Software as a Service

Software as a Service (SaaS) ist ein Geschäftsmodell, in dem Software nicht als Produkt

an Kunden verkauft wird, sondern als Dienstleistung für viele Kunden bereitgestellt

wird [BHS08, S. 88]. Ziel hierbei ist es, die Total Cost of Ownerchip (TCO) im Vergleich

zu den Kosten von “on-premises” Lösungen, also vom Kunden selbst betriebene Softwa-

re, zu senken [AJKS09, S. 881]. Um dieses zu erreichen wird die Software vielen Kunden

zur Verfügung gestellt, was dazu führt, dass Kosten wie Thirdparty-Softwarelizenzen,

Hardwarekosten und Kosten für die Administration auf die Mandanten verteilt werden

und somit im Durchschnitt sinken.

Bei der Nutzung von SaaS sind häufig Service Level Agreements (SLA) Bestandteil

der Verträge. In diesen werden nicht-funktionale Anforderungen wie die Kosten für die

Nutung der Services sowie Anforderungen an Verfügbarkeit und Performanz festgelegt

[Pap08].

2.2 Anforderungen an Multi-Tenancy Datenbanken

Bob Warfield, Mitgründer von SmoothSpan und Author von mehreren Artikeln zum

Thema SaaS, leitet in einem seiner Blog-Artikel eine Definition für Multi-Tenancy

her:

“Multitenancy is the ability to run multiple customers on a single soft-

ware instance installed on multiple servers to increase resource utilization

Page 7: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

2 Grundlagen 4

by allowing load balancing among tenants, and to reduce operational com-

plexity and cost in managing the software to deliver the service. Tenants

on a multitenant system can operate as though they have an instance of

the software entirely to themselves which is completely secure and insulated

from any impact by other tenants.” [War07]

Diese Definition beschreibt Multi-Tenancy Systeme aus Sicht von Serviceanbieter sowie

der Mandanten. Die Mandaten werden in [AJPK09] weiter unterschieden zwischen

Kunde und Anwendungsentwickler. Für den Kunden sind “hohe Verfügbarkeit bei hoher

Datensicherheit” zentrale Aspekte eines Multi-Tenancy Systems. Die Anforderungen

der Anwendungsentwickler sind “einfache, aber mächtige Funktionsmodelle”.

Eine gemeinsame Instanz wächst aus der Anforderung heraus, dass die operationale

Komplexität minimiert werden soll. Da der Ressourcenbedarf einzelner Instanzen

auf Shared Machine Systemen zu hoch ist, wird gefordert, dass es eine gemeinsame

Datenbankinstanz für mehrere Mandanten gibt.

Isolation der Mandanten ist notwendig für die geforderte Sicherheit und dient der

Herstellung von Transparenz für die Mandanten. Für die Kunden soll das Multi-

Tenancy System aussehen, als hätten sie eine eigene Datenbankinstanz.

Schemaflexibilität muss gewährleistet werden. Insbesondere ist es notwendig, Sche-

maänderungen während der Laufzeit durchzuführen, da aufgrund der Transpa-

renzforderung für andere Mandanten das Gesamtsystem online bleiben muss. Je-

doch dürfen Änderungen die Performanz des Systems nicht beeinflussen. Um

dieses zu gewährleisten müssen gegebenenfalls temporäre Tabellen mit dem neu-

en Schema erstellt werden und zu einem Zeitpunkt mit niedriger Last permanent

einbunden werden.

Hohe Verfügbarkeit ist für das Anwendungsgebiet von SaaS notwendige Bedingung,

da im Rahmen von Service Level Agreements meist Vereinbarungen über die

Verfügbarkeit getroffen werden.

2.3 Einsatzszenarien

Durch die steigende Komplexität von Anwendungen sinkt die mögliche Konsolidierung

der Mandaten und somit die Anzahl der Mandanten, die durch ein Multi-Tenancy

System gehandhabt werden können [AGJ+08]. Einfache Software, wie E-Mail Plattfor-

Page 8: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

2 Grundlagen 5

men, bieten den Kunden keine oder nur sehr beschränkte Anpassungungen der Softwa-

re. Somit werden erweiterbare Datenstrukturen kaum benötigt und es reichen einfache

und einheitliche Schemas für die Nutzer der Software.

Enterprise Resource Planning (ERP) Systeme hingegen haben eine hohe Komplexität.

Es werden viele Erweiterungen und Anpassungen benötigt, um die Geschäftsprozesse

der Mandanten umzusetzen. Die benötigten Ressourcen, auch hinsichtlich der Lauf-

zeit von einzelnen Operationen, sind um ein Vielfaches höher, als das einer E-Mail-

Plattform. Dieser Zusammenhang ist in Abbildung 2.1 schematisch dargestellt.

Durch Rechner mit mehr Ressourcen ist es möglich, die Anzahl der Mandanten zu ver-

vielfachen. Daher ist der Einsatz von Clustern, welche relativ niedrige Hardwarekosten

haben, für den Einsatz für Multi-Tenancy Datenbanken sehr gut geeignet.

10.000 1.000 100 10

10.000 1.000 100

10.000 1.000

Blade-Server

Mainframe

E-Mail Kollaborations-plattformen

CRM ERP

Größe des Rechners

Komplexität der Anwendung

Abbildung 2.1: Mandanten pro Datenbank (in Anlehnung an [AGJ+08, S. 1196])

Hauptanwendung finden Multi-Tenancy Datenbanken bei Systemen mit mittlerer Kom-

plexität [AGJ+08, S. 1196]. Beispiele hierfür sind Kollaborationsplattformen wie Goo-

gle Docs2, Conject3 und Microsofts Office Live4. Die SaaS-Plattform salesforce.com5

(siehe hierzu auch Abschnitt 3.4) bietet Customer Relationship Management (CRM)

Software unter Verwendung von Multi-Tenancy Datenbanken an.

2http://docs.google.com/3http://www.conject.com/4http://www.officelive.com/5http://www.salesforce.com/

Page 9: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

3 Multi-Tenancy mit aktuellen Datenbanken 6

3 Multi-Tenancy mit aktuellen

Datenbanken

In diesem Kapitel werden drei Möglichkeiten vorgestellt, Mehrmandanten-Fähigkeit

in aktuelle Datenbanksysteme zu integrieren. Bei dem Shared Machine Ansatz erhält

jeder Mandant eine eigene Datenbankinstanz auf einem gemeinsamen Computer. Teilen

sich alle Mandaten eine Datenbankinstanz, wobei jeder Mandant sein eigenes Schema

erhält, spricht man von Shared Process.

Der Schwerpunkt dieses Kapitels liegt auf dem Shared Table Ansatz. In Abschnitt 3.3

werden mehrere Techniken vorgestellt, um das Teilen einer gemeinsamen Tabellenstruk-

tur für alle Mandanten zu ermöglichen.

Schema Schema Schema

DB DB DB

Computer / Cluster / Grid

Schema Schema Schema

DB

Computer / Cluster / Grid

Schema

DB

Computer / Cluster / Grid

MandantMandantMandantMandantMandantMandant MandantMandantMandant

a) Shared Machine b) Shared Process c) Shared Table

Ressourcenteilung

Isolation

Abbildung 3.1: Shared Machine, Shared Process und Shared Table (in Anlehnung an[JA07a, S. 1198])

Page 10: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

3 Multi-Tenancy mit aktuellen Datenbanken 7

3.1 Shared Machine

Jeder Mandant erhält bei Shared Machine seine eigene Datenbankinstanz auf einer ge-

meinsamen Maschine. Dieser Ansatz ist leicht umzusetzen, da hier keine Modifikationen

an dem Datenbanksystem vorgenommen werden müssen. Alle Mandanten sind bis auf

den gleichen Computer voneinander isoliert (vgl. Abbildung 3.1). Jedoch wirkt sich die-

se Isolation negativ auf die Ressourcennutzung aus: Jede Datenbankinstanz benötigt

Speicher für die Grundfunktionen. Aufgrund dieses hohen Speicherbedarfs skaliert der

Shared Machine Ansatz nur bis circa zehn Instanzen pro Rechner [JA07b]. Zudem kann

der Administrationsaufwand nicht gesenkt werden. Daher eignet sich dieser Ansatz nur

bedingt für die Verwendung als Multi-Tenancy Datenbank für SaaS.

3.2 Shared Process

Abbildung 3.1 b) zeigt schematisch den Shared Process Ansatz: Jeder Mandant erhält

hier ein eigenes Schema, welches auf einer gemeinsamen Datenbankinstanz läuft. Durch

die Möglichkeit der physisch getrennten Speicherung der Daten der einzelnen Mandan-

ten ist die Migration von Mandanten auf andere Server sowie die Implementierung von

Load-Balancing einfach zu realisieren [JA07b]. Die physische und logische Trennung

der Daten muss hierbei auf Anwendungsebene vorgenommen werden.

Durch die gemeinsame Nutzung einer Instanz wird lediglich für die verschiedenen Sche-

mas und Daten der Mandanten, jedoch nicht für mehrere Instanzen des Datenbank-

systems Speicher benötigt. Wenn die Anzahl der Tabellen pro Mandant auf wenige

beschränkt ist, skaliert dieser Ansatz für bis zu 1000 aktiver Mandanten pro Server

[JA07b]. Daher ist er gut für kleine und mittlere SaaS-Anwendungen geeignet.

3.3 Shared Table

Durch die Verwendung des Shared Table Ansatzes können die meisten Einsparungen

hinsichtlich Hardwarekosten gemacht werden. Jedoch müssen zusätzliche Erweiterun-

gen am Datenbanksystem implementiert werden: Da alle Mandanten die gleichen Ta-

bellen nutzen muss eine Zwischenschicht, die Query-Transformation-Schicht (QTL)

(siehe Abbildung 3.2) entwickelt werden [AGJ+08]. Diese sorgt dafür, dass für die

Mandanten das physische Schema transparent ist. Jeder Mandant hat ein eigenes, lo-

Page 11: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

3 Multi-Tenancy mit aktuellen Datenbanken 8

gisches Schema. Die QTL wandelt die Anfragen um und mappt diese auf das physische

Datenbankschema. Hierbei muss zudem sichergestellt werden, dass nur die Daten des

Mandanten angefragt werden. Die Ergebnisse werden dann wieder passend zu dem

logischen Schema des Mandanten umgewandelt.

Mandant 2

Mandant 1

Mandant 3

Software

logisches Schema

logisches Schema

logisches Schema

Query Transformation Schicht

physisches Schema

Datenbank

Software Software

Betriebsystem

Hardware

Abbildung 3.2: Query Transformation Layer (selbsterstellte Grafik)

Die Datenmigration für einzelne Mandanten ist nicht problemlos möglich, kann jedoch

auf Kosten zusätzlicher Abfragen durchgeführt werden.

Es gibt verschiedene Tabellen-Layouts, die den Shared Table Ansatz ermöglichen. Al-

le diese Ansätze sind hierbei Kompromisse zwischen Performanz, Funktionaliät und

Flexibilität.

In den folgenden Abschnitten werden diese Layouts dargestellt und erläutert. Die Bei-

spiele hierfür entstammen dem Paper [AGJ+08]. Es wurde ein Szenario mit drei Man-

danten gewählt. Der Mandant mit der ID 17 stammt aus dem Gesundheitsbereich,

Mandant 42 hat eine Erweiterung im Bereich der Automobilindustrie. Mandant 35 hat

keine Erweiterungen.

Page 12: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

3 Multi-Tenancy mit aktuellen Datenbanken 9

3.3.1 Private Table Layout

Beim Private Table Layout erhält jeder Mandant eigene Tabellen. Diese werden le-

diglich umbenannt, um zu gewährleisten das ein bestimmter Tabellenname nicht nur

von einem Mandanten genutzt werden kann. Hierzu werden in den Meta-Daten des

Datenbanksystems bzw. des Query-Transformation-Layers Mapping Daten gehalten.

Eine Konsolidierung der Mandanten findet hier nicht statt.

Abbildung 3.3 zeigt ein Schema mit privaten Tabellen. Die Tabellen sind hier nach

“Account” sowie der Mandanten-ID benannt. Wenn diese Tabellen für alle Mandan-

ten “Account” heißen, so muss bei der Abfrage ein Mapping von AccountXX <->

Account durchgeführt werden, wobei XX die Mandanten-ID repräsentiert.

Abbildung 3.3: Private Table Layout (aus [AGJ+08, S. 1198])

3.3.2 Basic Table Layout

Da sich die Mandanten alle Tabellen beim Basic Table Layout teilen, ist es nicht mög-

lich, mandantenspezifische Erweiterungen zu handhaben. Die Datensätze der jeweiligen

Mandanten werden durch eine hinzugefügte Tenant-Spalte unterschieden (siehe Abbil-

dung 3.4).

Das Basic Table Layout eignet sich lediglich für angebotene Software, in der keine

Erweiterungen benötigt werden, wie z.B. Webmail oder Blogs.

Account

17173542

1211

AcmeGumpBallBig

Tenant Aid Name

Abbildung 3.4: Basic Table Layout (selbsterstellte Grafik)

Page 13: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

3 Multi-Tenancy mit aktuellen Datenbanken 10

3.3.3 Extension Table Layout

Beim Extension Table Layout werden mandantenspezifische Erweiterungen in zusätzli-

chen Tabellen gespeichert. Alle Tabellen erhalten eine Spalte mit der ID des Mandanten

sowie eine Spalte durch welche der Datensatz identifiziert wird. Durch die Mandanten-

ID ist es möglich, dass mehrere Mandanten eine Erweiterung nutzen. Die Datensatz-IDs

sind notwendig, um die Tabellen durch einen JOIN zum logischen Datenbankschema

zurückzuführen. Abbildung 3.5 zeigt das Schema einer Extension Table.

Durch die Fragmentierung in mehrere Tabellen entstehen zusätzliche Schreib-/Lesezugriffe,

da nicht sichergestellt werden kann, dass zusammengehörige Reihen zusammenhängend

in den Speicher geschrieben werden.

1 SELECT Aid, Name, Hospital, Beds FROM2 (SELECT Aid, Name, Hospital, Beds3 FROM AccountExt a, HealthcareAccount h4 WHERE a.Row = h.Row AND a.Tenant = 17 AND h.Tenant = 17)5 AS Account17

Listing 3.1: Transformierte SQL Anfrage für Extension Table Layout

Listing 3.1 zeigt eine Anfrage an die Daten. Hierbei wird eine JOIN-Verknüpfung zwi-

schen den Tabellen AccountExt und Healthcare Account durchgeführt. Das Ergebnis

wird in einer Tabelle mit dem Namen “Account17” ausgegeben.

Abbildung 3.5: Extension Table Layout (aus [AGJ+08, S. 1198]))

3.3.4 Universal Table Layout

Das Univeral Table Layout hat nur eine Tabelle, in der sämtliche Daten gespeichert

werden. Um dies zu ermöglichen wird eine Table-Spalte eingeführt, mit der die ein-

zelnen Tabellen des logischen Schemas unterschieden werden. Die Daten werden beim

Universal Table Layout in Spalten mit einem universellem Datentyp, wie z.B. VAR-

CHAR, gespeichert.

Page 14: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

3 Multi-Tenancy mit aktuellen Datenbanken 11

Um Flexibilität zu gewährleisten, muss die Anzahl der Spalten sehr breit gewählt wer-

den. Hierduch entstehen viele Zellen mit NULL-Werten, welche zwar von den meisten

Datenbanksystemen effizient verwaltet werden, aber dennoch einen Speicher-Overhead

erzeugen. Zusätzlich muss das DBS Meta-Daten halten, in denen die Datentypen so-

wie die logischen Namen der Spalten in Abhängigkeit der jeweiligen logischen Tabelle

gespeichert werden.

Ein großer Nachteil vom Universal Table Layout ist, dass die Indizierung nicht prakti-

kabel ist.

Abbildung 3.6: Universal Table Layout (aus [AGJ+08, S. 1198])

3.3.5 Pivot Table Layout

Beim Pivot Table Layout werden neben der Mandanten- und Tabellen-Spalte Reihen-

sowie Spalten-Werte eingefügt. Jeder Wert eines Datensatzes in der logischen Tabelle

wird hier in einem eigenen Datensatz gespeichert. Hierduch sind für die Rückführung

einer n-Spaltigen Tabelle n−1 Join-Verknüpfungen notwendig. Jedoch entfällt im Ver-

gleich zu Universal Tables die Speicherung von NULL-Werten.

Die Daten selbst können hierbei entweder als variabler Datentyp VARCHAR gespei-

chert werden oder man führt für jeden Datentyp eine eigene Pivot-Tabelle ein (siehe

Abbildung 3.7), wodurch das Casten der Datentypen entfällt. Um Indizies zu unter-

stützen können zusätzliche Index-Tabellen für jeden Datentyp eingeführt werden.

3.3.6 Chunk Table Layout

Die Datensätze werden in Chunks, also “Datenblöcke” untergliedert. Mehrere dieser

Chunks bilden gemeinsam einen logischen Datensatz. Dazu wird beim Chunk-Table-

Layout neben Spalten für Tenant, Tabelle und Reihe eine Chunk-Nummer vergeben.

Physische Zeilen mit gleicher Tenant-ID, gleicher Tabellennummer und gleicher Rei-

Page 15: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

3 Multi-Tenancy mit aktuellen Datenbanken 12

1 SELECT Beds FROM2 (SELECT s.Str as Hospital, i.Int as Beds3 FROM PivotStr s, PivotInt i4 WHERE s.Tenant = 175 AND i.Tenant = 176 AND s.Table = 07 AND s.Col = 28 AND i.Table = 09 AND i.Col = 3

10 AND s.Row = i.Row)11 WHERE Hospital=’State’

Listing 3.2: Transformierte SQL Anfrage für Pivot Table Layout

Abbildung 3.7: Pivot Table Layout (aus [AGJ+08, S. 1198])

he gehören zu einem logischen Datensatz, sortiert nach den inkrementierten Chunk-

Nummern. In Abbildung 3.8 sind dieses beispielsweise die ersten beiden Zeilen.

In einem Chunk werden verschiedene Attribute mit verschiedenen Datentypen, wahl-

weise mit Indizierung, gespeichert. Hierdurch ist es möglich, häufig zusammen auftre-

tende Werte zu gruppieren, wodurch die Schreib-/Lesezugriffe optimiert werden kön-

nen.

Abbildung 3.8: Chunk Table Layout (aus [AGJ+08, S. 1198])

Page 16: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

3 Multi-Tenancy mit aktuellen Datenbanken 13

Im Vergleich zu Pivot Tabellen wird hier nur eine Tabelle benötigt, wodurch der Auf-wand für die Rekonstruktion der logischen Tabellen geringer ausfällt. Die Anfrage-Transformation ist jedoch komplexer. Dieses wird leicht aus einem Beispiel ersicht-lich: Für das Auflösen der Spaltennamen wird beim Pivot Table Layout ein Map-ping Tenant, Table, Col -> Spaltenname benötigt. Hingegen beim ChunkTable Layout Tenant, Table, Chunk -> Int1 = Spaltenname1 | Str1 =

Spaltenname2. Die Spalten in der physischen Schicht müssen hier nochmal zugeord-net werden.

3.3.7 Chunk Folding

In [AGJ+08] stellen die Autoren eine weitere Schema-Mapping Technik vor: ChunkFolding. Es werden die Techniken des Extension Tables mit denen der Chunk Tableskombiniert. Abbildung 3.9 zeigt ein Schema für Chunk Folding. Hierbei gibt es eine(oder auch mehrere) gemeinsame Tabelle, die von allen (oder vielen) Mandanten ge-nutzt werden sowie eine Erweiterungstabelle deren Struktur dem Chunk Table Layoutentspricht.

Abbildung 3.9: Chunk Folding (aus [AGJ+08, S. 1198])

Durch diese Kombination wird erreicht, dass häufig genutzte Attribute in herkömmli-chen Tabellen gespeichert werden, wodurch erhöhter I/O- sowie Transformationsauf-wand beim Zugriff auf Attribute dieser Tabelle entfällt. Durch Variation der Breiteder Chunk-Tabelle wird diese zu einer Mischform von Universal Table Layout undChunk Table Layout: Die Breite kann so optimiert werden, dass z.B. 80% der logischenDatensätze in einen Chunk passen. Tabellen mit vielen Attributen werden hingegenin zwei oder mehr Chunks verteilt. Dadurch wird der Aufwand, mandantenspezifischeErweiterungen zu Laden und Verarbeiten, gering gehalten.

Page 17: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

3 Multi-Tenancy mit aktuellen Datenbanken 14

3.4 Beispiel: force.com

Die Plattform Salesforce.com, Anbieter von Customer Relationship Management (CRM),sowie deren Tochter-Plattform Force.com, eine Entwicklungsumgebung für die Entwick-lung von Cloud-basierter Software, nutzen Multi-Tenancy für die Datenhaltung. DasDatenbankschema zeigt Abbildung 3.10. Es handelt sich hierbei um ein Universal TableLayout mit mehreren Erweiterungen zur Optimierung sowie Flexibilisierung.

# GUIDOrgIDObjIDObjName

Objects

# GUIDOrgIDObjIDFieldNameDatatypeisIndexedFieldNum

Fields

Metadaten

# GUIDOrgIDObjIDNameValue0Value1...Value500

Data

Character Large Objects

bis zu 32.000 Zeichen

Clobs

# OrgID# ObjID# FieldNum

GUIDStringValueNumValueDateValue

Indexes

OrgIDObjIDGUIDRelationIDTargetObjID

Relationships

...weitere......weitere...

Datentabellen Spezielle Pivot Tabellen

Abbildung 3.10: Force.com Datenbankschema (in Anlehnung an [For08])

Mithilfe von Pivot-Tabellen werden beispielsweise Indizierungen ermöglicht. Die Ind-exes Tabelle enthält hierfür neben Schlüsseln, die das zu indizierende Objekt referen-zieren, Spalten mit verschiedenen Datentypen. Über diese wird die Indizierung durch-geführt. Zudem gibt es Tabellen für Relationen zwischen den Objekten, eine Tabellefür Unique-Werte, History-Tracking Tabellen und viele weitere [For08].

In Metadaten-Tabellen werden Informationen über die gespeicherten Objekte (Objects-Tabelle) sowie Meta-Informationen über die einzelnen Werte in der Datentabelle gespei-chert. Mit diesen Informationen kann das logische Schema der Mandanten aus diesemphysischem Schema rekonstruiert werden.

Page 18: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

4 Ausblick 15

4 Ausblick

In ihrer Arbeit [AJPK09] stellen Aulbach et al. ein Modell für die Implementierungeiner “echten” Multi-Tenant-fähigen Datenbank vor. Dieses soll mithilfe von Grid-Technologien sowie Virtualisierung ermöglicht werden.

Abbildung 4.1: Multi-Tenancy DBMS (aus [AJPK09])

Die Authoren wollen hierfür ein Grid-Cluster verwenden, wobei auf die einzelnen Kno-ten die Datenbanken der Mandaten aus einem Archiv-Speicher geladen werden (vgl.Abbildung 4.1). Je nach Auslastung soll dieser Vorgang dynamisch erfolgen. Bei hoherLast werden die Datenbanken auf andere Knoten repliziert. Hierbei werden zunächstdie veralteten Abbilder aus dem Archivspeicher kopiert und anschließend durch einenRoll-Forward mithilfe von Log-Dateien aktualisiert [AJPK09].

Durch Tenant Swizzling, einer von den Autoren entwickelten Technik, die sich an “dasPointer Swizzling in objekt-orientierten DBMS” [AJPK09] anlehnt, wird ein schnellerDatenzugriff gewährleistet: Die Daten im Hauptspeicher werden von den Daten desArchivspeichers vollkommen getrennt, wodurch Lese- und Schreibzugriffe auf langsa-men Festplattenspeicher entfallen. Dieses wird durch Pointer ermöglicht, die jeweils aufreferenzierende Objekte zeigen. Sollen diese Objekte persistiert werden, so müssen diePointer aufgeflöst und durch entsprechende Referenzierungen per ID ersetzt werden.

Durch den Einsatz dieser Techniken sollen Probleme der “klassischen” Multi-Tenancy-Lösungen hinsichtlich Isolation und Ressourcenverwaltung gelöst werden. Eine Umset-zung dieses Entwurfs ist geplant [AJPK09].

Page 19: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

Abbildungsverzeichnis III

Abbildungsverzeichnis

2.1 Mandanten pro Datenbank (in Anlehnung an [AGJ+08, S. 1196]) . . . . 5

3.1 Shared Machine, Shared Process und Shared Table (in Anlehnung an[JA07a, S. 1198]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2 Query Transformation Layer (selbsterstellte Grafik) . . . . . . . . . . . 83.3 Private Table Layout (aus [AGJ+08, S. 1198]) . . . . . . . . . . . . . . 93.4 Basic Table Layout (selbsterstellte Grafik) . . . . . . . . . . . . . . . . 93.5 Extension Table Layout (aus [AGJ+08, S. 1198])) . . . . . . . . . . . . 103.6 Universal Table Layout (aus [AGJ+08, S. 1198]) . . . . . . . . . . . . . 113.7 Pivot Table Layout (aus [AGJ+08, S. 1198]) . . . . . . . . . . . . . . . 123.8 Chunk Table Layout (aus [AGJ+08, S. 1198]) . . . . . . . . . . . . . . 123.9 Chunk Folding (aus [AGJ+08, S. 1198]) . . . . . . . . . . . . . . . . . . 133.10 Force.com Datenbankschema (in Anlehnung an [For08]) . . . . . . . . . 14

4.1 Multi-Tenancy DBMS (aus [AJPK09]) . . . . . . . . . . . . . . . . . . 15

Page 20: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

Verzeichnis der Listings IV

Verzeichnis der Listings

3.1 Transformierte SQL Anfrage für Extension Table Layout . . . . . . . . 103.2 Transformierte SQL Anfrage für Pivot Table Layout . . . . . . . . . . . 12

Page 21: Multi-Tenant-Datenbanken für SaaS (Schema Management) · Abbildung3.9zeigt ein Schema für Chunk Folding. Hierbei gibt es eine Hierbei gibt es eine (oder auch mehrere) gemeinsame

Literaturverzeichnis V

Literaturverzeichnis

[AGJ+08] S. Aulbach, T. Grust, D. Jacobs, A. Kemper, and J. Rittinger. Multi-tenantdatabases for software as a service: schema-mapping techniques. In Procee-dings of the 2008 ACM SIGMOD international conference on Managementof data, pages 1195–1206. ACM New York, NY, USA, 2008.

[AJKS09] S. Aulbach, D. Jacobs, A. Kemper, and M. Seibold. A comparison of flexibleschemas for software as a service. In Proceedings of the 35th SIGMOD in-ternational conference on Management of data, pages 881–888. ACM, 2009.

[AJPK09] S. Aulbach, D. Jacobs, J. Primsch, and A. Kemper. Anforderun-gen an Datenbanksysteme für Multi-Tenancy-und Software-as-a-Service-Applikationen. BTW 2009 - Proceedings, 2009. http://131.159.16.

103/research/publications/conferences/btw2009-mtd.pdf.

[BHS08] W. Beinhauer, M. Herr, and A. Schmidt. SOA für agile Unternehmen: Ser-viceorientierte Architekturen verstehen, einführen und nutzen. SymposionPublishing GmbH, 2008.

[For08] Force.com. The force.com multitenant achitecture. Whi-tepaper, 2008. http://www.apexdevnet.com/media/

ForcedotcomBookLibrary/Force.com_Multitenancy_WP_

101508.pdf.

[JA07a] D. Jacobs and S. Aulbach. Ruminations on multi-tenant databases.BTW, 2007. Vortragsfolien, http://www.btw2007.de/vortraege/JacobsAulbach.pdf.

[JA07b] D. Jacobs and S. Aulbach. Ruminations on multi-tenant databases. In BTWProceedings. Citeseer, 2007.

[Pap08] M.P. Papazoglou. Web services: principles and technology. Pearson PrenticeHall, 2008.

[War07] Robert Warfield. Multitenancy can have a 16:1 cost advantage over single-tenant, 2007. http://smoothspan.wordpress.com/2007/10/28/

multitenancy-can-have-a-161-cost-advantage-over-single

-tenant/.