<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: uroni</title><link>https://news.ycombinator.com/user?id=uroni</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 09 Apr 2026 15:09:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=uroni" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by uroni in "MinIO Is Dead, Long Live MinIO"]]></title><description><![CDATA[
<p>There is a lot of software that directly implements the HTTP S3 API. That API is also documented by Amazon.<p>E.g. the last implementation I saw was by DuckDB <a href="https://github.com/duckdb/duckdb-httpfs/blob/main/src/s3fs.cpp" rel="nofollow">https://github.com/duckdb/duckdb-httpfs/blob/main/src/s3fs.c...</a></p>
]]></description><pubDate>Sun, 01 Mar 2026 00:13:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47202087</link><dc:creator>uroni</dc:creator><comments>https://news.ycombinator.com/item?id=47202087</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47202087</guid></item><item><title><![CDATA[New comment by uroni in "MinIO Is Dead, Long Live MinIO"]]></title><description><![CDATA[
<p>AGPL is "a plague" by design (viral). It has the explicit goal that any improvements flow back to the community project and the virality is a necessary building block for this. It is an elegant solution to a tragedy of the commons problem.<p>Companies like MinIO extending the virality beyond the single software/work, even though not intended by license, gives it a bad reputation. They have fixed <a href="https://min.io/compliance" rel="nofollow">https://min.io/compliance</a> now, but I guess it does not matter anymore.</p>
]]></description><pubDate>Sat, 28 Feb 2026 23:42:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47201786</link><dc:creator>uroni</dc:creator><comments>https://news.ycombinator.com/item?id=47201786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47201786</guid></item><item><title><![CDATA[New comment by uroni in "MinIO Is Dead, Long Live MinIO"]]></title><description><![CDATA[
<p>I never understood why one would use MinIO over Ceph for serious (multi-node) use. Sure, it might be easier to setup initially, but Ceph would be more likely to work.<p>For the single node use-case, I'm working on <a href="https://github.com/uroni/hs5" rel="nofollow">https://github.com/uroni/hs5</a> . The S3 API surface is large, but at this point it covers the basics. By limiting the goals I hope it will be maintainable.</p>
]]></description><pubDate>Sat, 28 Feb 2026 23:06:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47201422</link><dc:creator>uroni</dc:creator><comments>https://news.ycombinator.com/item?id=47201422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47201422</guid></item><item><title><![CDATA[Show HN: HS5 – Open Source fast single-node S3 compatible object storage]]></title><description><![CDATA[
<p>HS5 ([website](<a href="https://hs5.eu" rel="nofollow">https://hs5.eu</a>) | [GitHub](<a href="https://github.com/uroni/hs5" rel="nofollow">https://github.com/uroni/hs5</a>)) is a high-performance scale-up self-hosted S3 compatible object storage server. It is ideal for use cases where single-node scaling, performance, and data-loss risk are acceptable, or as a building block for more robust systems. For example use cases might be local testing environments or temporary storage for data processing workflows.<p>HS5 features a web interface for managing buckets and users.<p>License: LGPLv3+<p>I was previously using MinIO for my single node object storage needs, but it did not scale well with many objects since it creates multiple files for each object. Now it does not aim to solve the single-node use case anymore anyway and is unmaintained as well.<p>Some technical details: It is written in C++ since I already had an implementation of the main object storage from another project ( SingleFileStorage.cpp ). For the main object to disk location mapping it uses LMDB (a copy-on-write memory mapped database). Once the database memory is mapped, the mapping operations run at in-memory database speeds. The copy-on-write makes writing (small) changes slower. To mitigate this there is an optional WAL mode, where changes are committed to a WAL, then asynchronously committed to the LMDB. Alternatively there is a manual commit mode where commit is done via writing to a special object. Using this might be interesting for bulk-loading or for testing use cases.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47033721">https://news.ycombinator.com/item?id=47033721</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 16 Feb 2026 11:21:11 +0000</pubDate><link>https://hs5.eu/</link><dc:creator>uroni</dc:creator><comments>https://news.ycombinator.com/item?id=47033721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47033721</guid></item><item><title><![CDATA[New comment by uroni in "Sparse File LRU Cache"]]></title><description><![CDATA[
<p>I’ve used this technique in the past, and the problem is that the way some file systems perform the file‑offset‑to‑disk‑location mapping is not scalable. It might always be fine with 512 MB files, but I worked with large files and millions of extents, and it ran into issues, including out‑of‑memory errors on Linux with XFS.<p>The XFS issue has since been fixed (though you often have no control over which Linux version your program runs on), but in general I’d say it’s better to do such mapping in user space. In this case, there is a RocksDB present anyway, so this would come at no performance cost.</p>
]]></description><pubDate>Sun, 01 Feb 2026 11:06:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46845301</link><dc:creator>uroni</dc:creator><comments>https://news.ycombinator.com/item?id=46845301</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46845301</guid></item><item><title><![CDATA[New comment by uroni in "MinIO is now in maintenance-mode"]]></title><description><![CDATA[
<p>It uses LMDB, so if the object mapping fits in memory that should be pretty optimal for reading, while using the build-in Linux page cache and not a separate one (important for testing use cases).
For write/deletes it has a bit of write-amplification due to the copy-on-write btree. I've implemented a separate, optional WAL for this and also a mode where writes/delete can be bundeled in a transaction, but in practice I think the performance difference should not matter.<p>W.r.t. filesystem: Yes, aware of this. Initially used minio and also implemented  the use case directly on XFS as well and only had problems at larger scales (that still fit on a machine) with it. Ceph went into a similar direction with BlueStore (reimplementing the filesystem, but with RocksDB).</p>
]]></description><pubDate>Wed, 03 Dec 2025 17:53:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46137646</link><dc:creator>uroni</dc:creator><comments>https://news.ycombinator.com/item?id=46137646</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46137646</guid></item><item><title><![CDATA[New comment by uroni in "MinIO is now in maintenance-mode"]]></title><description><![CDATA[
<p>I'm not a contributor to Minio. This is its own separate thing.<p>I do have a separate AGPL project (see github) where I have nearly all of the copyright and have looked into how one would be able to enforce this in the US at some point and it did look pretty bleak -- it is a civil suit where you have to show damages etc. but IANAL.<p>I did not like the FUD they were spreading about AGPL at the time since it is a good license for end-user applications.</p>
]]></description><pubDate>Wed, 03 Dec 2025 17:37:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46137441</link><dc:creator>uroni</dc:creator><comments>https://news.ycombinator.com/item?id=46137441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46137441</guid></item><item><title><![CDATA[New comment by uroni in "MinIO is now in maintenance-mode"]]></title><description><![CDATA[
<p>I've been working on <a href="https://github.com/uroni/hs5" rel="nofollow">https://github.com/uroni/hs5</a> as a replacement with similar goals to early minio.<p>The core is stable at this point, but the user/policy management and the web interface is still in the works.</p>
]]></description><pubDate>Wed, 03 Dec 2025 16:58:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46136871</link><dc:creator>uroni</dc:creator><comments>https://news.ycombinator.com/item?id=46136871</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46136871</guid></item><item><title><![CDATA[New comment by uroni in "How AWS S3 serves 1 petabyte per second on top of slow HDDs"]]></title><description><![CDATA[
<p>I'm working on something that might be suited for this use-case at <a href="https://github.com/uroni/hs5" rel="nofollow">https://github.com/uroni/hs5</a> (not ready for production yet).<p>It would still need a resilience/cache layer like ZFS, though.</p>
]]></description><pubDate>Wed, 24 Sep 2025 17:12:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45363223</link><dc:creator>uroni</dc:creator><comments>https://news.ycombinator.com/item?id=45363223</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45363223</guid></item></channel></rss>