5 ms·
it's astounding how much a $20 linode can handle (as a web host) with a proper software stack and performance-minded coding. but companies throw money, hardwar
by leeoniya 8y ago
it's astounding how much a $20 linode can handle (as a web host) with a proper software stack and performance-minded coding.
but companies throw money, hardware and vendor lock-in at problems way before commiting to sound engineering practices.
i have a friend who works at an online sub-prime lender, says their ruby backend does hundreds of queries per request and takes seconds to load. but they have money to burn so they just throw hardware at it. they spend mid-five figures per month on their infrastructure and third party devops stuff).
meanwhile, we run a 20k/day pageview ecommerce site on a $40/mo linode at 25% peak load. it's bonkers how much waste there is.
i think offloading this stuff to "someone else" and micro-services just makes you care even less about how big a pile of shit your code is.
- 72deluxe 8y agoAnd we just thought the frontend of websites and services was bad. Seems the insanely bad coding and ignorance of speed and performance goes all the way to the backend too! Disappointing.
- DylanBohlender 8y agoOne of the things I'm most grateful for as a programmer was the ability to learn a lot of performance-minded backend design principles within the Salesforce ecosystem. Salesforce was always brutally unforgiving in terms of the amount of I/O it would let you do per transaction, which led me to become much more aware of how those things worked under the hood, and had the effect of teaching me how to better design my code to fit within the limits. When you can't use more than a couple seconds of CPU time per transaction, or you have a fixed and spartan heap size for a big algorithm, you learn good habits real quick. I imagine a lot of engineers today haven't had the experience of working within hardware limits, hence all the waste everywhere.
- leeoniya 8y ago> When you can't use more than a couple seconds of CPU time per transaction hmm, i guess that explains why salesforce is universally known for being slow; 2 seconds is an eternity. we deliver every full page on the site within 250ms from initial request to page fully loaded (with js and css fully executed and settled). images/videos finish later depending on sizes and qtys.
- sbr464 8y agoI don’t disagree that Salesforce is slow but this is a different workload, think db/business logic to perform a task, processing records, etc, not loading a typical page/assets.
- leeoniya 8y agoi just signed up for a trial of salesforce and at least when there's not much data in the account it doesnt seem too slow. i was going off of what some coworkers related to me from past experience. i think it's expected that if you're doing some editing/reporting/exporting en masse, then a couple seconds could be okay (assuming it's thousands or tens of thousands of records, not a hundred). but not for single-record actions / interactions.
- nukeop 8y agoAstonishingly it turns out that bad programmers are everywhere and aren't made any better by handling a different domain of problems. Truly shocking.
- raviolo 8y agoWe process up to 15 million events per second on a $15K HP server.
- leeoniya 8y agoa pretty meaningless metric without knowing what an "event" is.
- raviolo 8y agoThe event is market data update. On one hand it is in fact pretty simple. On the other hand, it is not much simpler than something like “user X liked Y” or even “product Z added to cart”. I think it shows what a well designed, optimized code can do on a normal hardware. Remember there is 3-4 billion instructions that a modern cpu is pumping out per second. One large bank I used to work for had a payment processing system doing about 40 thousand transactions per day. It ran on about $8 million worth of hardware - mainly IBM mainframe. I was impressed until I found out each transaction was essentially a 60-100 byte text message. I can confidently say a well designed system can do 1000 times that load on an iPhone.
- cbzoiav 8y agoNot that it isn't probably still terrible code but the banking system is likely logging the full transaction details every time it is modified / passed to a different part of the system. I.e. fully auditable - if something goes wrong with the transaction it can be fully traced back, corrected and the underlying issue investigated.