Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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...
Nächste SlideShare
Wird geladen in …5
×

Catacomb Datenbankabstraktion mit mod_dbd

936 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Wirtschaft & Finanzen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

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>

×