Helder Martins (2013)

MSc Student

in

MSc dissertation: Distributed Replicated Macro-Components   
Co-adviser: Prof. Nuno Preguiça
Period: 
September 2012 — September 2013
Grade: 17/20
Project: RepComp (funded by the National Science Foundation, PI: Prof. Nuno Preguiça)
Papers: Poster @ INForum 2012, Oral communication @ INForum 2013.

Herlder Marins is now working in his MSc thesis entitled "Distributed Replicated Macro-Components" in the context of the RepComp research project.

Before, in 2011/12, he did some owrk on Java Bytecode inlining by using Bytecode rewriting techniques, aiming at optimizing a transacitonal memory run-time framework.

MSc thesis abstract

In recent years, several approaches have been proposed for improving application performance on multi-core machines. However, exploring the power of multi-core processors remains complex for most programmers. A Macro-component is an abstraction that tries to tackle this problem by allowing to explore the power of multi-core machines without requiring changes in the programs. A Macro-component encapsulates several diverse implementations of the same specification. This allows to take the best performance of all operations and/or distribute load among replicas, while keeping contention and synchronization overhead to the minimum.

In real-world applications, relying on only one server to provide a service leads to limited fault-tolerance and scalability. To address this problem, it is common to replicate services in multiple machines. This work addresses the problem os supporting such replication solution, while exploring the power of multi-core machines.

To this end, we propose to support the replication of Macro-components in a cluster of machines. In this dissertation we present the design of a middleware solution for achieving such goal. Using the implemented replication middleware we have successfully deployed a replicated Macro-component of in-memory databases which are known to have scalability problems in multi-core machines. The proposed solution combines multi-master replication across nodes with primary-secondary replication within a node, where several instances of the database are running on a single machine. This approach deals with the lack of scalability of databases on multi-core systems while minimizing communication costs that ultimately results in an overall improvement of the services. Results show that the proposed solution is able to scale as the number of nodes and clients increases. It also shows that the solution
is able to take advantage of multi-core architectures.

Keywords: Distributed Systems, Macro-components, Concurrency, Replication