Propostas Submetidas

DEI - FCTUC
Gerado a 2024-04-20 06:49:20 (Europe/Lisbon).
Voltar

Titulo Estágio

Creating a Performance Benchmark for Serialization Mechanisms

Áreas de especialidade

Engenharia de Software

Comunicações, Serviços e Infraestruturas

Local do Estágio

DEI-FCTUC

Enquadramento

Serialization is the process of converting objects into a format (e.g., XML, JSON) that can be stored into a file system or transmitted across a network. A serialized object can be reconstructed later in the local or remote computer. Serialization is mostly used either to persist the state of an object or to exchange an object in distributed communication. There are several serialization mechanisms (e.g., Protocol Buffers, Messagepack, FlatBuffers, Jakson, Kryo, Rapid JSON), which differ in several aspects including supported programming languages, supported data types, and performance. The serialization and deserialization processes are time-consuming and bring in performance concerns, especially in applications where these processes are used frequently. Moreover, different serialization techniques may generate different number of bytes for the same object, which affect storage, memory, and bandwidth utilization.

Objetivo

The main objective of this work is to create a performance benchmark for state of the art serialization mechanisms (e.g., Google’s Protocol Buffers, Messagepack, FlatBuffers). To this end, we first need to study existing serialization tools and perform a preliminary comparison between them based on the programming languages, data types supported and other distinctive features. We will then define the benchmark components including benchmark scenarios and workloads. Finally, we will implement the benchmark in several languages, such as Java, C, and Python and compare the serialization mechanisms. Our analysis will be two-fold: speed analysis and space analysis. With the speed analysis, we aim to measure the serialization and deserialization time, and with space analysis, we aim to measure the number of bytes generated for a given object. In practice, the expected outcome of this internship is:
- The definition of a performance benchmark for serialization mechanisms;
- A study regarding performance of existing serialization libraries;
- A research paper, to be submitted and presented at a top international conference, describing the benchmark and results obtained during the experiments.

Plano de Trabalhos - Semestre 1

[Some tasks might overlap; M=Month]
T1 (M1): Knowledge transfer and state of the art review on the serialization mechanisms.
T2 (M2): Survey a set of serialization libraries to be benchmarked.
T3 (M3-M4): Definition of the benchmark components, including a set of benchmark scenarios and workloads.
T4 (M5): Writing the intermediate report.

Plano de Trabalhos - Semestre 2

[Some tasks might overlap; M=Month]
T5 (M6): Integrating the intermediate defense comments in the work and report.
T6 (M6-M7): Implementing the benchmark in Java and in a selected set of languages.
T7 (M8): Experimental study with the benchmark and analysis of the results.
T8 (M9): Write a research paper and submission to a top international conference.
T9 (M10): Writing the thesis.

Condições

The selected student will be integrated in the Software and Systems Engineering (SSE) group of CISUC and the work will be carried out in the facilities of the Department of Informatics Engineering at the University of Coimbra (CISUC - Software and Systems Engineering Group), where a work place and necessary computer resources will be provided.

Observações

Please contact the advisors for any question or clarification needed.

Orientador

Nuno Laranjeiro; Filipe Araújo
cnl@dei.uc.pt 📩