<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: hubertzhang</title><link>https://news.ycombinator.com/user?id=hubertzhang</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 24 Apr 2026 18:53:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hubertzhang" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hubertzhang in "A cloud-native database should be as elastic as the cloud itself"]]></title><description><![CDATA[
<p>Snowflake also uses S3 as primary storage for OLAP workload, what's diff?</p>
]]></description><pubDate>Fri, 23 Jan 2026 16:42:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46734595</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=46734595</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734595</guid></item><item><title><![CDATA[New comment by hubertzhang in "EloqKV: Achieving Predictable P99.99 Latency on NVMe with Redis API"]]></title><description><![CDATA[
<p>we leverage batch write optimization which uses Copy-on-write B-tree variant enables high-throughput batch writes without blocking concurrent reads. MVCC-based design eliminates lock contention and provides predictable write amplification.</p>
]]></description><pubDate>Fri, 23 Jan 2026 16:32:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46734460</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=46734460</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734460</guid></item><item><title><![CDATA[New comment by hubertzhang in "EloqKV: Achieving Predictable P99.99 Latency on NVMe with Redis API"]]></title><description><![CDATA[
<p>Most Redis alternatives that use disk for persistence struggle with tail latency (P9999) due to background maintenance or OS filesystem overhead. We built EloqKV on a custom storage engine, EloqStore, to solve this.<p>Key Architectural Choices:<p>- Custom B-tree Variant: Unlike LSM-trees used in many disk-backed stores, our B-tree variant avoids the "compaction stalls" that typically cause high tail latency during heavy writes.<p>- Coroutines & io_uring: We leverage io_uring for asynchronous I/O and use coroutines to manage thousands of concurrent I/O requests without the context-switching overhead.<p>- Object Storage Integration (optional): EloqStore uses object storage as the primary persistent layer, with NVMe acting as a high-speed cache/tier, providing durability without sacrificing speed.<p>We’ve reached a point where we can provide predictable P99.99 latency even when the working set is primarily on NVMe. We’d love to answer any questions about the storage internals or our benchmarking process.</p>
]]></description><pubDate>Fri, 23 Jan 2026 16:00:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46734035</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=46734035</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734035</guid></item><item><title><![CDATA[EloqKV: Achieving Predictable P99.99 Latency on NVMe with Redis API]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.eloqdata.com/blog/2026/01/08/eloqkv-on-eloqstore">https://www.eloqdata.com/blog/2026/01/08/eloqkv-on-eloqstore</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46734034">https://news.ycombinator.com/item?id=46734034</a></p>
<p>Points: 16</p>
<p># Comments: 4</p>
]]></description><pubDate>Fri, 23 Jan 2026 16:00:09 +0000</pubDate><link>https://www.eloqdata.com/blog/2026/01/08/eloqkv-on-eloqstore</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=46734034</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734034</guid></item><item><title><![CDATA[New comment by hubertzhang in "[dead]"]]></title><description><![CDATA[
<p>My reflections on the AWS us-east-1 outage.<p>Yesterday I posted a Show HN introducing our MongoDB-compatible database EloqDoc (<a href="https://news.ycombinator.com/item?id=45634638">https://news.ycombinator.com/item?id=45634638</a>
).
Today’s AWS us-east-1 outage was a strong reminder of why relying on local NVMe as primary database storage is risky—and why OLTP databases should consider object storage as the durable foundation instead.</p>
]]></description><pubDate>Mon, 20 Oct 2025 12:14:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45643015</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=45643015</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45643015</guid></item><item><title><![CDATA[New comment by hubertzhang in "AWS multiple services outage in us-east-1"]]></title><description><![CDATA[
<p>I cannot pull images from docker hub.</p>
]]></description><pubDate>Mon, 20 Oct 2025 10:38:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45642355</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=45642355</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45642355</guid></item><item><title><![CDATA[New comment by hubertzhang in "Ask HN: Genesis DB: Thoughts on fine-grained access control"]]></title><description><![CDATA[
<p>Like AWS, json is OK for me</p>
]]></description><pubDate>Sun, 19 Oct 2025 15:50:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45635081</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=45635081</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45635081</guid></item><item><title><![CDATA[New comment by hubertzhang in "Postgres is reliable – I'll persist in EloqKV"]]></title><description><![CDATA[
<p>A recent hacker-news argues: “Redis is fast — I’ll cache in Postgres.” The author benchmarks a simple API and concludes that although Redis is faster, Postgres is “fast enough,” and removing another component can be worth it for many projects.(<a href="https://news.ycombinator.com/item?id=45380699">https://news.ycombinator.com/item?id=45380699</a>)<p>I agree with two things:<p>- Postgres is an excellent, reliable database.<p>- Fewer moving parts is a win—when the workload fits.<p>But there’s a third path that many teams overlook: a Redis-compatible database that is durable by default. That’s what we built with EloqKV—Redis protocol + redo log, multi-writer, transactions, persistence, durability, store procedure—so you get database + cache in one engine.<p>Any thoughts?</p>
]]></description><pubDate>Sat, 27 Sep 2025 15:52:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45396825</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=45396825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45396825</guid></item><item><title><![CDATA[Postgres is reliable – I'll persist in EloqKV]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.eloqdata.com/blog/2024/08/25/benchmark-txlog">https://www.eloqdata.com/blog/2024/08/25/benchmark-txlog</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45396824">https://news.ycombinator.com/item?id=45396824</a></p>
<p>Points: 3</p>
<p># Comments: 2</p>
]]></description><pubDate>Sat, 27 Sep 2025 15:52:32 +0000</pubDate><link>https://www.eloqdata.com/blog/2024/08/25/benchmark-txlog</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=45396824</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45396824</guid></item><item><title><![CDATA[New comment by hubertzhang in "EloqKV, a distributed database with Redis compatible API (GPLv2 and AGPLv3)"]]></title><description><![CDATA[
<p>That use case aligns perfectly with EloqKV’s capabilities. In pure cache mode, batching multi-key deletions within Lua scripts can significantly reduce latency by minimizing client–server round trips.</p>
]]></description><pubDate>Tue, 19 Aug 2025 22:55:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=44957005</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=44957005</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44957005</guid></item><item><title><![CDATA[New comment by hubertzhang in "EloqKV, a distributed database with Redis compatible API (GPLv2 and AGPLv3)"]]></title><description><![CDATA[
<p>Yes, Lua in EloqKV has no such limitations. You can freely read data, generate new keys, and even query those keys within Lua scripts. Underneath, EloqKV’s transaction layer is powered by our data substrate, which provides full ACID guarantees. FYI <a href="https://www.eloqdata.com/blog/2025/07/14/technology" rel="nofollow">https://www.eloqdata.com/blog/2025/07/14/technology</a><p>Could you share a bit more about your specific use case? That will help me explain how EloqKV can best support it.</p>
]]></description><pubDate>Tue, 19 Aug 2025 20:38:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44956041</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=44956041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44956041</guid></item><item><title><![CDATA[New comment by hubertzhang in "EloqKV, a distributed database with Redis compatible API (GPLv2 and AGPLv3)"]]></title><description><![CDATA[
<p>I’m Hubert, CTO of EloqData. That’s a great question.<p>Redis Cluster is often thought of as a distributed database, but in reality it’s not truly distributed. It relies on a smart client to route queries to the correct shard—similar to how mongos works in MongoDB. This design means Redis Cluster cannot perform distributed transactions, and developers often need to use hashtags to manually place related data on the same shard.<p>EloqKV takes a different approach. It’s a natively distributed database with direct interconnects between nodes. You can connect to any node with a standard Redis client, and still read or write data that physically resides on other nodes. This architecture enables true distributed transactions across shards, fully supporting MULTI/EXEC and Lua scripts without special client logic or manual sharding workarounds.</p>
]]></description><pubDate>Tue, 19 Aug 2025 18:45:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=44954849</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=44954849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44954849</guid></item><item><title><![CDATA[New comment by hubertzhang in "EloqKV, a distributed database with Redis compatible API (GPLv2 and AGPLv3)"]]></title><description><![CDATA[
<p>Some Redis variants focus on persistence—KVrocks, for example, or MemoryDB, which emphasizes durability through redo logs to minimize data loss. However, they are not truly transactional, since they lack fundamental rollback semantics and distributed transaction.<p>EloqKV, by contrast, is fully transactional. It supports distributed Lua, MULTI/EXEC, and even SQL-style BEGIN/COMMIT/ROLLBACK syntax. This means you get the transactional guarantees of a database with Redis-level read performance. Writes are slightly slower since EloqKV ensures durability, but in return you gain full ACID safety. Most importantly, you no longer need to worry about cache coherence issues between a Redis cache and a separate SQL database—EloqKV unifies them into a single, reliable system.</p>
]]></description><pubDate>Tue, 19 Aug 2025 17:55:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=44954316</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=44954316</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44954316</guid></item><item><title><![CDATA[New comment by hubertzhang in "Neki – Sharded Postgres by the team behind Vitess"]]></title><description><![CDATA[
<p>Does Neki still need sharding key in query, just like Citus?</p>
]]></description><pubDate>Mon, 11 Aug 2025 20:49:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=44869316</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=44869316</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44869316</guid></item><item><title><![CDATA[New comment by hubertzhang in "Ursa: A leaderless, object storage–based alternative to Kafka"]]></title><description><![CDATA[
<p>I’m the co-founder of EloqData. I recently gave a talk on EloqDoc and Pulsar integration at Data Streaming Summit 2025. It was a great event, and Ursa was definitely one of the hottest topics discussed.<p>I believe object storage is shaping the future architecture of cloud databases. The first big shift happened in the data warehouse space, where we saw the move from Teradata and Greenplum to Snowflake accelerate around 2016. Snowflake’s adoption of object storage as its primary storage layer not only reduced costs but also unlocked true elasticity.<p>Now, we’re seeing a similar trend in the streaming world. If I recall correctly, Ursa was the first to GA an object-storage–based streaming service, with Kafka(WarpStream) and AutoMQ following afterward.<p>I also believe the next generation of OLTP databases will use object storage as their main storage layer. This blog post shares some insights into this trend and the unique challenges of implementing object storage correctly for OLTP workloads, which are much more latency-sensitive.<p><a href="https://www.eloqdata.com/blog/2025/07/16/data-substrate-benefit#object-storage-as-primary-data" rel="nofollow">https://www.eloqdata.com/blog/2025/07/16/data-substrate-bene...</a></p>
]]></description><pubDate>Thu, 31 Jul 2025 23:37:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=44751444</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=44751444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44751444</guid></item><item><title><![CDATA[New comment by hubertzhang in "Everyone is asking the wrong questions about TikTok"]]></title><description><![CDATA[
<p>Is Meta/X/Google open source?
Is Gamil/Outlook open source?
All of them gather user's data. They are all "free" software</p>
]]></description><pubDate>Mon, 20 Jan 2025 03:06:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=42764586</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=42764586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42764586</guid></item><item><title><![CDATA[New comment by hubertzhang in "Show HN: EloqKV – Scalable distributed ACID key-value database with Redis API"]]></title><description><![CDATA[
<p>> It superficially sounds like a series of server processes fronting actual database servers, which sounds like another layer of partition vulnerability and points of failure<p>I agree that introducing a middleware layer on top of databases adds more points of failure. EloqKV avoids this by integrating Compute, Logging, and Storage into a single system. In this setup, storage can be a database like Cassandra, but users will not access it directly; all requests go through EloqKV, which manages ACID transactions. EloqKV is responsible for handling crashes of the TxServer, LogServer, and Storage. You can think of the distributed Storage Engine just as a Disk in traditional DBMS. Obviously its failure will affect the system. But no more than hard disk failure. In fact, in a cloud, all disks (i.e. EBS) are actually distributed storage systems.<p>This situation is a rethinking of the Redis and MySQL combination, which suffers from similar issues. Both systems can fail independently, resulting in only eventual consistency. EloqKV aims to resolve this problem.</p>
]]></description><pubDate>Sat, 21 Sep 2024 08:01:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=41608372</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=41608372</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41608372</guid></item><item><title><![CDATA[New comment by hubertzhang in "Show HN: EloqKV – Scalable distributed ACID key-value database with Redis API"]]></title><description><![CDATA[
<p>Good question! WAL and TxService(TxMap) are fully decoupled, allowing you to deploy them on the same node or across different machines. If your workload is write-intensive, you might consider a large WAL cluster, which leverages multiple disks to perform fsync operations in parallel. This is particularly important in cloud environments, where local SSDs are ephemeral and cloud-native databases often use EBS for WAL. However, high-performance EBS options like io2 can be costly. EloqKV's decoupled architecture allows you to scale write throughput up to 600K Write OPS on a single TxServer as you increase the number of cheap gp3 disks. Since WAL logs can be truncated after a checkpoint, the required disk size is typically quite small, making gp3 a cost-effective choice.<p>For more details, please check our scaling disks benchmark report.<p><a href="https://www.eloqdata.com/blog/2024/08/25/benchmark-txlog#experiment-ii-scaling-disks-of-wal" rel="nofollow">https://www.eloqdata.com/blog/2024/08/25/benchmark-txlog#exp...</a><p>> For a distributed transaction with distributed storage and multiple nodes how does a transaction get coordinated?<p>EloqKV is a multi-writer system, similar to many distributed databases (FoundationDB, TiDB, CockroachDB), but we have a set of new innovations on transaction protocols, for example, the entire system operates without a single synchronization point, not even a global sequencer. We drew many inspirations from the Hekaton and the TicToc paper.</p>
]]></description><pubDate>Sat, 21 Sep 2024 07:24:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=41608192</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=41608192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41608192</guid></item><item><title><![CDATA[New comment by hubertzhang in "Show HN: EloqKV – Scalable distributed ACID key-value database with Redis API"]]></title><description><![CDATA[
<p>Good question! As explained in the linked article, our core technology, Data Substrate, is modular by design and requires a storage layer to handle the actual data (more precisely store the checkpoints). This storage layer can be any data store with a Key-Value interface: it doesn't need to meet the consistency and isolation requirements of a full database.<p>We chose RocksDB and Cassandra to showcase two different approaches. RocksDB offers efficient local storage, but if there's a disk hardware failure, the data can be lost. Cassandra, on the other hand, ensures high availability by replicating data, making it resilient to disk failures. We also support cloud storage options like DynamoDB and BigTable in our cloud offerings.</p>
]]></description><pubDate>Sat, 21 Sep 2024 02:03:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=41606910</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=41606910</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41606910</guid></item><item><title><![CDATA[New comment by hubertzhang in "Show HN: EloqKV – Scalable distributed ACID key-value database with Redis API"]]></title><description><![CDATA[
<p>The current release is a prebuilt binary, giving users flexibility in how they use the software. The open-source model is still being decided, but a license file is included in the downloaded tarball.</p>
]]></description><pubDate>Sat, 21 Sep 2024 00:57:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=41606686</link><dc:creator>hubertzhang</dc:creator><comments>https://news.ycombinator.com/item?id=41606686</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41606686</guid></item></channel></rss>