News for hackers. Stuff that matters.
Re:Show HN: WunderBase – Serverless OSS database on top of S... by tptacek on Thursday September 15, 2022 @11:49AM (#32853851)
You can, of course, scale to >1 with the Fly Machines API. I don't know enough about how they're managing the SQLite part of this to say more about how this scales, except that I think scaling out SQLite is about to get a lot more interesting.

But I mostly agree that we need a better term than "serverless" for this kind of stuff. The big things people seem to want from "serverless" solutions are "not managing long-running server instances" and "true usage-metered billing".

Whether or not there are servers, like, at all has not all that much to do with things.

Re:Show HN: WunderBase – Serverless OSS database on top of S... by shabbatt on Thursday September 15, 2022 @02:51PM (#32856756)
For many fly.io is not a viable alternative especially those that are already on the AWS train.

I think that AWS already offers Aurora Serverless v2 which pretty much accomplishes what a lot of these me-too-serverless services that won't integrate as well as something that is offered out of AWS.

Even if you were insistent on cloud-agnostic mandate (which is really not logical since there is at best 3 public clouds to choose from that are also vulnerable to targeted cyberattacks and faultlines), it would be hard to convince a large organization to switch to using Sqlite on Fly.io

Re:Show HN: WunderBase – Serverless OSS database on top of S... by vosper on Thursday September 15, 2022 @03:39PM (#32857440)
> I think that AWS already offers Aurora Serverless v2 which pretty much accomplishes what a lot of these me-too-serverless services that won't integrate as well as something that is offered out of AWS.

People should just be aware that Aurora Serverless v2 won't scale to zero, and you'll pay for it even if you never use it.

https://www.lastweekinaws.com/blog/no-aws-aurora-serverless-...

Re:Show HN: WunderBase – Serverless OSS database on top of S... by shabbatt on Thursday September 15, 2022 @03:45PM (#32857530)
ah thanks for pointing that out, since this is new its bound to change. will be surprised if this didn't eventually scale to zero but if I had to bet I would back AWS here going forward. This is way too critical for it's serverless stack to get the Cognito treatment.
Re:Show HN: WunderBase – Serverless OSS database on top of S... by tptacek on Thursday September 15, 2022 @03:11PM (#32857066)
Forget the Fly.io part; SQLite is what's interesting here. I agree in advance that it's unlikely anyone's going to convert a large app from Postgres to SQLite; if full-stack SQLite succeeds as a trend, it'll be with new apps that grow up using it.
Re:Show HN: WunderBase – Serverless OSS database on top of S... by shabbatt on Thursday September 15, 2022 @03:43PM (#32857511)
interested to know what you see in sqlite here? why is there so much interest in this all of a sudden lately? am I missing something?
Re:Show HN: WunderBase – Serverless OSS database on top of S... by tptacek on Thursday September 15, 2022 @04:09PM (#32857811)
It's a database that in full-stack culture has been relegated to "unit test database mock" for about 15 years that is (1) surprisingly capable as a SQL engine, (2) the simplest SQL database to get your head around and manage, and (3) can embed directly in literally every application stack, which is especially interesting in latency-sensitive and globally-distributed applications.

Reason (3) is clearly our ulterior motive here, so we're not disinterested: our model user deploys a full-stack app (Rails, Elixir, Express, whatever) in a bunch of regions around the world, hoping for sub-100ms responses for users in most places around the world. Even within a single data center, repeated queries to SQL servers can blow that budget. Running an in-process SQL server neatly addresses it. Conveniently, most applications are read-heavy, and most performance-sensitive app requests are reads.

Re:Show HN: WunderBase – Serverless OSS database on top of S... by shabbatt on Thursday September 15, 2022 @04:14PM (#32857870)
hmm but how would the replication and sync be handled if you have many sqlite instances on edge locations around the world? If someone inserts a row with id 234 and somebody from other side of the world does it, wouldn't this type of logic involve reaching into a central source of truth to compare the diff?

tryna wrap my head around this architecture, it is quite interesting but concerning that it is now sharding into close-to-local sqlite instances located near the user.

Re:Show HN: WunderBase – Serverless OSS database on top of S... by tptacek on Thursday September 15, 2022 @04:16PM (#32857903)
Yes: the model topology you should have in your head is "single writer, multiple readers" --- exactly the same way it would work with a conventional Postgres setup. What you're getting with SQLite here is that the reads themselves are served out of the app process rather than round-tripping over the network; otherwise, it's the same architecture.

(You're not generally "reaching back to the central source of truth to compare" things, so much as "satisfying the write centrally and shipping out the new database pages back to the read replicas at the edges").

More on this model: https://fly.io/blog/globally-distributed-postgres/

Re:Show HN: WunderBase – Serverless OSS database on top of S... by shabbatt on Thursday September 15, 2022 @04:44PM (#32858193)
Interesting, do you have plans to support GPU as well? I can see this is a bottom up approach: put a low load instance close to the user for reads and have a globally synced write that should handle race conditions etc

Are there cold start delays? From the moment I type domain.com is it going to spin up a fly instance closest to me and serve the SQLite database reads?

I'm gonna give this a go this weekend to see what it can do

Re:Show HN: WunderBase – Serverless OSS database on top of S... by tptacek on Thursday September 15, 2022 @04:49PM (#32858260)
This is getting into Fly.io stuff and not WunderBase or SQLite stuff. GPU is a ways off for us: the programming interface for GPUs is tricky to implement with full isolation between VMs. The post we're commenting on talks a bit about cold start delays (a couple hundred milliseconds).
Re:Show HN: WunderBase – Serverless OSS database on top of S... by gregwebs on Thursday September 15, 2022 @12:46PM (#32854727)
This is SQLite, so how would you scale itr to > 1? Certainly you can put an app tier in front of this DB tier and scale the app tier to infinity.
Re:Show HN: WunderBase – Serverless OSS database on top of S... by tptacek on Thursday September 15, 2022 @12:49PM (#32854795)
By replicating the SQLite transactions to other SQLite databases.
Re:Show HN: WunderBase – Serverless OSS database on top of S... by soamv on Thursday September 15, 2022 @01:39PM (#32855653)
Hey, I like SQLite and I also like fly.io, but "distributed DB built with sqlite as storage" is really a very different beast from just "sqlite".
Re:Show HN: WunderBase – Serverless OSS database on top of S... by tptacek on Thursday September 15, 2022 @01:43PM (#32855727)
I'm mostly interested in the SQLite part of this, and we don't have an SQLite offering, only Postgres, just to be clear. So you can't hurt my feelings here.

When does SQLite become "a distributed DB built with sqlite as storage"? Did Postgres stop being Postgres when someone plugged log shipping into it? That's basically what we're talking about here --- not stuff like rqlite, which I'm also pretty interested in, but which really is a new database built on SQLite.

Re:Show HN: WunderBase – Serverless OSS database on top of S... by gregwebs on Thursday September 15, 2022 @03:48PM (#32857568)
Users generally don't plug ad-hoc log shipping solutions into Postgres. They generally use the built-in battle-tested Postgres replication features, and they can setup synchronous replication to avoid data loss. Shipping a log is trivial but synchronous replication and failover are quite difficult to get right (see jepsen.io), and setting up failover for Postgres is still quite difficult. Newer DBs have been built from the groundup (CRDB, TIDB, etc) in part because of the difficulty of attempting to operate traditional DBs as reliable distributed systems.
Re:Show HN: WunderBase – Serverless OSS database on top of S... by tptacek on Thursday September 15, 2022 @04:13PM (#32857863)
They do now, but that wasn't always the case, and people didn't say that you weren't running Postgres when you did that.

Cockroach is not the same thing we're talking about here; it's a much more ambitious design, just like rqlite is much more ambitious than shipping SQLite transactions. What we're talking here is the tooling needed to generate a single-writer multi-reader cluster the way you would for Postgres, but for SQLite instead. I don't know if single-writer multi-reader clusters for Postgres qualify as "easy", but they're not science projects.

If it's not obvious: we love Cockroach. Our commercial bias is that we built a platform that is especially useful for distributed services and clusters, and Cockroach is very much that.

Re:Show HN: WunderBase – Serverless OSS database on top of S... by gregwebs on Thursday September 15, 2022 @09:15PM (#32860767)
Okay, I read the fly.io documentation. What is being done now to globally distribute PG results is asynchronous replication and thus stale reads and presumably the potential for data loss during failover. So I can see why it would make sense to use SQLite to achieve a similar setup.

Still, I would expect the windows of read staleness and data loss to be much wider with an approach of just shipping logs rather than re-engineering things like RQLite, etc. Trying to ship a copy of SQLite to every app will mostly achieve lower latency at the cost of staler reads, although I can see how ideally it could cut the latency in half by streaming data ahead of time. But of course it increases storage costs dramatically as things scale out.

Re:Show HN: WunderBase – Serverless OSS database on top of S... by tptacek on Friday September 16, 2022 @12:12AM (#32861969)
Sure, that seems very likely to be true! The flip side of the coin though is that rqlite really is a different database than SQLite. I'm not making a case against things like rqlite and Cockroach; I think they're great, and also my bread is buttered on the same side as theirs. I'm saying that if you're not going to use rqlite --- and most people aren't --- you can get SQLite to the same multi-reader single-writer cluster setup that most people do with Postgres.

And there's a distinct advantage to doing this with SQLite: if you can viably deploy SQLite (because your tooling is asymptotically approaching the state of the art for Postgres), your reads are ultra fast, because you're not hitting the network for an extra round trip every time you query your database.