Datenserialisierung mit Sereal
Die Entwickler des Hotelreservierungsportals Booking.com haben ein Datenserialisierungsformat fĂĽr Perl entwickelt und unter derselben Lizenz wie die Programmiersprache freigegeben.
- Julia Schmidt
Um innerhalb der eigenen Infrastruktur mit weniger unterschiedlichen Serialisierungstechniken arbeiten zu müssen und dadurch die Interoperabilität zu erhöhen, hat das Entwicklerteam des Hotelreservierungsportals Booking.com ein eigenes Datenserialisierungsformat entwickelt. Herausgekommen ist Sereal, ein Protokoll, das vor allem Perls Datenstrukturen in einen Datenstrom umwandeln kann.
Als Vorgaben an das neue Protokoll ließen sich unter anderem der korrekte Umgang mit Perls sogenannten Weak References, Aliases und Regular-Expression-Objekten festhalten. Allgemeiner waren Vorwärts- und Rückwärtskompatibilität, Robustheit, Offenheit und Effizienz in Bezug auf den benötigten Platz und die Arbeitsgeschwindigkeit Ziele. Zudem wurde Wert darauf gelegt, De- und Encoder getrennt voneinander zu implementieren, um die beiden Funktionen unabhängig verbessern zu können.
Um auch für andere Sprachen nutzbar zu sein, wurde Sereal, wie Perl, unter eine Duallizenz (Artistic und GPL) gestellt und das Repository so aufgebaut, dass sich Ergänzungen anderer Sprachen leicht integrieren lassen. Entwickler sollen so motiviert werden, eigene Implementierungen beizusteuern.
Momentan wird Sereal in der Event/Logging-Infrastruktur von Booking.com genutzt und soll bald im Caching Verwendung finden.
Die Ergebnisse eines Performance-Vergleichs zwischen bestehenden Formaten und dem neuen, sind einem Booking.com-Artikel zur Veröffentlichung zu entnehmen. Der Code und die Formatspezifikationen stehen auf Github zur Verfügung. (jul)