Direkt zum Hauptbereich

Gefangen im CAP Theorem – Warum Datenbanken nicht gut skalieren

Gefangen im CAP Theorem – Warum Datenbanken nicht gut skalieren

Frankfurter Datenbanktage 2013 - Konferenzsession von Thomas Klughardt


Skalierbarkeit ist ein immer größer werdendes Thema für jeden, der Datenbanken betreibt oder darauf zugreift. Und das ist jeder Administrator, jeder Entwickler, aber auch jeder Anwender. Die Datenmengen werden immer größer, die Daten selbst werden immer stärker m
iteinander verknüpft und entsprechend werden Abfragen komplexer und die Abarbeitung aufwändiger. Durch Konzepte wie das Sharding oder den Real Application Cluster versucht man eine bessere Skalierbarkeit zu erreichen, das löst aber nicht das grundsätzliche Problem: Relationale Datenbanken können nicht gleichzeitig gut skalieren, ständig verfügbar sein und die Daten konsistent halten. Das besagt das CAP Theorem von Eric Brewer (nicht der Eishockeyspieler). Trotzdem ist man der Situation nicht hilflos ausgeliefert. Bis das Ende der Fahnenstange erreicht ist, gibt es noch einige Stellschrauben an denen man drehen kann und einige Designtricks, die die Skalierbarkeit verbessern können. Zusätzlich gibt es noch NoSQL Datenbanken, das sind nicht-relationale Datenspeicher, die zum Einsatz kommen, wenn relationale Datenbanken nicht benötigt werden, oder nicht skalieren können.

Thomas Klughardt spricht in diesem Vortrag darüber, warum relationale Datenbanken tatsächlich nicht unbegrenzt skalieren können, aber auch, worauf zu achten ist, um möglichst gute Skalierbarkeit zu erreichen. Zusätzlich wird es um die Abgrenzung zwischen relationalen und nicht-relationalen Datenbanken gehen und darum, wann welche Art von Datenbank sinnvoll ist, oder eben nicht.
Sprecherprofil Thomas Klughardt

Als Senior Systems Consultant bei Dell / Quest Software beschäftigt sich Thomas Klughardt mit den Themen rund um Datenbanken, aber auch mit dem Performance Management der gesamten Anwendung. Er ist regelmäßig Referent auf Konferenzen wie der Deutschen Oracle Anwendergruppe (DOAG) oder der Toad User Konferenz (TUK).

Vor seiner Tätigkeit bei Quest Software war Thomas Klughardt Student der Fachrichtung Allgemeine Informatik an der Fachhochschule Köln und war während dessen an der Entwicklung mehrerer Anwendungen beteiligt.

Schwerpunkte:

Datenbanken
Performance Management
Java Anwendungen
Hochverfügbarkeit und Replikation
Business Intelligence und Big Data

http://ww.frankfurter-datenbanktage.de/index.php/sprecher.html?id=116

Kommentare

Beliebte Posts aus diesem Blog

Java EE 7 Petclinic

A Java EE 7 Version of Spring Petclinic.

Depending on JSF and EJB and ready to run on JBoss WildFly and Oracle Glassfish.

You find a running Version with WildFly on OpenShift, the RedHat Cloud:
http://javaee7petclinic-port80guru.rhcloud.com

Source Code ist hosted on Github:
https://github.com/phasenraum2010/javaee7-petclinic

The Domain Modell  contains all basic Relationships between Entities like OneToMany, ManyToOne and also ManyToMany:


Pageflow  is complex enough to be interesting for Functional Tests with Selenium2 Webdriver, Arquillian Drone and Graphene:


Use Cases


Some Example Screen Shots






install JBoss Wildfly install JBoss Wildfly 8.0.0.Final from http://wildfly.org/downloads/
to e.g. /Users/tw/srv/wildfly-8.0.0.Final/

start JBoss by: cd /Users/tw/srv/wildfly-8.0.0.Final/bin ; ./standalone.sh
install Glassfish 4 I installed Netbeans 7.4 with Glassfish 4.0 from https://netbeans.org/downloads/
starting on Mac OSX:
cd /Applications/NetBeans/glassfish-4.0/bin/
./asadmin start-data…

MySQL DataSource for Wildfly10 like Openshift

how to configure Wildfly10 to have a DataSource for MySQL like Openshift the RedHat Cloud.

I installed Wildfly10 on ~/srv/wildfly-10.0.0.Final

Step 1: Add MySQL Driver to modules:

Download the mysql-driver mysql-connector-java-5.1.38.jar from any Maven Repository e.g.: http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.38/

go to WildFly modules Directory:
cd wildfly-10.0.0.Final/modules/system/layers/base
mkdir -p mysql/mysql-connector-java/main

copy  mysql-driver mysql-connector-java-5.1.38.jar here.

add a file module.xml with content:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" 
        name="mysql.mysql-connector-java">
    <resources>
        <resource-root path="mysql-connector-java-5.1.38.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.tr…

MySQL as Default Database in WildFly 8.0.0.CR1

How to  replac the H2 Database for Default DataSource in JBoss WildFly 8.0.0.CR1:

Step 1: Add MySQL Driver to modules:

Download the mysql-driver mysql-connector-java-5.1.22.jar from any Maven Repository e.g.: http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.22/

go to WildFly modules Directory:
cd wildfly-8.0.0.CR1/modules/system/layers/base
mkdir -p mysql/mysql-connector-java/main

copy  mysql-driver mysql-connector-java-5.1.22.jar here.

add a file module.xml with content:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" 
        name="mysql.mysql-connector-java">
    <resources>
        <resource-root path="mysql-connector-java-5.1.22.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.serv…