SearcharxivSearch

arXiv subjects

Luís Rodrigues

Publications and source records attributed to Luís Rodrigues.

9 recordsLinked to original sources

Automatic Design-Time Detection of Anomalies in Migrating Monolithic Applications to Microservices

The advent of microservices has led multiple companies to migrate their monolithic systems to this new architecture. When decomposing a monolith, a functionality previously implemented as a transaction may need to be implemented as a set of independent sub-transactions, possibly executed by multiple microservices. The concurrent execution of decomposed functionalities may interleave in ways that were impossible in the monolith, paving the way for anomalies to emerge. The anomalies that may occur critically depend on how the monolith is decomposed. The ability to assess, at design time, the anomalies that different decompositions may generate is key to guide the programmers in finding the most appropriate decomposition that matches their goals. This paper introduces MAD, the first framework for automatically detecting anomalies that are introduced by a given decomposition of a monolith into microservices. MAD operates by encoding non-serializable executions of the original functionalities as an SMT formula and then using a solver to find satisfiable assignments that capture the anomalous interleavings made possible by that specific decomposition. We have applied MAD to different benchmarks and show that it can identify precisely the causes of potential anomalous behavior for different decompositions.

cs.SE

Using Range-Revocable Pseudonyms to Provide Backward Unlinkability in the Edge (Extended Version)

In this paper we propose a novel abstraction that we have named Range-Revocable Pseudonyms (RRPs). RRPs are a new class of pseudonyms whose validity can be revoked for any time-range within its original validity period. The key feature of RRPs is that the information provided to revoke a pseudonym for a given timerange cannot be linked with the information provided when using the pseudonym outside the revoked range. We provide an algorithm to implement RRPs using efficient cryptographic primitives where the space complexity of the pseudonym is constant, regardless of the granularity of the revocation range, and the space complexity of the revocation information only grows logarithmically with the granularity; this makes the use of RRPs far more efficient than the use of many short-lived pseudonyms. We have used RRPs to design EDGAR, an access control system for VANET scenarios that offers backward unlinkability. The experimental evaluation of EDGAR shows that, when using RRPs, the revocation can be performed efficiently (even when using time slots as small as 1 second) and that users can authenticate with low latency ($0.5-3.5$ ms).

cs.CR

The quest for scaling BFT Consensus through Tree-Based Vote Aggregation

With the growing commercial interest in blockchain, permissioned implementations have received increasing attention. Unfortunately, existing BFT consensus protocols that are the backbone of permissioned blockchains, either scale poorly or offer limited throughput. Most of these algorithms require at least one process to receive and validate the votes from all other processes and then broadcast the result, which is inherently non-scalable. Some algorithms avoid this bottleneck by using aggregation trees to collect and validate votes. However, to the best of our knowledge, such algorithms offer limited throughput and degrade quickly in the presence of faults. In this paper we propose \thesystem, the first BFT communication abstraction that organizes participants in a tree to perform scalable vote aggregation and that, in faulty runs, is able to terminate the protocol within an optimal number of reconfigurations ($f+1$). We define precisely which aggregation trees allow for optimal reconfiguration and show that, unlike previous protocols, when using these configurations, \thesystem scales to large number of processes and outperforms HotStuff's throughput by up to 38x.

cs.DC

Lynceus: Cost-efficient Tuning and Provisioning of Data Analytic Jobs

Modern data analytic and machine learning jobs find in the cloud a natural deployment platform to satisfy their notoriously large resource requirements. Yet, to achieve cost efficiency, it is crucial to identify a deployment configuration that satisfies user-defined QoS constraints (e.g., on execution time), while avoiding unnecessary over-provisioning. This paper introduces Lynceus, a new approach for the optimization of cloud based data analytic jobs that improves overstate-of-the-art approaches by enabling significant cost savings both in terms of the final recommended configuration and of the optimization process used to recommend configurations. Unlike existing solutions, Lynceus optimizes in a joint fashion both the cloud-related and the application-level parameters. This allows for a reduction of the cost of recommended configurations by up to 3.7x at the 90-th percentile with respect to existing approaches, which treat the optimization of cloud-related and application-level parameters as two independent problems. Further, Lynceus reduces the cost of the optimization process (i.e., the cloud cost incurred for testing configurations) by up to 11x. Such an improvement is achieved thanks to two mechanisms: i) a timeout approach which allows to abort the exploration of configurations that are deemed suboptimal, while still extracting useful information to guide future explorations and to improve its predictive model - differently from recent works, which either incur the full cost for testing suboptimal configurations or are unable to extract any knowledge from aborted runs; ii) a long-sighted and budget-aware technique that determines which configurations to test by predicting the long-term impact of each exploration - unlike state-of-the-art approaches for the optimization of cloud jobs, which adopt greedy optimization methods.

cs.DC

Unobtrusive Deferred Update Stabilization for Efficient Geo-Replication

In this paper we propose a novel approach to manage the throughput vs latency tradeoff that emerges when managing updates in geo-replicated systems. Our approach consists in allowing full concurrency when processing local updates and using a deferred local serialisation procedure before shipping updates to remote datacenters. This strategy allows to implement inexpensive mechanisms to ensure system consistency requirements while avoiding intrusive effects on update operations, a major performance limitation of previous systems. We have implemented our approach as a variant of Riak KV. Our extensive evaluation shows that we outperform sequencer-based approaches by almost an order of magnitude in the maximum achievable throughput. Furthermore, unlike previous sequencer-free solutions, our approach reaches nearly optimal remote update visibility latencies without limiting throughput.

cs.DC

Accountability in Dynamic Networks

We take a game theoretical approach to determine necessary and sufficient conditions under which we can persuade rational agents to exchange messages in pairwise exchanges over links of a dynamic network, by holding them accountable for deviations with punishments. We make three contributions: (1) we provide a new game theoretical model of repeated interactions in dynamic networks, where agents have incomplete information of the topology, (2) we define a new solution concept for this model, and (3) we identify necessary and sufficient conditions for enforcing accountability, i.e., for persuading agents to exchange messages in the aforementioned model. Our results are of technical interest but also of practical relevance. We show that we cannot enforce accountability if the dynamic network does not allow for \emph{timely punishments}. In practice, this means for instance that we cannot enforce accountability in some networks formed in file-sharing applications such as Bittorrent\,\cite{Cohen:03}. We also show that for applications such as secret exchange, where the benefits of the exchanges significantly surpass the communication costs, timely punishments are enough to enforce accountability. However, we cannot in general enforce accountability if agents do not possess enough information about the network topology. Nevertheless, we can enforce accountability in a wide variety of networks that satisfy 1-connectivity\,\cite{Kuhn:10} with minimal knowledge about the network topology, including overlays for gossip dissemination such as \cite{Li:06,Li:08}.

cs.GT

A Distributed Auctioneer for Resource Allocation in Decentralized Systems

In decentralized systems, nodes often need to coordinate to access shared resources in a fair manner. One approach to perform such arbitration is to rely on auction mechanisms. Although there is an extensive literature that studies auctions, most of these works assume the existence of a central, trusted auctioneer. Unfortunately, in fully decentralized systems, where the nodes that need to cooperate operate under separate spheres of control, such central trusted entity may not exist. Notable examples of such decentralized systems include community networks, clouds of clouds, cooperative nano data centres, among others. In this paper, we make theoretical and practical contributions to distribute the role of the auctioneer. From the theoretical perspective, we propose a framework of distributed simulations of the auctioneer that are Nash equilibria resilient to coalitions and asynchrony. From the practical perspective, our protocols leverage the distributed nature of the simulations to parallelise the execution. We have implemented a prototype that instantiates the framework for bandwidth allocation in community networks, and evaluated it in a real distributed setting.

cs.GT

On the Effectiveness of Punishments in a Repeated Epidemic Dissemination Game

This work uses Game Theory to study the effectiveness of punishments as an incentive for rational nodes to follow an epidemic dissemination protocol. The dissemination process is modeled as an infinite repetition of a stage game. At the end of each stage, a monitoring mechanism informs each player of the actions of other nodes. The effectiveness of a punishing strategy is measured as the range of values for the benefit-to-cost ratio that sustain cooperation. This paper studies both public and private monitoring. Under public monitoring, we show that direct reciprocity is not an effective incentive, whereas full indirect reciprocity provides a nearly optimal effectiveness. Under private monitoring, we identify necessary conditions regarding the topology of the graph in order for punishments to be effective. When punishments are coordinated, full indirect reciprocity is also effective with private monitoring.

cs.DC

Asynchrony and Collusion in the N-party BAR Transfer Problem

The problem of reliably transferring data from a set of $N_P$ producers to a set of $N_C$ consumers in the BAR model, named N-party BAR Transfer (NBART), is an important building block for volunteer computing systems. An algorithm to solve this problem in synchronous systems, which provides a Nash equilibrium, has been presented in previous work. In this paper, we propose an NBART algorithm for asynchronous systems. Furthermore, we also address the possibility of collusion among the Rational processes. Our game theoretic analysis shows that the proposed algorithm tolerates certain degree of arbitrary collusion, while still fulfilling the NBART properties.

cs.DC