zlacker

[return to "Understanding Kafka with Factorio (2019)"]
1. margin+lu[view] [source] 2023-07-13 16:44:10
>>pul+(OP)
> Vertical scaling — a bigger, exponentially more expensive server

This is in practice not true at all. Vertical scaling is typically a sublinear cost increase (up to a point, but that point is a ridiculous beast of a machine), since you're (typically) upgrading just the CPU and/or just the RAM or just the storage; not all of them at once.

There are instances where you can get nearly 10x the machine for 2x the cost.

◧◩
2. teawre+gC[view] [source] 2023-07-13 17:14:48
>>margin+lu
For small consumer products sure, but we're talking at the extreme end of performance and physical capabilities. Sure you can get a 2Ghz CPU for ~2x the price of a 200Mhz CPU, but how much are you going to pay for a 6.0Ghz CPU vs 5.0Ghz? 6.1Ghz vs 6.0Ghz?
◧◩◪
3. margin+CM[view] [source] 2023-07-13 17:52:43
>>teawre+gC
You can go from a 8T/16C Epyc 7xxx series CPU to a 32T/64C CPU and not even double the cost.
◧◩◪◨
4. fluori+uR[view] [source] 2023-07-13 18:08:32
>>margin+CM
That's more like horizontal scaling, though. You get more throughput (transactions per second) but not lower latency (seconds per transaction). Though it may be more cost-effective to have a single 32-core machine than two 16-core machines.
◧◩◪◨⬒
5. margin+MV[view] [source] 2023-07-13 18:25:55
>>fluori+uR
I disagree with this definition of horizontal scaling. If you're moving to a bigger computer rather than more computers, then you're scaling vertically and not horizontally.

(and fwiw, wikipedia agrees with this definition: https://en.wikipedia.org/wiki/Scalability#Horizontal_(scale_... )

◧◩◪◨⬒⬓
6. fluori+oZ[view] [source] 2023-07-13 18:40:49
>>margin+MV
Then it sounds like you have a disagreement of terminology with FTA, since the article is using the terms like I am. Vertical scaling means increasing the serial performance of the system, and horizontal scaling means increasing the parallel performance of the system. In this sense, vertical scaling past a certain point does indeed get exponentially more expensive, while horizontal scaling almost always scales linearly in cost, or better.
◧◩◪◨⬒⬓⬔
7. dekhn+Qb1[view] [source] 2023-07-13 19:35:49
>>fluori+oZ
The terms are used loosely and it doesn't make a lot of sense to argue about the definitions.

I think it's true to say that vertical scaling normally is done by increasing the RAM and CPU of a single machine with a single address space and switch/bus. While horizontal scaling is normally adding more machines (additional addresses spaces and switch/bus). Historically this is because RAM to CPU performance (throughput and latency) in a single address space and bus greatly exceeds the performance of any NIC connecting machines with distinct address spaces and busses. And it mostly ignores effects like the performance costs of swapping/paging when you don't have enough RAM.

I haven't really seen many systems where horizontal scaling is truly linear, unless the problem is embarassingly parallel, like serving static content.

[go to top]