Worth noting "rows read" is not "rows returned". If you do 1000 full table scans on table with a million rows, you got a billion reads<p><a href="https://docs.planetscale.com/concepts/billing#understanding-rows-read" rel="nofollow">https://docs.planetscale.com/concepts/billing#understanding-...</a>
We wrote a blog post comparing RDS vs PlanetScale from a pricing perspective back in January...kudos to PlanetScale on responding to feedback on that so quickly. HN discussion here: <a href="https://news.ycombinator.com/item?id=29910812" rel="nofollow">https://news.ycombinator.com/item?id=29910812</a><p>We'll get the blog post updated but conceptually it seems like the "tipping point" of using PlanetScale vs RDS just got a lot easier at least from a read perspective - analysis is here: <a href="https://www.vantage.sh/blog/2022-01-12-rds-vs-planetscale-pricing-considerations" rel="nofollow">https://www.vantage.sh/blog/2022-01-12-rds-vs-planetscale-pr...</a>
Well this is some nice news! From what I've seen from my data usages I was going to fall well within the free tier /before/ this change and now I've got even more headroom. I've been switching over to PlanetScale from Aurora Serverless and I'm really enjoying the experience so far and the savings are great too (1 instance costs about $40/mo, I have my dev/qa environments turn off after 5 minutes of no activity so they are almost free but prod has to stay on 24/7, now I'll pay $30/mo and that can take care of all 3 environments).
This is a nice change. It looks like it used to be $15/mo per 100 Million rows read, $15/mo per 10 Million rows written. Now it's $1 per billion reads and $1.50 per 1 million writes. So the write pricing hasn't changed, but the read pricing has gone from $150 per billion to $1 per billion (a reduction of 99.3%). $1 would have gotten me 6.7M reads before the change and now a billion reads (150x more reads for your dollar). That's a huge pricing change!<p>I'm guessing the "difficult to understand and hard for you to predict" is around how the read pricing is based on how many rows MySQL needs to read in order to serve your query. That's going to depend on how the query optimizer executes your query (and what indexes you've made and such).<p>It does make me wonder if I'm allowed to create as many indexes as I want without incurring additional "writes". Their billing page makes it seem like indexes don't count: <a href="https://docs.planetscale.com/concepts/billing" rel="nofollow">https://docs.planetscale.com/concepts/billing</a>. In fact, their storage language makes it seem like indexes aren't charged for storage: "Data saved in the form of tables, columns, rows, and their corresponding relationships." I'm guessing that's just an oversight and the thinking is that "tables" covers indexes, but wouldn't "tables" also cover "columns, rows, and their corresponding relationships?" Given the expensive storage at $2.50/GB, how big things are seems to matter. Cockroach charges $1/GB (60% less), Google charges $0.34/GB for Cloud SQL HA storage, and $0.33/GB for Cloud Spanner storage (and 2-3x that if you're going multi-region). $2.50 is a big premium.<p>It still seems like there's an incentive to over-index rather than doing small filtering in-memory, though the incentive is now 99% smaller. Likewise, there seems to be no charge for doing something that requires sorting - or maybe they consider the sort to be a re-read of all the results? Looking over MySQL's explain analyze results, it looks like there shouldn't be a cost for reading through the index.<p>Sorry for the random thoughts. PlanetScale is a great project to offer a serverless MySQL on top of Vitess. I wish Vitess existed for PostgreSQL (we use Postgres' GIN indexes with JSON so it's not easy to move to MySQL).
This is similar to the problem we face, where you're charging based on usage of something people don't usually count. For us, that's GraphQL requests.<p>While certainly big companies have monitoring for this kind of thing set up, we learned that a majority of engineering teams have absolutely no clue how many GraphQL requests they get per month. Like, not even a ballpark. Hundreds of thousands? Millions? Billions? No clue, could be any of those.<p>Our free plan was originally 5M free requests per month, which is relatively generous — but people didn't know and thus we had almost no users on the free plan. We recently changed it to just be "free for solo developers working on side projects / indie hacking / etc. no matter how many requests".[0]<p>So far, the change's been well received! Curious to see Planetscale dealing with the same general kind of issue, just on a different layer.<p>[0]: <a href="https://graphcdn.io/blog/unlimited-free-requests-for-developers" rel="nofollow">https://graphcdn.io/blog/unlimited-free-requests-for-develop...</a>
Database reads/writes are really hard (read: impossible) to predict unless you are already in production. Leading to thoughts like: "1 Billion reads!! I'll never use that much..." Once you cross the line, the overages kick in.<p>That being said, this does appear to be absurdly cheap compared to competitors. Amazon Aurora appears to be sitting at around $200 a month for 1 billion reads, excluding writes/transfer/storage/etc.<p>CockroachDB Serverless includes 250M "request units" (request units include reads and writes and individual requests can costs multiple units depending on size). They charge an extra $1 per month per 10M "request units," so $75 to get to 1B reads at least.<p>Am I missing something? What's the catch?
I'm not really sure why a pricing change is HN-worthy, but I guess here I am biting:<p>> We’ve also heard your feedback about how our pricing is difficult to understand and hard for you to predict.<p>> Starting March 1st we’ll be offering our customers up to 200x more reads across all pricing plans.<p>Just giving more reads doesn't seem like it's actually simplifying pricing or making it more predictable?
The pricing page/docs leaves so many questions unanswered:<p>-What's the cost of egress?<p>-What is a read/write exactly? It is a DB "page" read/write? I know there's a section on this, but it doesn't explain details.<p>-If it's a page read/write, what is the size of the page? 16kb?<p>-If it's a real row read/write, what is the maximum size? Can I write a 100mb row for the same price?<p>-What about indexes, or merging the WAL log? Will I be charged for these operations (can result in million+ writes)?<p>-What about small consecutive writes that fit in a single 16kb page, do I get charged a single write "unit"? RDS actually combines this into a single op (see IOPS with RDS).<p>-What about cached reads, do I get charged for that?<p>-What about computationally expensive queries, that do not actually read/write that much?<p>Please answer these questions. Provide useful real-world pricing examples. This is standard stuff, and especially important if "transparent" pricing is a key feature.
If PlanetScale just offered to reimburse any costs above the 99th percentile of normal operations it would be a great success. If their business model is dependent on people getting screwed by costs above the 99th percentile then they shouldn't be in business.
Look 200x more of something is 200x more, and 200x more for the same amount is a huge win for a service's users.<p>In the DB space though pricing per row or iop or this or that is tough. We're heavy users of BigQuery and the pricing per bytes consumed is tough, too, as you can't always rely on the estimator. But then if you go the fully pre-paid route like with something like Redshift you have high upfront fixed costs for an always on DB (that changed a bit with Redshift serverless -- currently in preview -- <a href="https://aws.amazon.com/redshift/redshift-serverless/" rel="nofollow">https://aws.amazon.com/redshift/redshift-serverless/</a>) but I mean it's the same with BQ in that sense: don't run a query don't get charged except for stored data.<p>The point I am trying to make is that pricing of a DB is hard. If I had to choose I think I rather like the straight forward per second billing of serverless.
Can anyone comment on PlanetScale vs Supabase? I'm not their target, because I'm just a random individual that wants a free database for personal projects. I could try both but would be nice to hear about someone's experience.
Just curious, how are indexes priced?<p>I assume you’ll pay $2.50/GB for storage, but if I update a row that touches 5 indexes is this 1 write or 6?