Warum everarch?
everarch sind ein paar von mir geschriebene Programme mit denen ich meine Daten speichern, finden und sichern will. In diesem Artikel will ich ein wenig darauf eingehen, warum ich überhaupt eine weitere Datenbank baue.
Von klein bis groß
everarch soll von winzig kleinen Textdateien bis zu gigabyteweise großen Filmen alles speichern können. git wäre eine ziemlich perfekte Lösung wenn große Dateien nicht das Repo sprengen würden.
Tags!
Hierarchische Dateisysteme sind der Platzhirsch der Datenorganisation. Ich habe in meiner Vergangenheit mit mit tag-basierten Systemen wie tagfs und perkeep gearbeitet und die Vorteile davon entdeckt. Ein Beispiel… man notiert sich ein paar Gedanken zu den SIMD-Befehlen des neusten AMD CPUs. Wohin soll man diese Notizen am besten ablegen? In das "Notizen" Verzeichnis oder ins das "AMD" Verzeichnis? Mit tags geht beides gleichzeitig.
everarch macht es kinderleicht (nachdem man sich durch den Compilevorgang und das Setup gekämpf hat 😅) Metadaten wie z.B. tags an bestehende Daten anzuheften.
Es sind deine Daten…
… und deshalb solltest Du sie auch in deinem Format speichern können. everarch zwingt dich zu XML aber der Rest ist Dir überlassen. Haben deine Adressbucheinträge ein Vor- und Nachnamefeld oder nur ein Namefeld welches beides enthält? everarch kann alles indizieren weil Du in einem XSLT-Stylesheet beschreibst welche Inhalte suchbar sind.
Oder überlegst Du es dir nach 5 Jahren anders und änderst deine Adressbuchfelder? Nutze dann einfach einen neuen XML-Tag für die neuen Adressbucheinträge und erweitere dein XSLT-Stylesheet. So musst du deine alten Einträge nicht migrieren. So verlierst Du keine Daten, denn man weiß ja "Drei mal migriert ist wie einmal abgebrannt". In everarch passt Du nur die Regeln an wie indiziert wird.
Superschnelle Backups
everarch zerstückelt deine Daten unter der Haube in kleine Häppchen die nach dem Prinzip des Content-Addressed Storage abgelegt werden. So muss everarch bei einem Backup nur vergleichen welche Adressen noch nicht im Backup enthalten sind.
Für die Adressierung wird der SHA-3 Algorithmus mit 224 Bits verwendet. So bekommt man eine Hash-Summe mit deren Hilfe korrupte Daten erkannt werden können. Everarch prüft beim Starten immer ein paar Datenpakete auf korrektheit. Bei Fehlern werden diese Pakete verworfen und bei der nächsten Synchronisierung mit dem Backup wiederhergestellt an einer neune Stelle auf der Festplatte.
Ausserdem ist SHA-3 ein kryptographisch sicherer Hash-Algorithmus wodurch Du erkennen kannst ob deine Daten von einer dritten Partei manipuliert wurden.
Für Dich und deine bessere Hälfte
Daten die Du in everarch ablegst werden mit deinem persönlichen GPG-Schlüssel signiert. So können mehrere Personen ihre Daten in everarch teilen und trotzdem für jeden einzelnen Anwender unterschiedlich indizieren.
Und dank des Content-Adressed Storage Ansatzes wird das extrem wichtige Video von deiner Hochzeit nur einmal auf die Festplatte gespeichert. Und das obwohl ihr beide es unabhängig voneinander zweimal hochgeladen habt.
Klingt das interessant?
Melde Dich 😀
Entweder direkt an mich wie unter in Feedback beschrieben. Oder gerne auch ganz öffentlich über das everarch GitHub Repository.