In der digitalen Welt gewinnen effiziente und leistungsstarke Datenbankformate zunehmend an Bedeutung. Insbesondere bei großen Mailservern, die Millionen von Nachrichten verwalten müssen, entscheidet die zugrundeliegende Datenbankstruktur maßgeblich über Reaktionsgeschwindigkeit und Zuverlässigkeit. Hier setzt das sogenannte Twom Datenbankformat an, ein neu entwickeltes System, das maßgeblich die Art und Weise verändert, wie Cyrus IMAP Server Daten speichern und verarbeiten. Entwickelt von Bron Gondwana und seit Februar 2025 bereits bei Fastmail im Einsatz, bietet Twom eine Reihe an technischen Innovationen, die es zur bevorzugten Wahl für moderne E-Mail-Infrastrukturen machen. Twom wurde ursprünglich als Nachfolger des bewährten Twoskip-Formats konzipiert, das zwar jahrelang zuverlässig diente, jedoch einige gravierende Schwächen insbesondere in Bezug auf Performance auf modernen Speichersystemen wie ZFS auf NVMe-Festplatten zeigte.
Ein entscheidender Nachteil von Twoskip war die fehlende Unterstützung für Multi-Version Concurrency Control (MVCC). MVCC ermöglicht es mehreren Lesern, gleichzeitig konsistente Datenansichten aufrechtzuerhalten, während gleichzeitig Schreibvorgänge ohne lange Sperrzeiten durchgeführt werden können. Diese Fähigkeit ist enorm wichtig, um Ausfallzeiten oder Performance-Einbrüche bei Wartungsarbeiten wie dem Datenbank-Repacking zu vermeiden. Das Hervorstechendste an Twom ist sein innovativer Einsatz von MVCC, der es erlaubt, dass eine komplette Neuordnung oder „Repack“ einer Datenbank durchgeführt werden kann, während andere Prozesse weiterhin lesend oder sogar schreibend Zugriff auf die Daten haben. Im Vergleich zu Twoskip, bei dem ein exklusiver Lock die Schreibe- und Lesezugriffe während eines Repack-Vorgangs blockierte, stellt Twom sicher, dass Daten während der Umstrukturierung verfügbar bleiben.
Ein Repack, der mit Twoskip früher bis zu 35 Minuten dauerte, kann jetzt in etwa einer Minute abgeschlossen werden – ein Quantensprung in Effizienz und Nutzerfreundlichkeit. Technisch basiert Twom auf einem fortschrittlichen Skiplist-Datenbankformat mit doppelten Level-0-Pointern, was die Namensgebung „two“ erklärt. Zudem steht das „m“ für den konsequenten Einsatz von Memory-Mapping (mmap) und Multi-Version Concurrency Control (MVCC). Die Entscheidung, sowohl für Lese- als auch für Schreibzugriffe Memory-Mapping zu verwenden, zeigt sich als cleverer Schachzug. Traditionell haben Systeme mmap nur lesend eingesetzt und separate Strukturen für Schreibzugriffe verwendet.
Twom ermöglicht somit eine wesentlich effizientere Verwaltung der Daten im Speicher und reduziert dabei den Overhead durch Systemaufrufe drastisch. Die Hash-Funktion xxHash spielt in Twom ebenfalls eine wichtige Rolle. Während Twoskip noch mit CRC32 gearbeitet hat, wurde xxHash aufgrund seiner hervorragenden Performance und des freundlichen Lizenzmodells integriert. Gerade bei kleinen Datenmengen, wie sie oft bei Schlüssel-Wert-Paaren der Fall sind, erweist sich xxHash als deutlich schneller und damit als wesentlicher Faktor für die verbesserte Gesamtperformance. Ein weiteres wesentliches Merkmal von Twom ist die sogenannte „Pre-emptive Allocation“.
Dabei wird die Datei jeweils beim Vergrößern um ein Viertel erweitert, was eine Balance schafft zwischen zu häufigen Dateierweiterungen und übermäßig großen, ungenutzten Bereichen. Diese Erweiterung zieht einen sparsameren Umgang mit Ressourcen nach sich, indem sie Dateisysteme mit Sparse-File-Unterstützung effektiv nutzt. Daraus resultiert eine signifikante Reduzierung der Zeit, die für häufige Speicherzuordnungen und -freigaben benötigt wird. Gerade bei großen Mailkonten, die mehrere Gigabyte Daten umfassen, ist dies ein Segen für den Alltagsbetrieb. Nicht zu unterschätzen ist zudem die Verbesserung des Locking-Mechanismus in Twom.
Bron Gondwana hat im Zuge der Entwicklung herausgefunden, dass traditionelle fcntl-Locks in UNIX-Umgebungen nicht fair sind, was in bestimmten Situationen zu einem sogenannten Writer-Starvation-Problem führen kann, also dem Verhungern von Prozessen, die schreiben wollen. Das Twom-Format implementiert deshalb ein Zwei-Offset-Locking, das sicherstellt, dass wartende Schreibprozesse geordnet und ohne Benachteiligungen ausgeführt werden können. Gerade in stark frequentierten Systemen mit vielen parallelen Zugriffen stellt dies einen wichtigen Fortschritt dar. Die Struktur der Twom-Datenbankdatei selbst ist schlank und klar aufgebaut. Alle Daten werden in einer einzigen Datei gespeichert, die eine geordnete Liste aus Schlüssel-Wert-Paaren enthält.
Die Datei ist transaktional aufgebaut und unterstützt single-threaded exklusive Schreibvorgänge sowie gleichzeitig multiple lesende Prozesse. Dieses Design erlaubt es, von mehreren unabhängigen Programmen auf dieselbe Datenbank zuzugreifen, sofern sie die Locking-Regeln befolgen. Dadurch integriert sich Twom nahtlos in den Betrieb mit modernen Serverarchitekturen und ermöglicht vielfältige Skalierungsmöglichkeiten. Die Handhabung und Untersuchung von Twom-Datenbanken wird durch Tools wie cyr_dbtool erleichtert. Entwicklern und Administratoren steht so ein mächtiges Werkzeug zur Verfügung, mit dem Einträge gesetzt, gelöscht, angezeigt und sogar die gesamte Datenbankstruktur eingesehen werden kann.
Dies macht Debugging und Wartung sehr transparent und unkompliziert. Seit dem Umstieg im Februar 2025 hat Fastmail das Twom-Format erfolgreich in allen Komponenten seiner E-Mail-Server eingeführt, die vorher auf Twoskip setzten. Diese Umstellung erfolgte in mehreren Phasen über zwei Tage hinweg, um einen reibungslosen Übergang und minimale Auswirkungen für die Nutzer zu gewährleisten. Das Ergebnis dieser Maßnahme ist ein erheblich stabilerer Betrieb ohne störende Verzögerungen bei Wartungsarbeiten, was die Nutzererfahrung spürbar verbessert hat. Durch die offene Lizenzierung (CC0 Public Domain) des Twom-Codes, abgesehen von der Verpflichtung zur Nutzung der BSD 2-Klausel-Lizenz für xxHash, steht das Format auch anderen Projekten und Entwicklern offen.
Diese können Twom so leicht in ihre eigenen Anwendungen integrieren oder sogar als Basis für weitere Innovationen im Bereich der Datenbanktechnologien nutzen. Zusammenfassend bietet das Twom Datenbankformat eine überzeugende Kombination aus schneller Performance, verbesserter Parallelität, geringem System-Overhead und robuster Transaktionssicherheit. Es stellt eine deutliche Weiterentwicklung gegenüber älteren Technologien wie Twoskip dar und trägt entscheidend dazu bei, dass Services wie Fastmail zeitgemäß, zuverlässig und performant arbeiten können. Angesichts des stetig wachsenden Datenaufkommens sowie der steigenden Anforderungen an Verfügbarkeit und Skalierbarkeit wird Twom zweifellos auch in Zukunft eine Schlüsselrolle bei der Verwaltung großer, transaktionaler Datensätze spielen. Für Systemadministratoren, Entwickler und Entscheidungsträger, die mit der Verwaltung moderner E-Mail-Infrastrukturen oder allgemeinen datenbankgestützten Anwendungen betraut sind, ist das Verständnis und der Einsatz von Twom ein entscheidender Schritt zur Optimierung von Performance und Stabilität.
Dank seiner durchdachten Architektur und dem Fokus auf moderne Hardware- und Betriebssystemeigenschaften setzt Twom neue Maßstäbe und zeigt eindrucksvoll, wie innovative Softwareentwicklung reale Herausforderungen effizienzsteigernd lösen kann.