<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: lxpz</title><link>https://news.ycombinator.com/user?id=lxpz</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 23:14:01 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=lxpz" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by lxpz in "MinIO repository is no longer maintained"]]></title><description><![CDATA[
<p>Garage does actually support CORS (via PutBucketCORS). If there is anything specific missing, would you be wiling to open an issue on our issue tracker so that we can track it as a feature request?</p>
]]></description><pubDate>Sat, 14 Feb 2026 09:37:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47013114</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=47013114</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47013114</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>Very interesting, thank you. It would probably make sense for most tables but not all of them because some are holding large CRDT values.</p>
]]></description><pubDate>Fri, 19 Dec 2025 22:09:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46331565</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46331565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46331565</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>I had a very rapid look at these two papers, it looks like none of them allow the implementation of compare-and-swap, which is required for if-match / if-none-match support. They have a weaker definition of a "transaction". Which is to be expected as they only implement causal consistency at best and not consensus, whereas consensus is required for compare-and-swap.</p>
]]></description><pubDate>Fri, 19 Dec 2025 21:34:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46331221</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46331221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46331221</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>Fair enough, we will work on making the documentation clearer.</p>
]]></description><pubDate>Fri, 19 Dec 2025 21:19:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46331068</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46331068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46331068</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>So the thing is, different KV stores have different trade-offs, and for now we haven't yet found one that has the best of all worlds.<p>We do recommend SQLite in our quick-start guide to setup a single-node deployment for small/moderate workloads, and it works fine. The "real world deployment" guide recommends LMDB because it gives much better performance (with the current status of Garage, not to say that this couldn't be improved), and the risk of critical data loss is mitigated by the fact that such a deployment would use multi-node replication, meaning that the data can always be recovered from another replica if one node is corrupted and no snapshot is available. Maybe this should be worded better, I can see that the alarmist wording of the deployment guide is creating quite a debate so we probably need to make these facts clearer.<p>We are also experimenting Fjall as an alternate KV engine based on LSM, as it theoretically has good speed and crash resilience, which would make it the best option. We are just not recommending it by default yet, as we don't have much data to confirm that it works up to these expectations.</p>
]]></description><pubDate>Fri, 19 Dec 2025 21:04:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46330914</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46330914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46330914</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>Garage already shards data by itself if you add more nodes, and it is indeed a viable path to increasing throughput.</p>
]]></description><pubDate>Fri, 19 Dec 2025 20:44:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46330681</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46330681</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46330681</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>If I make certain assumptions and you respect them, I will give you certain guarantees. If you don't respect them, I won't guarantee anything. I won't guarantee that your data will be toast either.</p>
]]></description><pubDate>Fri, 19 Dec 2025 20:17:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46330384</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46330384</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46330384</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>They are not solving the same problem.<p>Syncthing will synchronize a full folder between an arbitrary number of machines, but you still have to access this folder one way or another.<p>Garage provides an HTTP API for your data, and handles internally the placement of this data among a set of possible replica nodes. But the data is not in the form of files on disk like the ones you upload to the API.<p>Syncthing is good for, e.g., synchronizing your documents or music collection between computers. Garage is good as a storage service for back-ups with e.g. Restic, for media files stored by a web application, for serving personal (static) web sites to the Internet. Of course, you can always run something like Nextcloud in front of Garage and get folder synchronization between computers somewhat like what you would get with Syncthing.<p>But to answer your question, yes, Garage only provides a S3-compatible API specifically.</p>
]]></description><pubDate>Fri, 19 Dec 2025 20:01:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46330185</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46330185</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46330185</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>We were not able to get good enough performance compared to LMDB. We will work on this more though, there are probably many ways performance can be increased by reducing load on the KV store.</p>
]]></description><pubDate>Fri, 19 Dec 2025 19:54:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46330120</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46330120</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46330120</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>If you have replication, you can lose one of the replica, that's the point. This is what Garage was designed for, and it works.<p>Erasure coding is another debate, for now we have chosen not to implement it, but I would personally be open to have it supported by Garage if someone codes it up.</p>
]]></description><pubDate>Fri, 19 Dec 2025 19:52:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46330105</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46330105</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46330105</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>It does not, at least not for a small local dev server. I believe RAM usage should be around 50-100MB, increasing if you have many requests with large objects.</p>
]]></description><pubDate>Fri, 19 Dec 2025 19:43:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=46330007</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46330007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46330007</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>If you know of an embedded key-value store that supports transactions, is fast, has good Rust bindings, and does checksumming/integrity verification by default such that it almost never corrupts upon power loss (or at least, is always able to recover to a valid state), please tell me, and we will integrate it into Garage immediately.</p>
]]></description><pubDate>Fri, 19 Dec 2025 19:42:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46329988</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46329988</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46329988</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>Thank you for your feedback, we will take it into account.</p>
]]></description><pubDate>Fri, 19 Dec 2025 19:39:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46329961</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46329961</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46329961</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>I talked about the meaning of the Jepsen test and the results we obtained in the FOSDEM'24 talk:<p><a href="https://archive.fosdem.org/2024/schedule/event/fosdem-2024-3009-advances-in-garage-the-low-tech-storage-platform-for-geo-distributed-clusters/" rel="nofollow">https://archive.fosdem.org/2024/schedule/event/fosdem-2024-3...</a><p>Slides are available here:<p><a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/src/commit/4efc8bac07df7fd96ea5f3df7052e70f5577c753/doc/talks/2024-02-03-fosdem/talk.pdf" rel="nofollow">https://git.deuxfleurs.fr/Deuxfleurs/garage/src/commit/4efc8...</a></p>
]]></description><pubDate>Fri, 19 Dec 2025 19:36:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46329932</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46329932</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46329932</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>Read-after-write consistency : yes (after PutObject has finished, the object will be immediately visible in all subsequent requests, including GetObject and ListObjects)<p>Conditionnal writes : no, we can't do it with CRDTs, which are the core of Garage's design.</p>
]]></description><pubDate>Fri, 19 Dec 2025 19:35:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46329908</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46329908</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46329908</guid></item><item><title><![CDATA[New comment by lxpz in "Garage – An S3 object store so reliable you can run it outside datacenters"]]></title><description><![CDATA[
<p>Losing a node is a regular occurrence, and a scenario for which Garage has been designed.<p>The assumption Garage makes, which is well-documented, is that of 3 replica nodes, only 1 will be in a crash-like situation at any time. With 1 crashed node, the cluster is still fully functional. With 2 crashed nodes, the cluster is unavailable until at least one additional node is recovered, but no data is lost.<p>In other words, Garage makes a very precise promise to its users, which is fully respected. Database corruption upon power loss enters in the definition of a "crash state", similarly to a node just being offline due to an internet connection loss. We recommend making metadata snapshots so that recovery of a crashed node is faster and simpler, but it's not required per se: Garage can always start over from an empty database and recover data from the remaining copies in the cluster.<p>To talk more about concrete scenarios: if you have 3 replicas in 3 different physical locations, the assumption of at-most one crashed node is pretty reasonable, it's quite unlikely that 2 of the 3 locations will be offline at the same time. Concerning data corruption on a power loss, the probability to lose power at 3 distant sites at the exact same time with the same data in the write buffers is extremely low, so I'd say in practice it's not a problem.<p>Of course, this all implies a Garage cluster running with 3-way replication, which everyone should do.</p>
]]></description><pubDate>Fri, 19 Dec 2025 19:32:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46329886</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=46329886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46329886</guid></item><item><title><![CDATA[New comment by lxpz in "Self hosting 10TB in S3 on a framework laptop and disks"]]></title><description><![CDATA[
<p>If I can reassure you about Garage, it's not at all abandoned. We have active work going on to make a GUI for cluster administration, and we have applied for a new round of funding for more low-level work on performance, which should keep us going for the next year or so. Expect some more activity in the near future.<p>I manage several Garage clusters and will keep maintaining the software to keep these clusters running. But concerning the "low level of activity in the git repo": we originally built Garage for some specific needs, and it fits these needs quite well in its current form. So I'd argue that "low activity" doesn't mean it's not reliable, in fact it's the contrary: low activity means that it works well for us and there isn't a need to change anything.<p>Of course implementing new features is another deal, I personally have only limited time to spend on implementing features that I don't need myself. But we would always welcome outside contributions of new features from people with specific needs.</p>
]]></description><pubDate>Sun, 05 Oct 2025 17:57:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45483710</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=45483710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45483710</guid></item><item><title><![CDATA[New comment by lxpz in "Rust’s dependencies are starting to worry me"]]></title><description><![CDATA[
<p>Doesn't Haskell do this to some degree with the IO monad? Functions that are not supposed to do IO directly simply have a more specific type signature, like taking in a stream and returning a buffer for example.</p>
]]></description><pubDate>Sat, 10 May 2025 07:17:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=43943817</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=43943817</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43943817</guid></item><item><title><![CDATA[New comment by lxpz in "OpenWRT One Released: First Router Designed Specifically for OpenWrt"]]></title><description><![CDATA[
<p><a href="https://openwrt.org/toh/tp-link/er605_v2?s[]=er605v2" rel="nofollow">https://openwrt.org/toh/tp-link/er605_v2?s[]=er605v2</a><p>This one doesn't have WiFi, just 5 Ethernet ports. It can be flashed openwrt with a very reasonable amount of tweaking. It's actually quite powerful and has 256M of RAM and 128M of flash memory. I have one, it's very cool.</p>
]]></description><pubDate>Sun, 01 Dec 2024 06:37:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=42286684</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=42286684</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42286684</guid></item><item><title><![CDATA[New comment by lxpz in "Distributed SQLite: Paradigm shift or hype?"]]></title><description><![CDATA[
<p>This is due to SQLite calling fsync a lot by default, to be on the safe side. You can use pragma journal_mode = "wal" and pragma synchronous = "off" and it should be much faster, without risking corruption if your server powers down unexpectedly (at least in theory, you should still make regular backups, which can be done from within a running sqlite instance using the backup command)</p>
]]></description><pubDate>Tue, 09 Apr 2024 09:16:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=39977620</link><dc:creator>lxpz</dc:creator><comments>https://news.ycombinator.com/item?id=39977620</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39977620</guid></item></channel></rss>