Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2007  »  11  »  LAMP mal ohne AMP  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Datenpersistenz

An dieser Stelle drängt sich der Einwand auf, dass trotzdem die Daten irgendwie persistent auf der Platte liegen sollen. Auch wenn Linux noch so stabil läuft und die Hardware sicher vor Ausfällen wäre - spätestens bei einem Software-Update ist ein Neustart notwendig.

Die Datenspeicherung ist ein wichtiger Teil von LOA, sozusagen das Filetstück. Das an sich einfache Konzept hat erstaunliche Vorteile, wie später zu sehen sein wird. Die Idee: Da Lesezugriffe grundsätzlich aus dem Hauptspeicher bedient werden, müssen die Daten auf der Festplatte nicht für schnelles Lesen optimiert sein. Daher kann LOA alle Daten einfach sequenziell in eine Datei schreiben, die Persistenzdatei.

Für jeden Datensatztyp definiert der Entwickler ein binäres Format. Bei jeder Neuanlage oder Änderung eines Datensatzes, hängt er ihn in Binärform hinten an die Persistenzdatei an. Beim Löschen platziert er einfach einen Löschvermerk dahinter. Den prinzipiellen Aufbau des im Tauschzone-Projekt verwendeten Binärformats zeigt der Kasten "Binär gespeichert".

Binär
gespeichert

Abbildung 2 zeigt den Aufbau des in der Tauschzone verwendeten Binärformats. Folgende vier Chunk-Typen sind definiert:

  • CHUNK_EDIT_ARTICLE: Anlegen oder Ändern von Artikeln
  • CHUNK_DEL_ARTICLE: Artikel löschen
  • CHUNK_EDIT_USER: Anlegen oder Ändern von Benutzern
  • CHUNK_DEL_USER: Benutzer löschen

Für jeden Datensatztyp (Benutzer, Artikel) und für jedes Feld des Satzes gibt es einen Unterchunk-Typ, zum Beispiel »AC_ID« für die Artikel-ID und »UC_EMAIL« für die E-Mail-Adresse eines Benutzers. Die Strings sind so aufzufüllen, dass alle Chunks an 4-Byte-Grenzen ausgerichtet sind. Abbildung 3 zeigt die Datenstruktur bei der Änderung des Titels von Artikel Nummer 4711.


Abbildung 2: Das Binärformat der Tauschzone.


Abbildung 3: Datenstruktur beim Ändern des Titels von Artikel 4711.

Damit die Datei nicht unentwegt wächst, ist regelmäßig ein Bereinigen von veralteten und gelöschten Datensätzen nötig. Dazu legt das Programm einfach eine neue Persistenzdatei an und schreibt alle Datensätze einmal komplett heraus. Bei einem Neustart liest es die Persistenzdatei von Anfang an sequenziell ein und baut alle Datensätze im Hauptspeicher auf. Dabei werden auch in der Datei vorhandene Änderungen und Löschungen nachvollzogen. Die Hauptspeicher-Datenbank macht sozusagen im Eiltempo die komplette Änderungsgeschichte seit der letzten Bereinigung durch.

Replikation und Onlinesicherung geschenkt

Dies mag zunächst nach einer sehr langwierigen Operation aussehen. Da LOA aber mit Binärformaten arbeitet und eine sehr effiziente Verwaltung der Daten im Speicher verwendet, liegen die Zeiten selbst bei GBytes an Daten lediglich im Bereich von einigen Minuten. Die Tauschzone speichert in 4 GByte etwa eine Million Artikel.

So einfach das Speicherkonzept auf den ersten Blick wirken mag, so vielfältig sind die Vorteile, die sich aus dieser Lösung ergeben:

  • Die Persistenz kostet kaum CPU-Zeit - und auch das nur
    bei Änderungen. Das Schreiben der Daten auf Platte kann zudem
    asynchron geschehen. Somit blockiert es nicht den
    Hauptprozess.
  • Im laufenden Betrieb lässt sich jederzeit ein Snapshot der
    Daten anlegen. Dazu verwendet man die gleiche Funktion wie beim
    Bereinigen. Der Snapshot kann auf einem anderen System sofort
    gestartet werden (zum Beispiel zu Testzwecken).
  • Der LOA-Server kann parallel in zwei Dateien oder sogar
    TCP-Kanäle schreiben. Auf diese Art erledigt die Tauschzone
    online über SSH kontinuierlich ihr Backup.
  • Wenn ein LOA-Server seine Daten über TCP schreibt, kann
    ein zweiter Server sie kontinuierlich einlesen und in seine
    Datenbank einpflegen. Verhindert man bei diesem Schreibzugriffe,
    entsteht ein Online-Replikat, das stets mit dem ersten Server
    identisch ist. Es kann entweder zur Lastverteilung dienen oder bei
    einem Ausfall des ersten Servers diesen ersetzen (Abbildung
    4).


Abbildung 4: Mögliches Schema für die Replikation der im Speicher gehaltenen Daten.

Gerade die beiden letzten Punkte beschreiben Funktionen, die bei relationalen Datenbanken viel Geld und Administrationsaufwand kosten.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Gefüttert Groupware mit dem VoIP-Telefon
Tooltipps Werkzeuge im Kurztest
Vollautomatik Pentesting mit Metasploit und dem Autopwn-Modul
Projekteküche Neues aus der Welt der freien Software und ihrer Macher
Konservierungsmittel Objektdatenbank Db4o für Java und Mono
Edler Tropfen? Open-Source-Groupware Group-E von Endo7
Whitepaper
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)

Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (3)
von
Andreas W.,
23.11.2010 23:56
Tolle Idee
Warum sollte das in der Praxis nicht tauglich sein? Wenn man es mit bereits bestehenden Lösungen (siehe eBay) vergleicht dann ist es sicher ein Schritt in die richtige Richtung welcher sicherlich noch verfeinert werden müßte. Es gibt zahlreiche Ansätze die ein ähnliches Ziel verfolgen (C++ Servlets, ...)
von
sinseq,
11.10.2009 17:46
Seitenaufbau
Also der Seitenaufbau ist beeindruckend. Ich habe es unter Opera (Mac OS X) ausprobiert. So etwas wünsch ich mir für viele andere Seiten, z.B. ebay!
von
Martin,
07.10.2009 23:48
Na, nicht wirklich ein optimaler Ansatz :-(
LAMP also ohne alles, sogar der Apache wird in C++ nachgebildet. Da stehen mir die Haare obgelich der möglichen Sicherheitslücken zu Berge!

Und ganz im Ernst: Der Seitenaufbau der genannten Tauschseite ist echt langsam! Und dann wurde bei den Bildern nicht mal ihre Größe angegeben, so dass zu Problemen beim Rendering kommt.

Das Ego des Autors in allen Ehren - aber so kann und sollte (!) das in KEINEM Fall in der Praxis eingesetzt werden!