Live data from Hacker News

Postgres data stored in Parquet on S3: LTAP architecture explained

databricks.com

51–60 of 66 posts

Re: Postgres data stored in Parquet on S3: LTAP architecture explained

#52
this is an interesting development.

OLAP databases have gone this route now known as Lakehouse architecture. figured out soon enough OLTP will go the same way.

by eliminating CDC & other data engineering tasks - people will have interesting ways to analyze hot data. RisingWave etc - were already on the frontier of what you can do with hot data - but now more you won't have something separate to run.

Re: Postgres data stored in Parquet on S3: LTAP architecture explained

#53
Surprisingly, I'm already encountering a second solution that involves storing data chunks on S3 — and this is all within the same week.

This is becoming popular. At Playcode, we built what we believe is a revolutionary file system for our Playcode Cloud (https://playcode.io/cloud), which enables the creation of full-stack web software. The FS built completely from scratch using Rust. We thought we were the smartest ones around and that nobody else had figured this out. But it turns out Databricks, Neon, and several others have as well.

The idea behind a *Bottomless File System* is really cool, and it works very well for us. Essentially, as described here:

- There is a *page server* - A *Linux file system* split into chunks (let's call them chunks instead of pages) - A *cache on NVMe* - And of course, *object storage*, where everything is asynchronously synchronized

It works quite well, though it has its downsides.

One clear advantage is that NVMe drives have become expensive lately, while object storage remains cheap — so the benefits are undeniable. That said, latency is also a factor.

On top of that, uplink costs are rising. To run an object storage-backed file system, you need a very strong uplink with consistent speed — 1 Gbps is simply not enough. Ideally, you want *5 to 10 Gbps*, depending on the load.

We spend a lot of time optimizing and experimenting with different hosting providers — specifically bare metal hardware. The main challenges are:

- *Slow disks* - *Slow uplink* - And as it turns out, *object storage can be unreliable* — unless you're using S3

But AWS hardware is expensive, so nothing in life is ever that simple.

Re: Postgres data stored in Parquet on S3: LTAP architecture explained

#54
post #9

Earlier quoted context omitted.

Both Iceberg and Delta Lake support 'time travel' so you can query data as it was at a certain date. SELECT count * FROM my_table AS OF "2025-01-01" https://delta.io/blog/2023-02-01-delta-lake-time-travel/ https://iceberg.apache.org/docs/latest/spark-queries/#spark-...

up to a limited number of snapshots. it's not arbitrary times, it's when there was an atomic snapshot created in the catalog.

Don't know about other systems, but in Ducklake every committed transaction creates a new snapshot.

https://ducklake.select/docs/stable/duckdb/usage/snapshots

Re: Postgres data stored in Parquet on S3: LTAP architecture explained

#55
I have to wonder: What's the open protocol - some sort of LTAP read/write path - for compute engines to target LTAP / lakebases? Sort of like how iceberg > deltalake, except now one layer up (OLTP+OLAP).

LTAP / lakebase poses an interesting gap we have been tracking ever since iceberg as we build gfql (the first oss fully-vectorized property graph compute engine with CPU+GPU targets): There's a natural desire to support both OLAP + OLTP modes for new engines, but also a gap for the cloud-native storage tier we don't want to own.

Iceberg etc were exciting as introducing more write-friendly standards-based OLAP backends better than just S3, eg, gives atomicity, and via iceberg, with open governance for code+protocol. LTAP introduces the pattern we can target in theory for OLTP+OLAP backends... but in practice, via a proprietary manner. A potential 'open' form of writers is to support postgres for oltp path writes + spark writers (presumably arrow-flight-friendly) for olap path writes, but that is so hacky.

Re: Postgres data stored in Parquet on S3: LTAP architecture explained

#56

Surprisingly, I'm already encountering a second solution that involves storing data chunks on S3 — and this is all within the same week. This is becoming popular. At Playcode, we built what we believe is a revolutionary file system for our Playcode Cloud ( https://playcode.io/cloud ), which enables the creation of full-stack web software. The FS built completely from scratch using Rust. We thought we were the smartes…

I also want to point out that all of this sounds fun and great — until the load kicks in and usage starts to grow.

That's when you start seeing:

- *Rate limits* from object storage - *Dropped packets* - *Hanging S3 requests* - *Overloaded NVMe drives* — because it turns out they're nowhere near as fast as they seem

For example, we recently discovered that the read speed is 5 GB/s, but the *average write speed is only 400 MB/s* — not several gigabytes as expected. Surprise! Who would have thought that Bare Metal could ship such underwhelming drives?

And then there's the CPU — which is also easy to kill, for instance, if you're compressing chunks. And so on, and so on.

A lot of things surface once you're in *production usage*. On paper, of course, everything looked much simpler.

Re: Postgres data stored in Parquet on S3: LTAP architecture explained

#57

Earlier quoted context omitted.

up to a limited number of snapshots. it's not arbitrary times, it's when there was an atomic snapshot created in the catalog.

Don't know about other systems, but in Ducklake every committed transaction creates a new snapshot. https://ducklake.select/docs/stable/duckdb/usage/snapshots

because they are making an extra step: instead of the snapshot being actually an object manifest, they store the snapshot metadata in a relation database.

I have a use case where we do 100k changes a second. I bet you "their unlimited snapshots because we are cool and using dbs for metadata" will fail in such a use case.

Re: Postgres data stored in Parquet on S3: LTAP architecture explained

#58
post #19

Earlier quoted context omitted.

oh wow, another rug pull!! So Ceph/SeaweedFS/RustFS/Garage are the alternatives I think

Correct, but RustFS is the only drop in replacement (just migrated) Garage and Seaweed are nice (didn't look into Ceph) but you have to re-ingest. RustFS was just plug and play albeit a few minor API differences. Also Apache licensing gives some peace of mind after the musical chair license game before they finally landed on only paid AIStor offering.

Don't look into the news about rustfs from the last few months if you are happy with them. :)

Re: Postgres data stored in Parquet on S3: LTAP architecture explained

#59
post #9

Earlier quoted context omitted.

Both Iceberg and Delta Lake support 'time travel' so you can query data as it was at a certain date. SELECT count * FROM my_table AS OF "2025-01-01" https://delta.io/blog/2023-02-01-delta-lake-time-travel/ https://iceberg.apache.org/docs/latest/spark-queries/#spark-...

up to a limited number of snapshots. it's not arbitrary times, it's when there was an atomic snapshot created in the catalog.

Every commit in Delta is time travel-able. Defaults in Delta clean up logs in 30 days (and data in 7 days but requires a VACUUM be issued.) You can set those retention periods to any arbitrary time period, but it's typically advised against due to the cost to store all the historical data.

Re: Postgres data stored in Parquet on S3: LTAP architecture explained

#60
post #28
post #17

Earlier quoted context omitted.

"The large enterprise vendors are not price-sensitive." Have you ever spoken to a CTO? They most certainly are. Also many are Microsoft houses so using Azure blob plus one of the reasons for Kubernetes/Openshift adoption was to be cloud neutral

They definitely havent. Tech side of companies is a Cost Center. And the main question the CEO/CFO makes to the CTO every week is "how can we reduce our AWS bill?" , even before the how was your weekend ? One.

[flagged]
Post reply on HN