Datenbankabstraktion des Catacomb WebDAV Server mit apr_dbd/mod_dbd
Gliederung <ul><li>Gliederung </li></ul><ul><li>Grundlagen Apache </li></ul><ul><li>Grundlagen WebDAV </li></ul><ul><li>Da...
Grundlagen Apache <ul><li>Dreigeteilte Architektur </li></ul><ul><ul><li>Apache Portable Runtime </li></ul></ul><ul><ul><l...
Grundlagen Apache (APR)‏ <ul><li>Apache Portable Runtime wird separat von dem Apache Webserver entwickelt. </li></ul><ul><...
Grundlagen Apache (apr_dbd/mod_dbd)‏ <ul><li>apr_dbd teil der Apache Portable Runtime </li></ul><ul><ul><li>Einfache/klein...
Grundlagen WebDAV <ul><li>Erweiterung des HTTP Standard 1.1 um schreibzugriff </li></ul><ul><li>Weitere Standards die WebD...
Datenbankmodell
Analyse <ul><li>Ablauf des Datenbankzugriffs sehr ähnlich </li></ul><ul><li>SQL teilweise Befehle MySQL zentrisch </li></u...
Entwurf <ul><li>dbms_mysql.c entfernen und Funktionsaufrufe durch apr_dbd Aufrufe ersetzen </li></ul><ul><li>Datenbankabhä...
Implementierung ohne apr_dbd (query)‏ <ul><li>Prepare </li></ul><ul><li>Parameter setzen 1 - n </li></ul><ul><li>Statement...
Implementierung mit apr_dbd (query)‏ <ul><li>Prepare  </li></ul><ul><li>Parameter setzen und Statement ausführen </li></ul...
Evaluation mod_dbd branch <ul><li>Durchschnittlich um den Faktor 2 langsamer </li></ul><ul><li>Ausnahmen Get1024K und Copy...
Evaluation mod_dbd acp branch <ul><li>Durchschnittlich um den Faktor 2 langsamer </li></ul><ul><li>Ausnahmen zusätzlich zu...
Upcoming SlideShare
Loading in...5
×

Catacomb Datenbankabstraktion mit mod_dbd

635

Published on

Techtalk von Bernd Sydow zum Thema "Catacomb Datenbankabstraktion mit mod_dbd" (DLR Köln-Porz, 06.05.2008).

Published in: Economy & Finance
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
635
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Transcript of "Catacomb Datenbankabstraktion mit mod_dbd"

    1. 1. Datenbankabstraktion des Catacomb WebDAV Server mit apr_dbd/mod_dbd
    2. 2. Gliederung <ul><li>Gliederung </li></ul><ul><li>Grundlagen Apache </li></ul><ul><li>Grundlagen WebDAV </li></ul><ul><li>Datenbankmodell </li></ul><ul><li>Analyse </li></ul><ul><li>Entwurf </li></ul><ul><li>Implementierung </li></ul><ul><li>Evaluation </li></ul>
    3. 3. Grundlagen Apache <ul><li>Dreigeteilte Architektur </li></ul><ul><ul><li>Apache Portable Runtime </li></ul></ul><ul><ul><li>Multi-Processing Modules </li></ul></ul><ul><ul><li>Core Module </li></ul></ul>
    4. 4. Grundlagen Apache (APR)‏ <ul><li>Apache Portable Runtime wird separat von dem Apache Webserver entwickelt. </li></ul><ul><li>APR besteht aus 3 Teilen </li></ul><ul><ul><li>APR Core – Abstrahiert Betriebssytemabhängige Funktionen </li></ul></ul><ul><ul><li>APR-Util – Erweitert die Bibliothekfunktionalität um nützliche Funktionen </li></ul></ul><ul><ul><li>APR-Iconv – Portable Implementation von iconv() Bibliothek (für Win32)‏ </li></ul></ul>
    5. 5. Grundlagen Apache (apr_dbd/mod_dbd)‏ <ul><li>apr_dbd teil der Apache Portable Runtime </li></ul><ul><ul><li>Einfache/kleine API </li></ul></ul><ul><ul><li>Keine Sprachabstraktion </li></ul></ul><ul><li>mod_dbd teil der Apache Distribution </li></ul><ul><ul><li>Connection Pooling </li></ul></ul><ul><ul><li>Verbindungsmanagment </li></ul></ul>
    6. 6. Grundlagen WebDAV <ul><li>Erweiterung des HTTP Standard 1.1 um schreibzugriff </li></ul><ul><li>Weitere Standards die WebDAV erweitern </li></ul><ul><ul><li>DeltaV – Versionierung </li></ul></ul><ul><ul><li>DASL – Serverseitige Suche </li></ul></ul><ul><ul><li>ACP – Zugriffskontrolle </li></ul></ul>
    7. 7. Datenbankmodell
    8. 8. Analyse <ul><li>Ablauf des Datenbankzugriffs sehr ähnlich </li></ul><ul><li>SQL teilweise Befehle MySQL zentrisch </li></ul><ul><ul><li>Volltextsuche </li></ul></ul><ul><ul><li>Speichern und Lesen von Resourcen </li></ul></ul><ul><li>Direkte Verwendung der MySQL C-API ausserhalb von dbms_mysql.c </li></ul><ul><li>Autowerte sind Datenbankabhängig </li></ul>
    9. 9. Entwurf <ul><li>dbms_mysql.c entfernen und Funktionsaufrufe durch apr_dbd Aufrufe ersetzen </li></ul><ul><li>Datenbankabhängige Funktionen in die Datenbank verlagern durch User-Defined-Functions </li></ul><ul><ul><li>Volltextsuche </li></ul></ul><ul><ul><li>Autowerte </li></ul></ul><ul><li>SQL Statments umformulieren für SQL99 Konformität </li></ul><ul><ul><li>Speichern von Resourcen </li></ul></ul><ul><ul><li>Auslesen von Resourcen </li></ul></ul>
    10. 10. Implementierung ohne apr_dbd (query)‏ <ul><li>Prepare </li></ul><ul><li>Parameter setzen 1 - n </li></ul><ul><li>Statement ausführen </li></ul><ul><li>Statement schließen </li></ul>q = dbms_prepare(pool, &( d->db ), &quot;DELETE FROM dasl_resource WHERE serialno=?&quot;); dbms_set_int(q, 1, r->serialno); dbms_execute( q ); dbms_query_destroy( q );
    11. 11. Implementierung mit apr_dbd (query)‏ <ul><li>Prepare </li></ul><ul><li>Parameter setzen und Statement ausführen </li></ul>rv = apr_dbd_prepare(dbd->driver, pool, dbd->handle, &quot;DELETE FROM version_resource &quot; &quot;WHERE serialno=%s&quot;, NULL, &pquery); rv = apr_dbd_pvquery(dbd->driver, pool, dbd->handle, &nrows, pquery, apr_ltoa(pool, r->serialno));
    12. 12. Evaluation mod_dbd branch <ul><li>Durchschnittlich um den Faktor 2 langsamer </li></ul><ul><li>Ausnahmen Get1024K und CopyCol </li></ul><ul><ul><li>Verzicht auf temporäre Tabellen (CopyCol)‏ </li></ul></ul><ul><ul><li>BASE64 Kodierung + Catacomb erstellt Datei (Get*k)‏ </li></ul></ul>
    13. 13. Evaluation mod_dbd acp branch <ul><li>Durchschnittlich um den Faktor 2 langsamer </li></ul><ul><li>Ausnahmen zusätzlich zum mod_dbd branch (DeleteCol, SetAclMultiCol)‏ </li></ul><ul><ul><li>Gleiche SQL Statements werden mehrfach hintereinander ausgeführt. Vorteil für Prepared Statements </li></ul></ul>

    ×