> Neon is scaling databases to zero and offer a certain number of "active hours" in their free tier.
Neon's free tier allows users to run their database 24/7[0]. That means you could keep a database alive all the time if you wanted. Quoting the pricing page:
> 24/7 for your main database
In addition to the 24/7 usage on the free tier, Neon additionally gives you 20 compute hours for branches other than your primary/main branch.
Just wanted to clear up the confusion in the article. Not sure why they phrased the Neon section that way.
Edit: The author has corrected the statement about Neon. Thanks!
The understanding of the Neon free tier and the term, compute hours, has been something we are always trying to clear up, so it would not surprise me if the phrasing changed at some point in time, but the free tier has always allowed a user to run a database continuously as far as I remember.
I have had to correct others in our Discord server for instance too.
I went all the way back to just a few days after I started[0]. I can't find any restrictions on the free tier uptime for the primary/main database in any of the Wayback Machine snapshots of https://neon.tech/pricing.
Last year we did take a lot of heat for cold starts. Here are two blog posts which discuss how we have worked on cold starts.
I can't say this is the disconnect some are having, but it's the one I did until just now. I read "24/7 compute" and assumed that meant no cold starts. It really meant "up to 24/7 uptime but it will still scale to 0 and require cold starts."
The free tier has mentioned that auto-suspend isn't configurable on the free tier for every archive I could find on the Wayback Machine.
If you want an always on compute on the free tier, you can just setup a cron job, and every 4 minutes or so send a "SELECT 1" which will keep the database awake.
There’s a disconnect here. You are 100% technically correct. Your product’s messaging is confusing. Saying “24/7 compute” makes some people think no cold starts. Enough people in fact that you have to keep correcting them.
Yeah, but there is a point (about 1 hour, last I checked being a few months ago) where you start getting cold starts in Neon. You can call that being active the whole time but CockroachDB doesn't have this problem. If I had to rank it:
"Live" database > CockroachDB (few hundred ms) > NeonDB (2-3 seconds) > traditional cold start. This is just my impression and the data is made up but that is how it has felt as a user. So there are definitely levels of "scaling to zero"
When you scale something to 0, indeed there are issues with cold starts. On the Neon free tier, you will get a cold start if your database is inactive for 5 minutes (you can configure this value on paid plans).
As an exercise, I decided to try for myself what my cold start time is + query round trip, on Neon's free tier. Note that I am in Austin connecting to us-east-2.
$ time psql -c 'SELECT 1' 'postgresql://neondb_owner:<password>@<endpoint>.us-east-2.aws.neon.tech/neondb?sslmode=require'
Null display is "(null)".
?column?
----------
1
(1 row)
real 0m1.156s
user 0m0.036s
sys 0m0.020s
You can't make a trend out of 1 data point, but thought I would provide it nonetheless.
Last year I was playing around with Neon and the cold starts were slow enough that I implemented a “Loading…” dialog box.
I haven’t touched it in a year, but I tried it just now and it still works. Cold startup for the Deno Fresh instance and the database query were about 700ms each, assuming I interpreted my logs correctly.
Subjectively, it’s slow enough that it’s worth putting up a dialog box, but it disappears fast enough that you don’t need a spinner or progress bar. A meta-refresh of one second seems good enough.
(I’m in California but the demo uses an East Coast instance for Neon. I set it up that way because I wanted to know how it would feel.)
> Neon is scaling databases to zero and offer a certain number of "active hours" in their free tier.
Neon's free tier allows users to run their database 24/7[0]. That means you could keep a database alive all the time if you wanted. Quoting the pricing page:
> 24/7 for your main database
In addition to the 24/7 usage on the free tier, Neon additionally gives you 20 compute hours for branches other than your primary/main branch.
Just wanted to clear up the confusion in the article. Not sure why they phrased the Neon section that way.
Edit: The author has corrected the statement about Neon. Thanks!
[0]: https://neon.tech/pricing