Blog

This is our developer journal

Open letter to the European Commission

Published on
4 min reading time 711 words
Deuxfleurs has benefitted multiple times from European grants via the NGI project, for the developpement of Garage and Aerogramme, two pieces of software that we have developped for the needs of our association. Today, these grants are in peril, as the European Commission wishes to finance AI projects instead. We relay and sign an open letter from our friends at petites singularités, that asks that the NGI project be maintained, as it provides great assistance for the development of free software and commons on the Internet.
Read

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