Blog

This is our developer journal

PhD offering to work on Garage and Distributed Systems

Published on
2 min reading time 388 words
Deuxfleurs and IMT Atlantique are partnering to fund a PhD student to work on Garage and distributed systems theory during three years. The recruitment process is open and we are currently looking for candidates. Applications are accepted until Jan 31, 2024. Read for details.
Read

Maintaining read-after-write consistency in all circumstances

Published on
14 min reading time 2652 words
Garage is a data storage system that is based on CRDTs internally. It does not use a consensus algorithm such as Raft, therefore maintaining consistency in a cluster has to be done by other means. Since its inception, Garage has made use of read and write quorums to guarantee read-after-write consistency, the only consistency guarantee it provides. However, as of Garage v0.9.0, this guarantee is not maintained when the composition of a cluster is updated and data is moved between storage nodes. As part of our current NLnet-funded project, we are developing a solution to this problem. This blog post proposes a high-level overview of the proposed solution.
Read

Thoughts on "Leaderless Consensus"

Published on
10 min reading time 1844 words
Consensus algorithms such as Raft and Paxos, which are used in many distributed databases, have notoriously unpredictable performance in low-quality networks that suffer from latency, jitter, packet loss and/or unavailable nodes, which is why Garage does not use them and uses only CRDTs. A new paper by Antoniadis et al., Leaderless Consensus, introduces a new category of algorithms that better tolerate the frequent unavailability of a subset of nodes. However, additional research and practical work is required before these results can be put into practice. Read for more details.
Read

Confronting theoretical design with observed performances

Published on
26 min reading time 5131 words
During the past years, we have thought a lot about possible design decisions and their theoretical trade-offs for Garage. In particular, we pondered the impacts of data structures, networking methods, and scheduling algorithms. Garage worked well enough for our production cluster at Deuxfleurs, but we also knew that people started to experience some unexpected behaviors, which motivated us to start a round of benchmarks and performance measurements to see how Garage behaves compared to our expectations. This post presents some of our first results, which cover 3 aspects of performance: efficient I/O, "myriads of objects", and resiliency, reflecting the high-level properties we are seeking.
Read

We tried IPFS over Garage

Published on
17 min reading time 3303 words
Once you have spawned your Garage cluster, you might be interested in finding ways to share efficiently your content with the rest of the world, such as by joining federated platforms. In this blog post, we experiment with interconnecting the InterPlanetary File System (IPFS) daemon with Garage. We discuss the different bottlenecks and limitations of the software stack in its current state.
Read