Fuel : a fast general purpose object graph serializer
- Autores
- Días, Martín
- Año de publicación
- 2012
- Idioma
- inglés
- Tipo de recurso
- tesis de grado
- Estado
- versión publicada
- Colaborador/a o director/a de tesis
- Ferro Basombrío, Carlos
Wilkinson, Hernán Alfredo - Descripción
- Since objects need to be stored and reloaded on different environments, serializing object graphs is a very important activity. There is a plethora of serialization frameworks with different requirements and design trade-offs. Most of them are based on recursive parsing of the object graphs, which is often a too slow approach. In addition, most of them prioritize a language-agnostic format instead of speed and language-specific object serialization. For the same reason, such serializers usually do not support features like class-shape changes, global references or executing pre and post load actions. Looking for speed, some frameworks are partially implemented at Virtual Machine (VM) level, hampering code portability and making them difficult to understand, maintain and extend. In this work we present Fuel, a general-purpose object serializer based on these principles: (1) speed, through a compact binary format and a pickling algorithm which invests time on serialization for obtaining the best performance on materialization; (2) good object-oriented design, without special help at VM; (3) serialize any object, thus have a full-featured language-specific format. We implement and validate this approach in Pharo, where we demonstrate that Fuel is faster than other serializers, even those ones with special VM support. The extensibility of Fuel made it possible to successfully serialize various objects: classes in Newspeak, debugger stacks, and full CMS object graphs.
Fil: Días, Martín. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. - Materia
-
OBJECT ORIENTED PROGRAMMING
SERIALIZATION
OBJECT GRAPHS
PICKLE FORMAT
SMALLTALK - Nivel de accesibilidad
- acceso abierto
- Condiciones de uso
- https://creativecommons.org/licenses/by-nc-sa/2.5/ar
- Repositorio
- Institución
- Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
- OAI Identificador
- seminario:seminario_nCOM000729_Dias
Ver los metadatos del registro completo
id |
BDUBAFCEN_c8144a12105113454784cced8aa14e29 |
---|---|
oai_identifier_str |
seminario:seminario_nCOM000729_Dias |
network_acronym_str |
BDUBAFCEN |
repository_id_str |
1896 |
network_name_str |
Biblioteca Digital (UBA-FCEN) |
spelling |
Fuel : a fast general purpose object graph serializerDías, MartínOBJECT ORIENTED PROGRAMMINGSERIALIZATIONOBJECT GRAPHSPICKLE FORMATSMALLTALKSince objects need to be stored and reloaded on different environments, serializing object graphs is a very important activity. There is a plethora of serialization frameworks with different requirements and design trade-offs. Most of them are based on recursive parsing of the object graphs, which is often a too slow approach. In addition, most of them prioritize a language-agnostic format instead of speed and language-specific object serialization. For the same reason, such serializers usually do not support features like class-shape changes, global references or executing pre and post load actions. Looking for speed, some frameworks are partially implemented at Virtual Machine (VM) level, hampering code portability and making them difficult to understand, maintain and extend. In this work we present Fuel, a general-purpose object serializer based on these principles: (1) speed, through a compact binary format and a pickling algorithm which invests time on serialization for obtaining the best performance on materialization; (2) good object-oriented design, without special help at VM; (3) serialize any object, thus have a full-featured language-specific format. We implement and validate this approach in Pharo, where we demonstrate that Fuel is faster than other serializers, even those ones with special VM support. The extensibility of Fuel made it possible to successfully serialize various objects: classes in Newspeak, debugger stacks, and full CMS object graphs.Fil: Días, Martín. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesFerro Basombrío, CarlosWilkinson, Hernán Alfredo2012info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttps://hdl.handle.net/20.500.12110/seminario_nCOM000729_Diasenginfo:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/arreponame:Biblioteca Digital (UBA-FCEN)instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesinstacron:UBA-FCEN2025-09-29T13:43:40Zseminario:seminario_nCOM000729_DiasInstitucionalhttps://digital.bl.fcen.uba.ar/Universidad públicaNo correspondehttps://digital.bl.fcen.uba.ar/cgi-bin/oaiserver.cgiana@bl.fcen.uba.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:18962025-09-29 13:43:41.858Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse |
dc.title.none.fl_str_mv |
Fuel : a fast general purpose object graph serializer |
title |
Fuel : a fast general purpose object graph serializer |
spellingShingle |
Fuel : a fast general purpose object graph serializer Días, Martín OBJECT ORIENTED PROGRAMMING SERIALIZATION OBJECT GRAPHS PICKLE FORMAT SMALLTALK |
title_short |
Fuel : a fast general purpose object graph serializer |
title_full |
Fuel : a fast general purpose object graph serializer |
title_fullStr |
Fuel : a fast general purpose object graph serializer |
title_full_unstemmed |
Fuel : a fast general purpose object graph serializer |
title_sort |
Fuel : a fast general purpose object graph serializer |
dc.creator.none.fl_str_mv |
Días, Martín |
author |
Días, Martín |
author_facet |
Días, Martín |
author_role |
author |
dc.contributor.none.fl_str_mv |
Ferro Basombrío, Carlos Wilkinson, Hernán Alfredo |
dc.subject.none.fl_str_mv |
OBJECT ORIENTED PROGRAMMING SERIALIZATION OBJECT GRAPHS PICKLE FORMAT SMALLTALK |
topic |
OBJECT ORIENTED PROGRAMMING SERIALIZATION OBJECT GRAPHS PICKLE FORMAT SMALLTALK |
dc.description.none.fl_txt_mv |
Since objects need to be stored and reloaded on different environments, serializing object graphs is a very important activity. There is a plethora of serialization frameworks with different requirements and design trade-offs. Most of them are based on recursive parsing of the object graphs, which is often a too slow approach. In addition, most of them prioritize a language-agnostic format instead of speed and language-specific object serialization. For the same reason, such serializers usually do not support features like class-shape changes, global references or executing pre and post load actions. Looking for speed, some frameworks are partially implemented at Virtual Machine (VM) level, hampering code portability and making them difficult to understand, maintain and extend. In this work we present Fuel, a general-purpose object serializer based on these principles: (1) speed, through a compact binary format and a pickling algorithm which invests time on serialization for obtaining the best performance on materialization; (2) good object-oriented design, without special help at VM; (3) serialize any object, thus have a full-featured language-specific format. We implement and validate this approach in Pharo, where we demonstrate that Fuel is faster than other serializers, even those ones with special VM support. The extensibility of Fuel made it possible to successfully serialize various objects: classes in Newspeak, debugger stacks, and full CMS object graphs. Fil: Días, Martín. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. |
description |
Since objects need to be stored and reloaded on different environments, serializing object graphs is a very important activity. There is a plethora of serialization frameworks with different requirements and design trade-offs. Most of them are based on recursive parsing of the object graphs, which is often a too slow approach. In addition, most of them prioritize a language-agnostic format instead of speed and language-specific object serialization. For the same reason, such serializers usually do not support features like class-shape changes, global references or executing pre and post load actions. Looking for speed, some frameworks are partially implemented at Virtual Machine (VM) level, hampering code portability and making them difficult to understand, maintain and extend. In this work we present Fuel, a general-purpose object serializer based on these principles: (1) speed, through a compact binary format and a pickling algorithm which invests time on serialization for obtaining the best performance on materialization; (2) good object-oriented design, without special help at VM; (3) serialize any object, thus have a full-featured language-specific format. We implement and validate this approach in Pharo, where we demonstrate that Fuel is faster than other serializers, even those ones with special VM support. The extensibility of Fuel made it possible to successfully serialize various objects: classes in Newspeak, debugger stacks, and full CMS object graphs. |
publishDate |
2012 |
dc.date.none.fl_str_mv |
2012 |
dc.type.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis info:eu-repo/semantics/publishedVersion http://purl.org/coar/resource_type/c_7a1f info:ar-repo/semantics/tesisDeGrado |
format |
bachelorThesis |
status_str |
publishedVersion |
dc.identifier.none.fl_str_mv |
https://hdl.handle.net/20.500.12110/seminario_nCOM000729_Dias |
url |
https://hdl.handle.net/20.500.12110/seminario_nCOM000729_Dias |
dc.language.none.fl_str_mv |
eng |
language |
eng |
dc.rights.none.fl_str_mv |
info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar |
eu_rights_str_mv |
openAccess |
rights_invalid_str_mv |
https://creativecommons.org/licenses/by-nc-sa/2.5/ar |
dc.format.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
publisher.none.fl_str_mv |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital (UBA-FCEN) instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales instacron:UBA-FCEN |
reponame_str |
Biblioteca Digital (UBA-FCEN) |
collection |
Biblioteca Digital (UBA-FCEN) |
instname_str |
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
instacron_str |
UBA-FCEN |
institution |
UBA-FCEN |
repository.name.fl_str_mv |
Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
repository.mail.fl_str_mv |
ana@bl.fcen.uba.ar |
_version_ |
1844618757892210688 |
score |
13.070432 |