5 ms·
Another consideration is that, at scale, no sql is way cheaper. I run a service with approx. 900k daily users, each generating about 210 object writes and reads
by aenis 5y ago
Another consideration is that, at scale, no sql is way cheaper. I run a service with approx. 900k daily users, each generating about 210 object writes and reads that need to execute within 50ms, and I am running this on firestore for about $350 a month, incl. Elb, waf, regionally replicated compute, managed NLP and translate. I sync the no sql stuff to bigquery for analytical usage. Cheap, and scales without any problems as long as one observes the recommended patterns. And all of that scaled from a 5 user POC without a single adjustment in the infra setup or architecture.
Not doing relational again.
- HWR_14 5y agoAnd what do you think that would cost with an RDBMS? I see approx. 2000 writes and reads (presumably combined) a second. Depending on how big those objects were, it seems doable in a single computer running SQL. Also, and this is neither here nor there, I thought Firebase hit a hard user limit of 1,000,000 daily users.
- zepolen 5y agoThat's more the benefits of cloud rather than nosql though. 200 writes/second is not even scale, a single instance would handle that fine, with beefy hardware you could do 100x that. You could even run it in cloud, for about $50/month, and as a bonus use the same instance to perform the analytics which will be real time. Not to mention enjoying much better data integrity.
- HWR_14 5y agoWhich cloud lets you rent a beefy SQL server for $50/mo? This is actually really useful info to me, as we're looking at needing to migrate to a new provider soon.
- zepolen 5y agoI mean you're going to have to be more specific than that, some clouds have high cpu but expensive disk, others the reverse. $50/mo will not get you both, but it will easily get you 200tx/s.
- HWR_14 5y agoI was thinking low disk costs. There doesn't seem to be much need for a CPU other than input validation. Although I guess currently our analysis is mostly done offline with a downloaded partial data set. It would be nice to do it in the cloud.
- PedroBatista 5y agoYou’re comparing a technology with a product. Would it be $350 a month if you had to run all that by yourself? You’re enjoying vast economies of scale and for practical terms it’s fine. For now all those bits with cute names aren’t dinosaurs but for damn sure they aren’t sharks.
- nicoburns 5y ago> each generating about 210 object writes Would it be 210 writes in a relational db though? Our product at work started on Firestone and one of the main problems was it was causing us to have to do far more operations than we would otherwise have needed. E.g in a relational db you can do UPDATE WHERE or DELETE WHERE in a single operation. I’m Firestone that’s a get followed by an update/delete for each record! I guess it depends on your workload, but we’re the opposite: never doing Firestone again!
- cageface 5y agoI've seen some NoSQL object/schemaless database turn into intractable balls of mud over time. Things that would be trivial in a relational DB with joins can turn into major engineering efforts and data corruption can be very hard to clean up.
- bob1029 5y ago> Another consideration is that, at scale, no sql is way cheaper. Define "scale" and "cheaper". I have some SQLite databases that are chewing through over 1K writes per second in production (WAL=on). Many of our transactions resolve within 10-100 microseconds because the application process and the database process are the same thing. SQLite seems to be one of the cheapest options available, being totally free and of negligible footprint. It's also exceedingly cheap in terms of engineering complexity and scary unknowns. Something about being literally the most deployed piece of software on earth seems to help. NoSQL reads like a religion to me these days. Starting with something that is actively trying to tear itself apart due to the inherent complexity seems like a horrible way to build a 5 user POC.
- ithrow 5y agoI have some SQLite databases that are chewing through over 1K writes per second in production (WAL=on). Is that with synchronous full(2) or normal(1)? What's your SQLITE_THREADSAFE mode?