Datenfehler erkennen und korrigieren.
-
Hallo zusammen,
ich suche nach einem Weg, um zumindest in einem gewissen Rahmen Fehler bei gespeicherten Daten zu beheben.
Die Daten werden mit der ZLib komprimiert und dann kontinuierlich in eine Containerdatei geschrieben, der Zugriff erfolgt indexsequentiell über eine Indexdatei mit Suchkriterium und Datei-Index.
Bisher plane ich folgenden Ansatz (bisher habe ich noch nichts implementiert):
Über jeden Datensatz wird ein Hash gebildet (z.B. MD5).
Dieser Hash wird in der Indexdatei abgelegt.
Zusätzlich wird der nächste Datensatz mit diesem Datensatz XOR-verknüpft und das Ergebnis gespeichert (e.G.: Datendatei: ... Datensatz34 Datensatz35 XORDatensatz Datensatz36 Datensatz37 XORDatensatz ...)
Wenn nun also beim Einlesen der gespeicherte Hash nicht zum berechneten Hash passt, könnte ich einfach den nächsten Datensatz und den XOR-Datensatz mit ihren Hash vergleichen. Wenn beide passen, kann ich dann den verlorenen Datensatz wiederherstellen.
Meine Frage: Irgendwelche besseren Vorschläge? Fertige (kostenlose) Lösungen? Feedback?
Bin für jeden Kommentar dankbar

-
-
Gregor schrieb:
http://de.wikipedia.org/wiki/Liste_fehlerkorrigierender_Codes
Moin,
erstmal danke für den Link. Allerdings geht es mir um die Korrektur typischer Festplattenprobleme, bei denen üblicherweise der ausgefallene Bereich in Sektoren gemessen werden kann.
Ich bin kein Mathemathiker, weshalb mir die Entschlüsselung siebenfach verschachtelter Vektor-Matrizen-Multiplikations-Zuordnung-Gleichungen mit 8000 Unbekannten relativ schwierig anmutet.
Gibts da vielleicht noch irgendwo einen Artikel über meinen Problembereich, den man auch LESEN kann, ohne Schweißausbrüche zu bekommen?
-
Sid2K6 schrieb:
Ich bin kein Mathemathiker, weshalb mir die Entschlüsselung siebenfach verschachtelter Vektor-Matrizen-Multiplikations-Zuordnung-Gleichungen mit 8000 Unbekannten relativ schwierig anmutet.
Gibts da vielleicht noch irgendwo einen Artikel über meinen Problembereich, den man auch LESEN kann, ohne Schweißausbrüche zu bekommen?
Weiß ich nicht. ...aber um es mal direkt auszudrücken:
Bestimmte Bereiche der Informatik oder auch beliebiger anderer Wissenschaften benötigen im Kern eine gewisse Menge an Mathematik. Und dazu gehört auch die Kodierungstheorie. Das sollte man akzeptieren. Wenn Du Dich mit dieser Materie auseinandersetzen möchtest und die zugrundeliegende Mathematik noch nicht kannst, musst Du sie halt lernen. Ansonsten wird Dir der Bereich im Großen und Ganzen wohl verschlossen bleiben.
-
Gregor schrieb:
Sid2K6 schrieb:
Ich bin kein Mathemathiker, weshalb mir die Entschlüsselung siebenfach verschachtelter Vektor-Matrizen-Multiplikations-Zuordnung-Gleichungen mit 8000 Unbekannten relativ schwierig anmutet.
Gibts da vielleicht noch irgendwo einen Artikel über meinen Problembereich, den man auch LESEN kann, ohne Schweißausbrüche zu bekommen?
Weiß ich nicht. ...aber um es mal direkt auszudrücken:
Bestimmte Bereiche der Informatik oder auch beliebiger anderer Wissenschaften benötigen im Kern eine gewisse Menge an Mathematik. Und dazu gehört auch die Kodierungstheorie. Das sollte man akzeptieren. Wenn Du Dich mit dieser Materie auseinandersetzen möchtest und die zugrundeliegende Mathematik noch nicht kannst, musst Du sie halt lernen. Ansonsten wird Dir der Bereich im Großen und Ganzen wohl verschlossen bleiben.
Holla, nur damit wir uns nicht mißverstehen: Ich wollte dir nichts Böses. Mir ist selbstverständlich klar, daß ich unter Umständen nicht darum herumkomme, mir weiteres Wissen anzueignen, um mit bestimmten Informationen etwas anfangen zu können.
Ich hab halt "ein wenig" übertrieben

Nur hätte es ja sein können, daß es auch eine Erklärung von Algorithmen gibt, die flüssiger und verständlicher geschrieben ist.
Im Übrigen bin ich der Ansicht, daß man alles lernen kann, das man für manches aber qualifizierte Anleitung zu schätzen lernt

Gruss
Sid
-
Lies "qualifizierte Anleitung" als "ausführliche / vereinfachte Anleitung". Ich spielte dabei auf pädagogische Qualifikationen an.
-
Bei Wikipedia ist das alles zumeist sehr knapp beschrieben. Es gibt jede Menge Bücher über Kodierungstheorie, die sind zumeist deutlich ausführlicher als Wikipedia. Allerdings setzen auch die für gewöhnlich Kenntnisse in Linearer Algebra (vor allem über endlichen Körpern) voraus.
Das Buch von Blahut war, wenn ich mich recht erinnere ziemlich brauchbar, allerdings auch recht teuer. Aber vielleicht kommst Du über ne Bibliothek ran.
Algebraic Codes for Data Transmission | ISBN: 0521553741
-
Sid2K6 schrieb:
Holla, nur damit wir uns nicht mißverstehen: Ich wollte dir nichts Böses. Mir ist selbstverständlich klar, daß ich unter Umständen nicht darum herumkomme, mir weiteres Wissen anzueignen, um mit bestimmten Informationen etwas anfangen zu können.
Ich wollte Dir auch nichts böses, sorry wenn der Ton sehr direkt war.

Ich wollte Dir nur ganz direkt klar machen, dass Du in dem Bereich nichts reißen wirst, wenn Du die darunterliegende Mathematik nicht halbwegs beherrscht. Die dient dort als Sprache UND Werkzeug.
-
Ich nehms dir auch nicht übel, ich wollte nur sichergehen, daß du es auch nicht tust

Jester hat mein Gefühl ziemlich genau erfasst: Die entsprechenden Artikel in der WP sind kondensiertes Wissen. Mir wäre allerdings die Ausgangssubstanz mit den Überlegungen die zur Entwicklung der Formeln geführt haben, lieber. Das hilft beim Verständnis

Denn, wie erwähnt, ich bin kein Mathematik-Genie. Mathematik fliegt mir nicht einfach zu. Ich verstehe irgendwann alles, aber je ausführlicher die Erklärung ist, desto schneller tritt dieses Verständnis ein

Das Buch werde ich mir mal anschauen. Danke, Jester und Gregor.