Supporting multi-tenancy in Relational Database Management Systems for OLTP-style software as a service applications

The consolidation of multiple tenants onto a single relational database management system (RDBMS) instance, commonly referred to as multi-tenancy, turned out being beneficial since it supports improving the profit margin of the provider and allows lowering service fees, by what the service attracts more tenants. So far, existing solutions create the required multi-tenancy support on top of a traditional RDBMS implementation, i. e. , they implement data isolation between tenants, per-tenant customization and further tenant-centric data management features in application logic. This is complex, error-prone and often reimplements efforts the RDBMS already offers. Moreover, this approach disables some optimization opportunities in the RDBMS and represents a conceptual misstep with Separation of Concerns in mind. For the points mentioned, an RDBMS that provides support for the development and operation of a multi-tenant software as a service (SaaS) offering is compelling. In this thesis, we contribute to a multi-tenant RDBMS for OLTP-style SaaS applications by extending a traditional disk-oriented RDBMS architecture with multi-tenancy support. For this purpose, we primarily extend an RDBMS by introducing tenants as first-class database objects and establishing tenant contexts to isolate tenants logically. Using these extensions, we address tenant-aware schema management, for which we present a schema inheritance concept that is tailored to the needs of multi-tenant SaaS applications. Thereafter, we evaluate different storage concepts to store a tenant’s tuples with respect to their scalability. Next, we contribute an architecture of a multi-tenant RDBMS cluster for OLTP-style SaaS applications. At that, we focus on a partitioning solution which is aligned to tenants and allows obtaining independently manageable pieces. To balance load in the proposed cluster architecture, we present a live database migration approach, whose design favors low migration overhead and provides minimal interruption of service. Software as a Service (SaaS) ist eines der im Rahmen von Cloud Computing moglichen Diensterbringungsmodelle. Mandantenfahigkeit ist eine essentielle Eigenschaft fur ein erfolgreiches SaaS Angebot. Mandantenfahigkeit beschreibt die Fahigkeit, mehrere Mandanten auf einer Resource konsolidieren zu konnen. Als Mandant versteht man hierbei eine datentechnisch und organisatorisch abgeschlossene Einheit, die den Dienst nutzt, z. B. ein Unternehmen. Im Rahmen von SaaS betrifft die Realisierung von Mandantenfahigkeit jede Schicht des Systemaufbaus und die jeweilig dazugehorenden Komponenten. Somit ergibt sich als eine Teilaufgabe einer SaaS Losung ublicherweise die Implementierung von Mandantenfahigkeit in der Datenschicht mit den darin eingesetzten Datenbankmanagementsystemen. Die weite Verbreitung von relationalen Datenbankmanagementsystemen (RDBMS) fuhrt dazu, dass die Realisierung von Mandantenfahigkeit unter Verwendung von RDBMS von zentraler Bedeutung fur die Realisierung vieler mandantenfahiger SaaS Losungen ist. Bisherige RDBMS Implementierungen bieten keine native Unterstutzung fur die Entwicklung und den Betrieb mandantenfahiger SaaS Anwendungen an. Aus diesem Grund benotigen existierende Losungen eine zusatzliche Schicht uber dem RDBMS, welche die notwendige Funktionalitat realisiert. Hierdurch wird das Vermogen des RDBMS nicht mehr genutzt. Die Implementierung dieser zusatzlichen Schicht ist aufwandig und fehleranfallig, weiterhin fallt eine zusatzlich zu wartende Komponente an. Auserdem verliert eine solche Losung an Optimierungspotential, z. B. verliert das RDBMS Information uber die verwendeten Datentypen der Applikation. Zuletzt wird keine saubere Trennung der Verantwortlichkeiten fur bestimmte Aufgaben eingehalten; die Datenverwaltung sollte in wesentlichen Teilen durch das RDBMS unterstutzt werden. Eine native Unterstutzung von Mandantenfahigkeit durch das RDBMS kann diese Nachteile aufheben. Diese Arbeit tragt wesentliche Erweiterungen zur nativen Unterstutzung von mandantenfahigen SaaS Anwendungen mit OLTP Charakteristik durch ein RDBMS bei. Der erste Schritt hierzu ist die Einfuhrung von Mandanten als explizite Datenbankobjekte. Hiermit verbunden wird das Konzept Tenant Context, zu deutsch Mandantenkontext, prasentiert. Ein Tenant Context stellt ein logischer Container fur die Ausfuhrung von Operationen eines bestimmten Mandanten dar. Dies erlaubt eine leichtgewichtige Art der Virtualisierung im RDBMS. Darauf basierend wird ein mandantenfahiges Schema Management, welches auf die Bedurfnisse von SaaS Anwendungen zugeschnitten ist, vorgestellt. Nachfolgend werden verschiedene Moglichkeiten zur Speicherung der Daten eines Manadanten untersucht und bewertet. Daraufhin wird die Architektur eines mandantenfahigen RDBMS Clusters fur mandantenfahige SaaS Anwendungen addressiert. Ein besonderes Augenmerk wird hierbei auf eine sinnvolle Verarbeitungsgranularitat von administrativen Operationen gelegt. Abschliesend stellt die Arbeit einen Ansatz zur Migration einer Datenbank eines Mandanten von einem Knoten eines Clusters zu einem anderen Knoten des Clusters vor. Der vorgestellte Migrationsansatz besitzt einen minimalen Einfluss auf die parallel laufende Transaktionsverarbeitung und stellt damit ein wichtiges Mittel fur die Balancierung der Last innerhalb des Clusters dar.