Publicação
Implementation and evaluation of tagged causal multicast as a rust library
| Resumo: | Causal Consistency is gaining importance in modern geo-replicated distributed services: it is the strongest consistency model that does not sacrifice availability under high latency and network partitions. However, traditional causal delivery middleware, while ensuring a de livery order consistent with causality, does not provide client applications with knowledge about the end-to-end (as seen by each client process) happens-before relation. An end-to-end happens-before is essential to modern applications, namely for the semantics of operation based CRDTs, but also for traditional applications, in which its absence may cause incorrect behavior when using traditional causal delivery middleware. This thesis designs and im plements a Tagged Causal Multicast middleware service as a Rust library. Rust was chosen because it is a safe concurrent and fast programming language supporting both functional and imperative paradigms. This allows an efficient implementation where the use of com plex data structures does not decrease the performance as would be the case of using functional languages like Erlang. Finally, an empirical evaluation of the performance of this middleware service is made, comparing the novel graph-based implementation against a more traditional one based on vector clocks. |
|---|---|
| Autores principais: | Pereira, Carlos Duarte Afonso |
| Assunto: | Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| Ano: | 2020 |
| País: | Portugal |
| Tipo de documento: | dissertação de mestrado |
| Tipo de acesso: | acesso aberto |
| Instituição associada: | Universidade do Minho |
| Idioma: | inglês |
| Origem: | RepositóriUM - Universidade do Minho |
| Resumo: | Causal Consistency is gaining importance in modern geo-replicated distributed services: it is the strongest consistency model that does not sacrifice availability under high latency and network partitions. However, traditional causal delivery middleware, while ensuring a de livery order consistent with causality, does not provide client applications with knowledge about the end-to-end (as seen by each client process) happens-before relation. An end-to-end happens-before is essential to modern applications, namely for the semantics of operation based CRDTs, but also for traditional applications, in which its absence may cause incorrect behavior when using traditional causal delivery middleware. This thesis designs and im plements a Tagged Causal Multicast middleware service as a Rust library. Rust was chosen because it is a safe concurrent and fast programming language supporting both functional and imperative paradigms. This allows an efficient implementation where the use of com plex data structures does not decrease the performance as would be the case of using functional languages like Erlang. Finally, an empirical evaluation of the performance of this middleware service is made, comparing the novel graph-based implementation against a more traditional one based on vector clocks. |
|---|