Mein bisheriger Serializer für die Sessions ist Storable::freeze
und Storable::thaw
. Der Storable-Algorithmus ist in c implementiert und daher sehr performant. Für Sessiondateien die ohnehin nicht portable sein müssen, ist Storable der ideale Serializer und binsafe ist Storable auch.
Mit Storable erzeugte Binaries sind jedoch alles andere als kompatibel über unterschiedliche Plattformen und auch Perlversionen hinweg. Ein eigener Algorithmus ist da unumgänglich und so habe ich für EAV Datenstrukturen einen Algorithmus entwickelt den ich auch in c, Perl, PHP und JavaScript implementiert habe. D.h., damit erzeugte Dateien sind allesamt mit og. Programmier- bzw. Scriptsprachen lesbar.
EAV Structs sind linear aufgebaut und lassen sich auch in einer ganz normalen MySQL Tabelle einfrieren wobei die Daten sogar durchsuchbar sind. Damit lassen sich Data Access Layer realisieren wo nur noch die Anwendung über die Daten bestimmt und nur der DAL über den Speicherort.
Das sind die Vorteile eigener Serializer und wie wir sehen kommt da Einiges mehr zusammen als nur die Freude übers Selbstgemachte.
Die Idee hinter dem hier vorgestellten Serializer ist die Linearisierung geschachtelter Datenstrukturen. Wenn ich das in c implementiere wird das genauso schnell wie JSON, davon bin ich überzeugt, auch wenn die Sequenzen länger sind.
MfG