Delete types in Apache Iceberg v3
▲ 19 r/ApacheIceberg+1 crossposts

Delete types in Apache Iceberg v3

Deletion Vectors are among the major improvements introduced in Apache Iceberg v3. Instead of creating separate position delete files, a deletion vector stores a compact bitmap for a single data file that marks which row positions have been deleted.

This approach improves performance and preserves more useful statistics for data files. It also makes it easier to compare previous and current deletes, simplifying the processing of a table’s row-level changes as a stream.

u/Low_Brilliant_2597 — 3 days ago

Database Design Tradeoffs

Every database design is a tradeoff between performance, correctness, and complexity.

- Storage engines trade off reads, writes, and space.

- Indexes trade update cost for faster lookups.

- Optimizers trade planning time for execution speed.

- Concurrency control trades parallelism for correctness.

- Recovery trades write overhead for durability.

- Distributed database systems trade latency, consistency, and availability.

u/Low_Brilliant_2597 — 18 days ago
▲ 331 r/Database

The Pioneers Who Shaped Database Systems

From the first DBMS to the relational model, SQL, transaction processing, and enterprise databases like Oracle and PostgreSQL, these pioneers laid the foundation for database systems.

There are also many other database researchers and engineers who have contributed a lot to database systems, including Patricia Selinger, Raymond Boyce, and many others.

u/Low_Brilliant_2597 — 29 days ago
▲ 155 r/Database

Object-Storage-Native Databases

Object storage is becoming the primary storage layer for modern database systems. Not as backup, archival storage, or a cold tier, but as the primary durable storage layer. As a result, more and more data systems are being designed around the assumption that durable data lives in object storage, while compute becomes ephemeral and elastic.

Examples span almost every category of the data stack: Snowflake and Databricks, Neon and TiDB, RisingWave streaming database, turbopuffer, LanceDB, Milvus, Chroma, and SlateDB.

The workloads, query engines, and consistency models are different, yet they all converge on the same architectural principle: decoupling compute and storage, with object storage serving as the durable storage layer.

The benefits of using object storage are obvious: low storage cost, unlimited capacity, high durability, elastic compute, and simplified operations. But object storage is not a free lunch. Its primary challenges are no longer disk management or capacity planning, as in traditional storage systems. Instead, they include request amplification, metadata scalability, read/write operation costs, cache management, tail latency, and consistency semantics.

As all data systems have their own trade-offs and related engineering challenges, so do object-storage-native database systems. Still, this is becoming a fundamental storage architecture pattern used across databases with different workloads.

u/Low_Brilliant_2597 — 1 month ago
▲ 1.5k r/Database

SQL is Dead, Long Live SQL

For more than 50 years, people have been predicting the death of SQL. As Prof. Andy Pavlo says, "Somebody invents a SQL replacement every decade. It then fails and/or SQL absorbs the key ideas into the standard. Every NoSQL DBMS (except Redis) now supports SQL."

Today, the latest challenge comes from AI. At a recent keynote, Databricks CEO Ali Ghodsi declared that "AGI is here today." The implication is that natural language interfaces and agents may eventually replace SQL. Yet the reality is more nuanced.

The recently released BEAVER enterprise Text-to-SQL benchmark shows that even the most advanced models still struggle with real-world enterprise SQL tasks. As of 27 February 2026, the latest benchmark results are: Claude 4.5 Sonnet: 11.4% and GPT-5.2: 10.8%.

These models have improved a lot over the past few months. But when faced with large enterprise schemas, complex joins, domain-specific knowledge, nested queries, and analytical workloads, they are still far from reliably replacing SQL expertise.

The lesson is that SQL keeps proving remarkably resilient. Just as it survived many "SQL killers," it is likely to evolve alongside AI rather than be replaced by it. After more than half a century, SQL remains the lingua franca of data. RIP SQL? Not anytime soon.

u/Low_Brilliant_2597 — 1 month ago

Need Advice: ASSF Redemption Decision

Hi friends, I currently have approximately Rs. 1.35 million invested in Al Ameen Shariah Stock Fund.

According to the UBL Funds interim dividend announcement:

  • ASSF cut-off date: 17 June 2026

  • Ex-NAV date: 18 June 2026

I need the money by around 10 July 2026.

My understanding is that after the dividend distribution, the NAV will adjust downward by roughly the dividend amount, so the dividend itself does not create additional value. But, I am also expecting a potential rally in the PSX over the next few weeks due to the Iran-US deal.

Given my situation:

  1. When should I redeem my ASSF units before the dividend, after the dividend, or closer to 10 July?

  2. Since I need the funds within about 3–4 weeks, how should I weigh the potential PSX upside against the risk of a market correction?

  3. Are there any tax issues that could affect the timing of redemption?

  4. Based on the current situation, what would you suggest?

Thanks in advance! 🙏

reddit.com
u/Low_Brilliant_2597 — 1 month ago

The RUM Conjecture: Understanding Storage Engine Tradeoffs

The RUM Conjecture explains one of the most important realities of database design. There is no perfect storage engine. All databases make different tradeoffs. And those tradeoffs can be explained through a simple framework: The RUM Conjecture.

RUM stands for: Read efficiency, Update (write) efficiency, Memory (space) efficiency. The core idea is simple: You can optimize for any two. But you can not simultaneously optimize all three. Storage engine designers focus on what they are willing to sacrifice. Every database storage architecture sits somewhere inside the RUM triangle.

For example, B+ Trees favor fast reads and space efficiency while paying for higher write costs and random I/O. Pure log structures favor fast writes and sequential I/O while paying for expensive reads and space amplification. Hash tables favor fast reads and fast writes while paying for large memory consumption and poor space efficiency.

LSM Trees take a more balanced approach: Write to MemTable → Flush to SSTables → Compact later. In other words: Optimize writes first. Organize data later. This allows LSM-based systems to achieve high write throughput, good read performance, and reasonable space efficiency while accepting compaction overhead, read amplification, and write amplification.

The interesting part is that the hard problem isn't optimization itself. It's understanding the cost of optimization. Improve reads? More indexes, more metadata, more maintenance. Improve writes? More files, more versions, more read work later. Improve space efficiency? Less redundancy, less metadata, slower lookups. Every improvement introduces a new cost somewhere else in the system. As the RUM Conjecture teaches: Pull one rope, and the other two pull back.

Modern storage engines are ultimately exercises in balancing read amplification, write amplification, and space amplification rather than eliminating them entirely. This is also why LSM Trees became the dominant storage architecture behind many data systems. Not because they maximize one dimension. But because they strike a practical balance across all three. Understanding the RUM Conjecture is ultimately about understanding a fundamental truth of system design: Every storage engine is a tradeoff. The question is not whether tradeoffs exist. The question is, which tradeoffs best fit your workload.

u/Low_Brilliant_2597 — 1 month ago

LSM trees for write-heavy databases

LSM Trees power many of today's databases. Because most databases face a fundamental challenge: how to support massive write throughput without constantly rewriting data.

Traditional B-Tree systems update data in place: Find page → Modify page → Write page back. While LSM Trees take a different approach: Write to MemTable → Flush to SSTables → Compact later. In other words, write fast now and organize later.

This simple idea optimizes them for high-ingestion workloads.

But every design comes with tradeoffs. LSM-based systems gain fast writes, sequential I/O, and scalability, while paying for compaction, write amplification, and read amplification.

So, understanding LSM Trees today is not just about storage engines. It's about understanding one of the foundational building blocks behind most of today's databases.

u/Low_Brilliant_2597 — 2 months ago
▲ 13 r/rust

Lessons from RisingWave's Migration from C++ to Rust

Hey, I want to share this blog about the journey and lessons learned from RisingWave, a streaming database, that migrated from C++ to Rust by deleting 276k lines of code, discarding 7 months of development, and starting from scratch. I really hope this will be helpful for anyone working on or starting a data infra project with Rust and want to understand its pros and cons.

* I work at RisingWave.*

u/Low_Brilliant_2597 — 2 months ago