Architectures for Elastic Database Services
Total Page:16
File Type:pdf, Size:1020Kb
Research Collection Doctoral Thesis Architectures for elastic database services Author(s): Loesing, Simon M. Publication Date: 2015 Permanent Link: https://doi.org/10.3929/ethz-a-010468935 Rights / License: In Copyright - Non-Commercial Use Permitted This page was generated automatically upon download from the ETH Zurich Research Collection. For more information please consult the Terms of use. ETH Library DISS. ETH NO. 22441 Architectures for Elastic Database Services A thesis submitted to attain the degree of DOCTOR OF SCIENCES of ETH ZURICH (Dr. sc. ETH Zurich) presented by SIMON MANFRED LOESING M. sc. in Computer Science, ETH Zurich born on 21.02.1982 citizen of Germany accepted on the recommendation of Prof. Dr. Donald Kossmann (ETH Zurich), examiner Prof. Dr. Gustavo Alonso (ETH Zurich), co-examiner Prof. Dr. Alfons Kemper (TU Munich), co-examiner 2015 Abstract The emergence of cloud technologies has caused a profound disruption in the market for data management systems. The access to (virtually) unlimited computing resources has considerably changed the requirements towards data processing and storage systems. Specifically, properties such as scalability, elasticity, cost-efficiency, and ease of deploy- ment are increasingly becoming critical success factors for many businesses. In response to these new demands, traditional relational database systems have been challenged by various new large-scale data services as well as alternative storage systems. This trend has resulted in a jungle of heterogeneous data processing solutions all providing differ- ent features and guarantees. This dissertation aims at understanding the limits and the trade-offs in providing traditional database features in the context of cloud computing. To explore the design space, we assess alternative architectures for distributed transaction processing and highlight key options with regard to scalability, flexibility, and robustness. In particular, we examine what architectural properties are required in order to meet the requirements of dynamic cloud environments. Our analysis is extended by a comprehensive evaluation of existing commercial cloud services that have adopted these architectures. To that end, we have developed a new benchmarking methodology that takes into account the specific characteristics of cloud data services. That is, we validate if the promises of unlimited throughput and reduced cost can be fulfilled. The results are surprising in several ways. Most importantly, it seems that all major vendors have adopted a different architecture for their services. As a result, the cost and performance vary significantly depending on the workload. The limitations of current cloud data processing solutions with regard to database work- loads motivated the development of a new system: Tell. Tell is a distributed relational database designed for scalable and elastic transaction processing. It implements an ar- chitecture design based on two principles: We decouple query processing and transaction i management from data storage, and we share data across query processing nodes. The combination of these design choices enables elasticity and is the foundation for cost-efficient database infrastructures. Moreover, the separation of concerns allows for mixed workloads. That is, transactional and analytical workloads can be performed simultaneously on sep- arate processing nodes but accessing a single, shared copy of the data. As a drawback, sharing data among multiple database nodes causes substantial synchronization overhead. To overcome this limitation, we present techniques for scalable transaction processing in shared-data environments. Specifically, we provide mechanisms for efficient data access, concurrency control, and data buffering. The implementation of these techniques is facil- itated by new hardware trends and provides scalable OLTP performance. Architectures that share data have been adopted by several data management systems in the past. A prominent example is Apache Hadoop. Although these systems are widely used, performing database transactions on shared data has not been a main focus as of yet. To bridge this gap, we provide an in-depth evaluation of alternative concurrency con- trol mechanisms for shared-data systems, such as Tell. We adapt established techniques such as snapshot isolation, timestamp ordering, and locking to operate in a distributed environment on top of a shared store. Each technique is designed to minimize synchroniza- tion overhead while providing full ACID (Atomicity, Consistency, Isolation, Durability) semantics. Tell is used as a reference system to implement and evaluate the alternative approaches. This dissertation contributes to our scientific understanding of how to build elastic dis- tributed database services for cloud infrastructures. It provides an essential piece in the puzzle of developing next generation data processing solutions. ii Zusammenfassung Die Verbreitung von Cloud-Technologien hat weitreichende Ver¨anderungenim Markt f¨ur Datenverarbeitungssysteme ausgel¨ost. Der Zugriff auf (praktisch) unbegrenzte Rechen- ressourcen hat die Anforderungen in Bezug auf Datenverarbeitungs- und Speichersysteme massgeblich ver¨andert.Eigenschaften wie Skalierbarkeit, Elastizit¨at,Kosteneffizienz und einfaches Installieren werden zunehmend kritische Erfolgsfaktoren f¨urviele Unternehmen. Als Reaktion auf diese neuen Bed¨urfnissewurden traditionelle, relationale Datenbanksys- teme von neuen Datendiensten und alternativen Speichersystemen herausgefordert. Diese Entwicklung hat zu einem regelrechten Dschungel von heterogenen Datenverarbeitungssys- tem gef¨uhrt,welche alle unterschiedliche Funktionen und Garantien bereitstellen. Diese Dissertation m¨ochte verstehen, inwieweit Abstriche bzw. Kompromisse bei der Umsetzung von klassischen Datenbankfunktionen im Kontext von Cloud Computing erforderlich sind. Um die Entwurfsm¨oglichkeiten zu erkunden, bewerten wir alternative Architekturen f¨ur verteilte Transaktionsverarbeitung und heben Schl¨usseloptionenin Bezug auf Skalier- barkeit, Flexibilit¨atund Robustheit hervor. Im Einzelnen untersuchen wir, welche Ar- chitektureigenschaften notwendig sind, um die Anforderungen von dynamischen Cloud- Umgebungen zu erf¨ullen. Unsere Analyse wird durch eine umfassende Evaluierung von bestehenden, kommerziellen Cloud-Diensten abgerundet, welche diese Architekturen ¨uber- nommen haben. Zu diesem Zweck schlagen wir eine neue Mess-Methodik vor, welche die spezifischen Eigenschaften von Cloud-Datendiensten einbezieht. Das heisst, wir ¨uberpr¨ufen, ob das Versprechen von unbegrenzter Durchsatzrate und reduzierten Kosten erf¨ulltwer- den kann. Die Ergebnisse sind in vielerlei Hinsicht ¨uberraschend. Allem voran scheint es, als h¨attenalle Betreiber eine andere Architektur f¨urihre Dienste verwendet. De- mentsprechend variieren Kosten und Leistung massgeblich bei unterschiedlicher Last. Die Grenzen bestehender Cloud-Datenverarbeitungsl¨osungenin Bezug auf Datenbankan- fragen hat die Entwicklung eines neuen Systems angeregt: Tell. Tell ist eine verteilte, re- iii lationale Datenbank, entworfen mit dem Ziel skalierbarer und elastischer Transaktionsver- arbeitung. Die neue Systemarchitektur basiert auf zwei Prinzipien: Wir entkoppeln An- frageverarbeitung und Transaktionsverwaltung von Datenspeicherung, und wir teilen die Daten ¨uber alle Anfrageverarbeitungsknoten. Die Kombination dieser Entwurfsentschei- dungen erm¨oglicht elastische Datenbanken und ist die Grundlage f¨urkosteneffiziente Daten- bankinfrastrukturen. Desweiteren erm¨oglicht die Trennung der Belange die Ausf¨uhrung unterschiedlicher Datenbanklasten. Das heisst, sowohl transaktionale als auch analytis- che Anfragen k¨onnengleichzeitig auf unterschiedlichen Verarbeitungsknoten ausgef¨uhrt werden, greifen aber auf die geteilte Kopie der Daten zu. Ein Nachteil der Teilung von Daten ¨uber mehrere Knoten sind die betr¨achtlichen Synchronisationskosten. Um diese Ein- schr¨ankungzu umgehen, pr¨asentieren wir Techniken f¨urdie skalierbare Transaktionsverar- beitung in “shared-data”-Umgebungen. Im Einzelnen stellen wir Mechanismen f¨urden ef- fizienten Datenzugriff, die Steuerung der Gleichzeitigkeit und der Datenpufferung vor. Die Implementierung dieser Techniken wird durch neue Hardwareentwicklungen gef¨ordertund erm¨oglicht Leistungscharakteristiken, welche moderne, verteilte Datenbanken ¨ubertreffen. Architekturen die Daten teilen, wurden in der Vergangenheit von mehreren Datenver- arbeitungssystemen angenommen. Ein bekanntes Beispiel ist Apache Hadoop. Obwohl solche Systeme weit verbreitet sind, hat das Ausf¨uhrenvon Datenbanktransaktionen ¨uber geteilte Daten noch keine grosse Aufmerksamkeit erlangt. Um diese L¨ucke zu schliessen, evaluieren wir alternative Mechanismen zur Steuerung der Gleichzeitigkeit f¨ur“shared- data”-Systeme wie Tell. Wir passen bew¨ahrte Techniken wie Snapshot Isolation, Times- tamp Ordering und Locking an, um in einer verteilten Umgebung auf einem geteilten Speicher zu arbeiten. Jede Technik wurde entworfen, um den Synchronisationsaufwand zu minimieren, w¨ahrendgleichzeitig die ACID-Eigenschaften (Atomarit¨at,Konsistenz, Isola- tion, Dauerhaftigkeit) vollumf¨anglich gew¨ahrleistetwerden. Tell wird als Referenzsystem benutzt, um die Verfahren zu implementieren und zu evaluieren. Diese Dissertation tr¨agtzu unserem wissenschaftlichen Verst¨andnisbei, wie man elastisch verteilte Datenbankdienste f¨urCloud-Infrastrukturen baut. Sie liefert ein zentrales Ele- ment im Puzzle der Entwicklung der n¨achsten Generation von