• Hallo zusammen,

    einer der größten Schwachpunkte von b1gMail ist m.E. die fehlende horizontale Skalierbarkeit. Bei großen Setups ist oft die Datenbank der Flaschenhals, da alle Mail-Metadaten in einer einzigen Tabelle gespeichert werden.

    Eine Idee, dies mit relativ wenig Aufwand zu lösen, wäre es, mehrere Datenbankserver zu unterstützen. Jedem Benutzer wird dann ein Datenbankserver zugeordnet. Die Mails (und ggf. auch andere Daten wie Ordner, Termine, Adressen, ...) würden dann auf dem jeweiligen Server abgelegt. So wird die Last verteilt und man kommt mit mehreren günstigen, kleinen Servern aus. Außerdem kann man nach Bedarf neue Server hinzufügen.

    Der Admin könnte im ACP entsprechend die Zugangsdaten mehrerer "Shard"-Server hinterlegen und dann festlegen, nach welcher Strategie ein Benutzer bei Registrierung einem Shard zugeordnet werden soll.

    Was dazu m.E. nötig wäre:

    • Shard-Administrationsbereich zum Anlegen von neuen Servern und Konfiguration der Sharding-Strategie.
    • Alle Orte, an denen auf die bm60_mails-Tabelle zugegriffen wird, müssten durch ein $userShard-Objekt erfolgen, statt durch das zentrale/globale $db-Objekt.
    • Code vom ACP / cron.php, der User-übergreifende Aktionen in der bm60_mails-Tabelle durchführt, muss entsprechend überarbeitet werden.
    • Entsprechende Anpassung von b1gMailServer, ggf. z-push-Plugin.

    Ich wollte diese Idee, die ich eigentlich in einer b1gMail-Folgeversion (7.5, 8.0?) implementieren wollte, nur mal hier lassen, falls sich jemand daran wagen will.

    Viele Grüße

    Patrick

  • Die Möglichkeit, mehrere BMS mit versch. IPs auf einer Installation zu betreiben wäre auch erstrebenswert. B1gMail sollte entscheiden können, mit welchem Mailserver versendet wird, z.B. wenn ein BMS ausfällt, wegen Wartungsarbeiten nicht verfügbar ist oder einfach weil eine IP-Adresse eines BMS eventuell auf einer DNSBL-Liste gelandet ist.

    Die großen Mailprovider betreiben ja auch mehrere Mailserver nebeneinander.

Jetzt mitmachen!

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