SearcharxivSearch

arXiv subjects

Miguel Matos

Publications and source records attributed to Miguel Matos.

7 recordsLinked to original sources

Bent\=o: Optimizing Persistent Memory Programs

Persistent Memory (PM) is a new storage technology thatbrings high performance, byte addressability, and persistency for a lesser cost than DRAM. Due to cache volatility and store reordering, developers must use explicit instructions (e.g.: flush and fence) to guarantee that the application state remains consistent upon crashes. This is difficult to get right and, in fact, several tools have been created to detect bugs in PM programs. To overcome this difficulty, programmers tend to be overly conservative, for instance, by enforcing unnecessary ordering constraints, which partially forfeits the performance benefits of using PM. In this paper, we study the impact that different combinations of persistency instructions have in several PM programs and found that a specific combination can lead to performance improvements while preserving the original crash-consistency semantics. Based on these results we developed Bent\=o an automatic and black-box binary rewriter that can boost the performance of existing PM programs by up to 15% with minimal programmer effort.

cs.ET

Rethinking PM Crash Consistency in the CXL Era

Persistent Memory (PM) introduces new opportunities for designing crash-consistent applications without the traditional storage overheads. However, ensuring crash consistency in PM demands intricate knowledge of CPU, cache, and memory interactions. Hardware and software mechanisms have been proposed to ease this burden, but neither proved sufficient, prompting a variety of bug detection tools. With the sunset of Intel Optane comes the rise of Compute Express Link (CXL) for PM. In this position paper, we discuss the impact of CXL's disaggregated and heterogeneous nature in the development of crash-consistent PM applications, and outline three research directions: hardware primitives, persistency frameworks, and bug detection tools.

cs.ET

NimbleChain: Speeding up cryptocurrencies in general-purpose permissionless blockchains

Nakamoto's seminal work gave rise to permissionless blockchains -- as well as a wide range of proposals to mitigate their performance shortcomings. Despite substantial throughput and energy efficiency achievements, most proposals only bring modest (or marginal) gains in transaction commit latency. Consequently, commit latencies in today's permissionless blockchain landscape remain prohibitively high. This paper proposes NimbleChain, a novel algorithm that extends permissionless blockchains based on Nakamoto consensus with a fast path that delivers causal promises of commitment, or simply promises. Since promises only partially order transactions, their latency is only a small fraction of the totally-ordered commitment latency of Nakamoto consensus. Still, the weak consistency guarantees of promises are strong enough to correctly implement cryptocurrencies. To the best of our knowledge, NimbleChain is the first system to bring together fast, partially-ordered transactions with consensus-based, totally-ordered transactions in a permissionless setting. This hybrid consistency model is able to speed up cryptocurrency transactions while still supporting smart contracts, which typically have (strong) sequential consistency needs. We implement NimbleChain as an extension of Ethereum and evaluate it in a 500-node geo-distributed deployment. The results show NimbleChain can promise a cryptocurrency transactions up to an order of magnitude faster than a vanilla Ethereum implementation, with marginal overheads.

cs.DC

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

Impact of Geo-distribution and Mining Pools on Blockchains: A Study of Ethereum

Given the large adoption and economical impact of permissionless blockchains, the complexity of the underlying systems and the adversarial environment in which they operate, it is fundamental to properly study and understand the emergent behavior and properties of these systems. We describe our experience on a detailed, one-month study of the Ethereum network from several geographically dispersed observation points. We leverage multiple geographic vantage points to assess the key pillars of Ethereum, namely geographical dispersion, network efficiency, blockchain efficiency and security, and the impact of mining pools. Among other new findings, we identify previously undocumented forms of selfish behavior and show that the prevalence of powerful mining pools exacerbates the geographical impact on block propagation delays. Furthermore, we provide a set of open measurement and processing tools, as well as the data set of the collected measurements, in order to promote further research on understanding permissionless blockchains.

cs.DC

Kollaps: Decentralized and Dynamic Topology Emulation

The performance and behavior of large-scale distributed applications is highly influenced by network properties such as latency, bandwidth, packet loss, and jitter. For instance, an engineer might need to answer questions such as: What is the impact of an increase in network latency in application response time? How does moving a cluster between geographical regions affect application throughput? How network dynamics affects application stability? Answering these questions in a systematic and reproducible way is very hard, given the variability and lack of control over the underlying network. Unfortunately, state-of-the-art network emulation or testbeds scale poorly (i.e., MiniNet), focus exclusively on the control-plane (i.e., CrystalNet) or ignore network dynamics (i.e., EmuLab). Kollaps is a fully distributed network emulator that address these limitations. Kollaps hinges on two key observations. First, from an application's perspective, what matters are the emergent end-to-end properties (e.g., latency, bandwidth, packet loss, and jitter) rather than the internal state of the routers and switches leading to those properties. This premise allows us to build a simpler, dynamically adaptable, emulation model that circumvent maintaining the full network state. Second, this simplified model is maintainable in a fully decentralized way, allowing the emulation to scale with the number of machines for the application. Kollaps is fully decentralized, agnostic of the application language and transport protocol, scales to thousands of processes and is accurate when compared against a bare-metal deployment or state-of-the-art approaches that emulate the full state of the network. We showcase how Kollaps can accurately reproduce results from the literature and predict the behaviour of a complex unmodified distributed key-value store (i.e., Cassandra) under different deployments.

cs.DC

Optimal epidemic dissemination

We consider the problem of reliable epidemic dissemination of a rumor in a fully connected network of~$n$ processes using push and pull operations. We revisit the random phone call model and show that it is possible to disseminate a rumor to all processes with high probability using $Θ(\ln n)$ rounds of communication and only $n+o(n)$ messages of size $b$, all of which are asymptotically optimal and achievable with pull and push-then-pull algorithms. This contradicts two highly-cited lower bounds of Karp et al. stating that any algorithm in the random phone call model running in $\mathcal{O}(\ln n)$ rounds with communication peers chosen uniformly at random requires at least $ω(n)$ messages to disseminate a rumor with high probability, and that any address-oblivious algorithm needs $Ω(n \ln \ln n)$ messages regardless of the number of communication rounds. The reason for this contradiction is that in the original work, processes do not have to share the rumor once the communication is established. However, it is implicitly assumed that they always do so in the proofs of their lower bounds, which, it turns out, is not optimal. Our algorithms are strikingly simple, address-oblivious, and robust against $εn$ adversarial failures and stochastic failures occurring with probability $δ$ for any $0 \leq \{ε,δ\} < 1$. Furthermore, they can handle multiple rumors of size $b \in ω(\ln n \ln \ln n)$ with $nb + o(nb)$ bits of communication per rumor.

cs.DC