Welche Speicherart nutzt ihr?

    • Offizieller Beitrag

    b1gMail 7.4 bietet zwei Speicherarten an. Diese wären:

    • Eine Datei pro Objekt (E-Mails werden als Dateiobjekt abgelegt)
    • Eine Datei pro Benutzer (eine SQLite-Datenbank/BlobDB pro Nutzer)

    Welche nutzt ihr und warum haltet ihr es für die bessere Wahl?

    Anmerkung zu eine Datei pro Benutzer:

    Diese sollte man nicht nutzen, wenn ein Shared-Hoster die max. Dateigröße beschränkt. Auch bei NAS-Systemen wird es abgeraten, da nicht jeder mit der FileLocking-Methode von SQLite klarkommt.

    Dafür hat man nur eine Datei pro Benutzer, während bei eine Datei pro Objekt alles einzeln als Datei abgelegt wird. Bei b1gMail 7.3 und früher gab es auch die Möglichkeit die Daten in der MySQL/MariaDB-Datenbank abzuspeichern.

  • Wäre grundsätzlich bei der SQLite variante nur gefällt mir das Konstrukt nicht das es pro Benutzer eine "Datei" gibt was bei sehr grossen Postfächer aus meiner Sicht gerade bei Backup oder Snapshots einfach jedesmal einen Change gibt und immer alles komplett gesichert wird.

    Viel besser wäre es wenn man einstellen könnte das es pro Jahr oder Monat eine neue Datei gibt denn in der regel ist alles was älter wie ein Jahr oder sogar noch weniger ist nur noch als Persönliches Archiv zu betrachten (gelöscht wird ja sowieso nie). Ein Pluspunkt wäre dann noch das man z.B. das aktuelle Jahr auf einem schnelleren Storage betreiben kann und alles ältere auf langsamere Platten oder sogar S3 auslagern könnte, das würde gerade bei grösseren Systemen die Kosten nicht so in die höhe treiben...

  • pro Benutzer, ich habe hier noch einen Dienst mit 100.000.000 einzelnen Datein, geht gar nicht für Backups, braucht 5 Tage dafür und ich habe schon SSD auf der produktiven Seite

  • Wie Backupst du dein System?

    Dafür wäre es dann aber sehr hilfreich wenn pro Jahr oder Monat eine Datei da wäre, dann muss dein Backup nur das aktuelle (wo die meisten Veränderungen stattfinden) sichern und nicht immer alles...

  • Wie Backupst du dein System?

    Dafür wäre es dann aber sehr hilfreich wenn pro Jahr oder Monat eine Datei da wäre, dann muss dein Backup nur das aktuelle (wo die meisten Veränderungen stattfinden) sichern und nicht immer alles...

    Wäre sinnvoll. Rsync tatsächlich noch, ich habe halt lediglich einen Hetzner Server aus der Serverbörse, das geht bei blob ganz gut aber bei der 7.2 mit den einzelnen MSG Datein dauert das halt ewig

  • Genau bei Rsync sicherst du ja immer den gesamten Blob, klar immer noch performanter wie 1000ende kleinst Daten aber von der datenmenge und laufzeit wahnsinn...

    das war bei mir schon immer ein Problem, damals wegen der Bandbreiten und HDD (iops), das problem ist halt mitgewachsen...wir haben zwar krasse Hardware und Gbit im Vergleich zu früher aber die Datenmengen sind halt auch mitgewachsen

  • Ich mache komplette Snapshots des Systems auf einen von uns betriebenen Backup Server (falls jemand Proxmox VE betreibt und Interesse hat) und zusätzlich aus der Historie mit rsnapshot, dauert aber ist ja nur eine zweite Kopie und wird in naher Zukunft wegfallen.


    Das ding mit den Blobs ist halt cool aber aus meiner Sicht nicht nicht ganz fertig gedacht...

  • BorgBackup wäre auch zu empfehlen. Es erstellt Backups inkrementell, verschlüsselt und dedupliziert. Für Hetzner gibt es eine Anleitung auf Storage Boxen: https://docs.hetzner.com/de/storage/sto…ssh-rsync-borg/. Macht am meisten nur Sinn, wenn man eine Datei pro Objekt wählt.

    Jup aktuell habe ich 28TB an Daten, da tuts die Storage box nicht mehr, ich nutze die für zwei kleine Dienste, die hat ja auch eine eigene Backup Funktion via snaps, ich mach aber auch da immer rsync die 4 TB sind in eigentlich schnell durch, eine Zeit lang hatte ich die Storage box sogar als Storage direkt eingesetzt auch produktiv allerdings gab da oft Wartungen, so dass ich das irgendwann umgestellt hab.

  • Wenn wir beim Thema Backup sind: Die zentrale Speicherung aller Mails bzw. Mail-Rumpfdaten in 1 Tabelle ({pre_mails) ist fatal. Das sollte man im Zuge der npassung ebenfalls ändern.

  • Wenn wir beim Thema Backup sind: Die zentrale Speicherung aller Mails bzw. Mail-Rumpfdaten in 1 Tabelle ({pre_mails) ist fatal. Das sollte man im Zuge der npassung ebenfalls ändern.

    Stimme ich voll und ganz zu. jeder Benutzer sollte seine eigene Tabelle bekommen mit seinen eMails.

  • Ich denke ein Sharding-Ansatz wäre sinnvoller, habe dazu hier im Forum schonmal irgendwann was geschrieben.

    Hört sich spannend an.

    Wäre es evtl. auch eine Möglichkeit sofern das performant machbar wäre das das in eine SQLite DB ausgelagert wird ähnlich wie die für die E-Mails (eine Datei pro Benutzer)? Ist jetzt nur laut gedacht... weiss aber nicht ob das bezüglich Indexierung etc. überhaupt machbar wäre...

  • Wenn wir beim Thema Backup sind: Die zentrale Speicherung aller Mails bzw. Mail-Rumpfdaten in 1 Tabelle ({pre_mails) ist fatal. Das sollte man im Zuge der npassung ebenfalls ändern.

    Meine MySQL-Datenbank ist mittlerweile rund 300 GB groß, und allein die Mail-Tabelle umfasst ca. 160 GB. Das macht den Betrieb teuer, was RAM angeht, und wirkt sich massiv auf die Performance aus. Jede Operation auf dieser Tabelle ist extrem zeitaufwendig – man kann nicht einfach mal eben etwas ändern oder umstrukturieren, weil alles im laufenden Betrieb passieren muss.

    Sharding wurde hier erwähnt – das wäre grundsätzlich sinnvoll, aber in einem gewachsenen System mit zentraler Tabellennutzung nicht ohne Weiteres umsetzbar.

    Was man sich aber überlegen könnte:

    • Eine Archivfunktion im Adminbereich, die automatisch pro Jahr die Mails in eigene Tabellen auslagert (mails_2023, mails_2024, etc.). Neue Mails landen dann nur in der aktuellen Tabelle. Ältere Daten bleiben lesbar, belasten aber nicht mehr jede Abfrage.
    • Alternativ oder zusätzlich: Partitionierung nach Datum oder Benutzergruppen. Das reduziert die Menge an Daten, die bei einer Query gescannt wird, deutlich.
    • Sharding langfristig denkbar – etwa durch Aufteilung nach Usern auf verschiedene Tabellen oder Datenbanken –, aber das wäre ein größerer Umbau.

    Aktuell suche ich nach Möglichkeiten, wie sich das Ganze im laufenden Betrieb entschärfen lässt. Jede kleine Optimierung hilft, denn bei solchen Datenmengen zählt wirklich jede Sekunde.

    2 Mal editiert, zuletzt von Denny (20. Mai 2025 um 09:40)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!