That would be billed as a single query. We think this is a much simpler way to reason about your cost compared to counting rows scanned, CPU time consumed or something more granular like that.
If your query is very expensive, it will take longer to complete, and that will be a signal to you the developer to simplify your query or identify an index that can help speed it up. Prisma Optimise will help you identify and improve such queries.
While I think as an arm-chair business wonk y’all should count it as 6 queries and not 1 as a payer and consumer I’m even more likely to use it now that you count us as only a single query. :-)
It's not every day you get to launch a hosted Postgres service that has something fundamentally new to offer. That's what we have done with Prisma Postgres, and I'm incredibly excited for it.
We are using Firecracker and unikernals to deliver true scale-to-zero without cold-starts. Happy to go into more detail if anyone is interested.
You ommited another fairly known serverless Postgres provider which also does that (scale to 0 and no coldstart):
Nile (thenile.dev).
Not affiliated in any way with Nile, just a happy user.
I find their pricing much easier to reason about and plan, something I found super cluttered and hard to reason about on your pricing page.
Competition in the serverless Postgres space is always welcome from a customer perspective, but my gripe is currently a) bundling with Prisma - I might not want to use your tool and b) cluttered pricing.
The point re: pricing explanation is well taken. We've already done a revision and will work on another one as we get more feedback on the latest version.
Wow, I thought you guys were just reselling Neon like some others. This is genuinely impressive technically. It's got me looking at Unikraft Cloud for other stuff too.
That said, do you plan do offer branching or any other features that Neon offer? I think that's their big selling point along with separate billing for compute and storage.
Prisma team member here... Yes, when we go GA, we'll offer features that'll give you the comfort of wanting to run your production loads on Prisma Postgres!
Essentially, you pay for database queries and events, with 60'000 included for free, which is plenty for experimenting and small projects. Price per million queries/events is then based on the plan you're subscribed to, and with Starter you have zero monthly fixed costs and only pay for queries and events above 60'000.
No CPU-time and similar that's usually hard to grok.
Take a look at the Accelerate and Pulse pricing details. Prisma Postgres comes bundled with these, so the pay-as-you-go pricing is the same: https://www.prisma.io/pricing#accelerate
We'll continue to make improvements to the pricing on the way to General Availability to make it both as easy to understand and affordable as possible.
If pricing is only done by storage limits, egress and query count (but not resource usage) how do you prevent something like a massive cross join with an aggregation from just running for ages on a single query?
We are looking for input on this during the EA phase. Here's how we plan for this to work:
- Each incremental concurrent query allocates additional compute resource to your database
- All queries share that pool of compute resource
- Queries have strict timeout limits. 10 seconds on most plans configurable up to 60 seconds.
Prisma Postgres is designed to serve interactive applications with users waiting for a response. In a sense, we are adopting some of the design principles underlying DynamoDB (strict limits on queries) and combining it with the flexibility of a Postgres database that is fully yours to configure and use as you see fit.
I don't want limits on the kinds of queries I can run when those limits are artificial ones imposed to work around limitations of a too-simple billing system instead of being inherent in the domain. I'm willing to pay extra for the occasional huge query, but I wouldn't feel comfortable knowing I couldn't make it at all.
How much overlap is there in the “serverless database that starts fast” group and the “might have a query that runs for 60 sec” group? If you’re running queries that are that complex, wouldn’t you be better served with a different database service?
That said, a production OLTP workload database would also have query timeout imposed, otherwise those fine folks in the crappy query writing department will surely bring it down.
Having query timeouts instantly makes me write this solution off.
Companies, especially smaller ones starting out, will run analytics in the same DB as the application DB.
A major plus of using a Postgres DB is the flexibility of doing analytics and serving apps. It can do it all. Analytics queries will often easily exceed your timeout limits.
Does that mean that using Prisma Accelerate and Pulse with an external database will cost the same as using it with the bundled database? (Since I don’t see database-specific costs for storage, read replicas, PITR, backups)
While Prisma Postgres in in early access, yes. This is why there's no ability to change the database config right now.
However, when we release Prisma Postgres in GA (couple of months), you will be able to upgrade your postgres instance (CPU, storage, etc.) and that will be db-specific cost.
I am super excited for this release. We build Prisma Optimize with inspiration from a tool I used as a young software developer almost 15 years ago, nhprof: https://hibernatingrhinos.com/products/nhprof
Technology has come a long way, and the addition of an AI agent that can help answer questions about your query patterns and the recommendations we provide has turned out to be super helpful.
If you are using Prisma, please give it a try and let us know if there is anything you think we could improve. We are already working on many more recommendations to help you catch different kinds of performance problems.
Vultr is great!