| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 1.11 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
Distributed systems often resort to data replication not only to enhance their availability
but also to reduce user-perceived latency by balancing the load between replicas and
routing their requests accordingly. The choice of which consistency level that should be
adopted by these replicated systems is critical for the fulfilment of their performance
and correctness requirements. However, defining a strategy that strikes the right balance
between these concerns in this type of environments is far from being a trivial task due
to the related overheads that are amplified in distributed scenarios.
Recognising the tension between latency and consistency, many systems allow multiple
consistency levels to coexist. Nevertheless, the performance fine-tuning mechanisms
supported by the existing hybrid solutions place a high burden on the programmer since
the necessary input can be somehow complex requiring him to understand the semantics
of each operation of the service he is developing in order to correctly instruct the
system on how to handle concurrent updates. Thus, specifying operation dependencies,
orderings and invariants to be preserved or even picking the right consistency level to be
assigned to a certain data item is, generally, an error-prone task that hinders reasoning.
To overcome this adversity, this work aims to reduce the effort spent by the programmer
by only requiring the latter to introduce a simple and intuitive input at data declaration.
Following this approach, reasoning is centralised and all accesses to replicated
data are identified automatically. With all data accesses identified, it is then possible
to deduce the side effects of each operation and determine, for each one of them, those
with which it conflicts. In this context, this thesis also presents a compile-time analysis
applied to the Java language able to evaluate operation pairwise commutativity from the
input given at data declaration.
Descrição
Palavras-chave
replicated systems consistency levels data-centric concurrency control language interpretation
