DataDiet - Dateien auf Diät

Programme zum Packen von Daten auf Online-Basis sind inzwischen in Mode zu gekommen. Bereits in [1] war mit DataLight ein Programm zur Online-Komprimierung von Dateien auf dem Prüfstand. Dali man die gleiche Zielsetzung auch auf andere Art und Weise verwirklichen kann, zeigt DataDiet. Dieses Programm verwendet ein grundsätzlich anderes Verfahren zum Packen der Dateien als DataLight.

Noch einmal kurz zur Erinnerung: DataLight arbeitet beim Packen von Daten blockorientiert, also auf BIOS-Ebene. Mehrere Sektoren eines Mediums werden dabei als eine Einheit angesehen, egal ob es sich dabei um Verwaltungssektoren (also FAT oder Directory) oder um Datensektoren handelt. Beim Zugriff auf die komprimierten Daten werden diese gelesen, dekomprimiert und in dieser Form im Speicher gehalten. Bei Schreibzugriffen werden die Daten komprimiert und zurückgeschrieben Die Komprimierung von DataLight bezieht sich dabei stets auf alle Daten einer Diskette oder Festplatten-Partition.

Ein interessantes Konzept

DataDiet verfolgt hier eine andere Strategie. Es wird nicht das Speichermedium als Ganzes komprimiert, sondern jede Datei für sich. FATs und Directory bleiben somit unverändert, komprimiert werden lediglich Datensektoren. Bei jedem Dateizugriff wird geprüft, ob eine komprimierte oder eine unkomprimierte Datei angesprochen wird. Liegen komprimierte Daten vor, wird die komplette Datei zunächst vollständig ausgepackt und in einem speziellen Arbeitsverzeichnis in entpackter Form bereitgehalten. Alle weiteren Zugriffe auf die komprimierte Datei werden von DataDiet auf die unkomprimierte Kopie im Arbeitsverzeichnis umgelenkt. Beim Schließen der Datei oder bei Beendigung eines Programms wird diese Kopie dann wieder komprimiert und an die richtige Position geschrieben. Diese trickreiche Vorgehensweise hat den Vorteil, daß nach dem einmaligen Entpacken der Datei solange keine Zeitverluste durch Komprimierungsoperationen mehr auftreten. bis die Datei endgültig zurückgeschrieben wird. Da bei diesem Verfahren keine direkten Zugriffe auf einzelne Sektoren eines Mediums erfolgen, läßt sich die von DataDiet realisierte Art der Dalenkompression auch in Netzwerken verwenden.

Installation

Kommen wir zur Installation von DataDiet. Los geht’s mit dem Kopieren des DataDiet-Treibers in den AUTO-Ordner des Boot-Laufwerks. Da die Reihenfolge der Programme im AUTO-Ordner nicht ganz unwichtig ist, gibt das Handbuch hierzu einige Hinweise. Der wichtigste Punkt der Installation ist die Konfiguration von DataDiet. Die Programmbeschreibung wartet zunächst mit Hinweisen zu einer einfachen Installation auf. die die besonderen Möglichkeiten des Programms außer acht läßt und sich auf das Wesentliche beschränkt. Dies dürfte besonders für denjenigen nützlich sein, der sich mit der Datenorganisation auf Festplatten weniger gut auskennt.

Beim Konfigurieren von DataDiet wird in erster Linie festgelegt, welche Dateien auf welchem Laufwerk komprimiert werden sollen. Da DataDiet dateiorientiert arbeitet, hat man völlig freie Wahl bei deren Auswahl. Beispielsweise lassen sich bestimmte Laufwerke, Ordner oder Dateitypen von der Komprimierung ausschließen. Letzteres ist vor allen Dingen dann interessant, wenn sich bereits komprimierte Dateien (Archive) auf einem Laufwerk befinden. Diese lassen sich naturgemäß nicht weiter komprimieren und werden deshalb je nach Einstellung von DataDiet ignoriert. Schließlich wird noch das Arbeitsverzeichnis festgelegt, in dem sich später die Arbeitskopien der komprimierten Dateien befinden. Dieses Verzeichnis kann auch auf einer RAM-Disk eingerichtet werden, was Geschwindigkeitsvorteile gegenüber einer Festplatte oder gar Diskette bringen kann. Hat man sich für eine Grundeinstellung entschieden, kann man diese in Form einer editierbaren Textdatei sichern.

Für die Komprimierung stehen zwei Algorithmen zur Verfügung, die sich durch Geschwindigkeit und Effizienz voneinander unterscheiden. Sie ahnen es sicher schon: Der effizientere Algorithmus ist natürlich auch der langsamere. DataDiet erlaubt es, beide Algorithmen in Abhängigkeit von der Dateilänge nebeneinander einzusetzen. So lassen sich lange Dateien mit dem einen, kürzere Dateien mit dem anderen Verfahren komprimieren. Diese Einstellung läßt sich zu jedem Zeitpunkt wieder ändern, ohne neu booten zu müssen.

Hat man DataDiet den eigenen Bedürfnissen entsprechend konfiguriert (odereinfach die Standardeinstellung übernommen), ist das Programm nach dem nächsten Reset zwar aktiv ...

Komprimierung zum ersten

.. aber natürlich ist zu diesem Zeitpunkt noch gar nichts komprimiert. Um die in der DataDiet-Konfiguration festgelegten Dateien erstmalig zu packen, steht ein Hilfsprogramm zur Verfügung. Es komprimiert lediglich alle von der Konfiguration erfaßten Dateien und wird anschließend nicht weiter benötigt. Alle weiteren Dateien, die in Zukunft zur Komprimierung anstehen, werden automatisch verarztet.

Ausführbare Programme können von DataDiet nicht ohne weiteres komprimiert werden. Dies liegt daran, daß es bei dem von DataDiet verwendeten Verfahren nicht möglich ist, ein Programm während des Programmstarts zu entpacken. Um Programmdateien dennoch in komprimierter Form einsetzen zu können, befindet sich DC Squish im Lieferumfang. DC Squish stellt ein eigenständiges Programm dar, das ausführbare Dateien zunächst komprimiert und dann mit einem Entpacker versieht. Dieser ist dafür zuständig, beim Starten eines mit DC Squish komprimierten Programms zunächst die ursprünglichen Daten zu entpacken und erst dann das eigentliche Programm zu aktivieren. Dieses Verfahren läßt sich allerdings ohne weiteres nur bei Programmen anwenden, die nicht im Rahmen ihrer eigenen Konfiguration ihren Programmcode verändern. Dies ist bei den weitaus meisten Programmen jedoch nicht der Fall.

Die Gretchenfrage

Hier geht es natürlich um die Geschwindigkeit, oder eher um den Verlust dergleichen beim Einsatz von DataDiet. Es ist nicht so einfach, hiervon einen objektiven Eindruck zu vermitteln. Ein einfacherTest wie in [1), bei dem lediglich eine große Zahl an Dateien kopiert wird, würde jedenfalls zu irreführenden Ergebnissen führen. Beim Kopieren brauchen schließlich keine Daten entpackt zu werden, was dazu führt, daß das Kopieren komprimierter Dateien aufgrund der kleineren Dateilängen schneller vor sich geht als im normalen Betrieb. Um also eine Aussage über die Geschwindigkeit der DataDiet-Routinen zu erhalten, muß man sicherstellen, daß die Daten zwischenzeitlich ge- oder entpackt werden. Hierzu werden Daten zwischen zwei Festplatten-Partitionen kopiert, wobei eine Partition nur unkomprimierte, die andere nur komprimierte Dateien enthält. Dies läßt sich durch eine geeignete Konfiguration von DataDiet realisieren.

Testläufe auf Atari ST und TT mit Festplatten unterschiedlicher Übertragungsrate zeigen, daß für das Kopieren größerer Datenmengen beim TT höchstens dreimal mehr Zeit benötigt wird als im Normalfall. Beim ST sieht es trotz der geringeren Taktfrequenz nicht viel ungünstiger aus: Hier steigt die Wartezeit im Schnitt auf ein Vierfaches an. Dabei hängen die genauen Werte natürlich stets davon ab, wie viele nicht zu komprimierende Dateien (beispielsweise Programmdateien) kopiert werden. Nun ist es allerdings nicht die Regel, daß man Megabytes an Daten hin-und herkopiert. Häufig beschränkt sich die Arbeit am Rechner auf das Laden und Speichern einzelner Dateien, so z.B. auch bei der Textverarbeitung. Wie sieht es also beim Laden einer großen Textdatei aus? Dieser Vorgang nimmt mit DataDiet die vier- bis fünffache Zeit in Anspruch, das Sichern der gleichen Datei dauert ein wenig länger.

Haken und Ösen

Neben einer Reihe von Vorteilen zeigen sich bei dem von DataDiet verwendeten Verfahren auch zwei Nachteile. Daß Programmdateien getrennt von den restlichen Dateien komprimiert werden müssen, wurde bereits angesprochen. Hinzu kommt ein Problem, das die Dateilängen betrifft. Komprimierte Dateien sind schließlich nur scheinbar kürzer. Im Klartext: Der Directory-Eintrag einer komprimierten Datei bezieht sich stets auf die physikalische Größe einer Datei, also auf den Platz, den diese tatsächlich benötigt. Einige Programme erfragen nun die Dateilänge über Funktionen des Betriebssystems, die sich auf die im Directory vermerkte Länge stützen. Da dieser Wert aber in der Regel zu klein ist, besteht die Gefahr, daß beim anschließenden Laden der Datei nicht genügend Zeichen berücksichtigt werden.

DataDiet bietet für solche Fälle die Option, den vom Betriebssystem gelieferten Wert für die Dateilänge zu beeinflussen, so daß in jedem Fall die „wahre“ Länge einer Datei zurückgeliefert wird. Dies ist allerdings mit einem Zeitverlust bei Datenzugriff verbunden. Zwar wird in der Programmbeschreibung darauf hingewiesen, daß eine solche Korrektur der Dateilänge in der Regel nicht notwendig ist, aber der Verzicht auf die Dateilängenkorrektur birgt die Möglichkeit eines Datenverlustes. Der unbedarfte Anwender sollte hier Vorsicht walten lassen. Auch wenn DataDiet mit einer README-Datei ausgeliefert wird, die Programme aufzählt, die die korrekte Dateilänge benötigen, sollte man hier kein Risiko eingehen.

Von diesem Spezialfall abgesehen, ist die Datensicherheit bei Verwendung von DataDiet als hoch einzustufen. Dies folgt aus dem Umstand, daß jede Datei, während sie bearbeitet wird, weiterhin in komprimierter Form vorliegt und somit jeweils nur die im Arbeitsverzeichnis abgelegte Kopie bearbeitet wird. Die Gefahr eines Datenverlustes ist somit nicht höher einzustufen, als beim Arbeiten mit unkomprimierten Daten.

Schlußpunkt

Das von DataDiet verwendete Verfahren zur Online- Komprimierung verbindet eine akzeptable Geschwindigkeit mit hoher Datensicherheit. Besonders praktisch ist es, daß sich alle Einstellungen jederzeit durch ein Accessory verändern lassen, wobei sich die Änderungen sofort auswirken. Dadurch, daß man Dateien von der Komprimierung ausschließen kann, ist ein schneller Zugriff auf häufig benötigte Daten gewährleistet, so daß sich der für online-Komprimierer obligatorische Geschwindigkeitsverlusts in Grenzen hält. Was die Besonderheiten in Verbindung mit der Dateilänge und der Komprimierung von Programmdateien betrifft, lassen sich Schwierigkeiten bei der Handhabung von DataDiet jedoch nicht ganz ausschließen. Das informative Handbuch ist in einem gut lesbaren Stil geschrieben, der auch den weniger versierten Benutzer nicht überfordert. Das Prinzip, nach dem DataDiet arbeitet, wird recht ausführlich erklärt, so daß man nach dem Studium des Handbuchs einen guten Eindruck von der Funktionsweise des Programms gewonnen hat.

Als störend haben sich während der Testphase kleinere Mängel in puncto sauberer Programmierung erwiesen. So trägt DataDiet seinen cookie falsch ein. falls der cookie jar bereits voll ist. Außerdem scheinen die Redraw-Routinen der Dialogboxen in manchen Fällen nicht korrekt zu funktionieren. Wichtig für Besitzer des KAOS-TOS ist noch die Tatsache, daß DataDiet nicht mit dieser inoffiziellen, modifizierten Systemversion zusammenarbeitet. Auch unter MultiTOS läßt sich das Programm derzeit noch nicht einsetzen. Was den Preis betrifft: DataDiet ist für 129,- zu haben.

Bezugsadresse:
Artifex Computer GmbH
Anton-Burger-Weg 147
W-6000 Frankfurt 70

Literatur:

[1] „DataLight - Per Software aufgemotzt", ST-Computer 4/92


Uwe Seimet
Aus: ST-Computer 09 / 1992, Seite 59

Links

Copyright-Bestimmungen: siehe Über diese Seite