4 ms·
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
by fluoridation 3y ago
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.
- marginalia_nu 3y agoI 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_out)_and_vertical_scaling_(scale_up) https://en.wikipedia.org/wiki/Scalability#Horizontal_(scale_... )
- fluoridation 3y agoThen 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.
- marginalia_nu 3y agoWhat I'm commenting on is this phrasing from the article > Vertical scaling — a bigger, exponentially more expensive server > Horizontal scaling — distribute the load over more servers
- teawrecks 3y agoOk, I see where the lay person would get confused on this. In the context of this article, every core is what Wikipedia calls a "node". There is no difference between a single 32C CPU and 4x 8C CPUs except for their ability to share memory faster. Both are similarly defined as horizontal scaling in the context of this article. You're not going to finish a single workload any faster, but you're going to increase the throughput of finishing multiple workloads in parallel. The fact that AMD chooses to package the "nodes" together on one die vs multiple doesn't change that.
- marginalia_nu 3y agoThe wikipedia article qualifies what it means with vertical scaling > typically involving the addition of CPUs, memory or storage to a single computer.
- teawrecks 3y agoThis is one of those times when I feel like you just didn't read anything I typed. So... I'm just gonna let you be confidently incorrect.
- Dylan16807 3y agoOr other people can disagree with your interpretation, especially because the analogy is somewhat strained and highly oversimplified.
- marginalia_nu 3y agoI'm reading what you're typing, but I just don't agree with it. It's also contradicted by both the article we're discussing and the wikipedia article; further it's an interpretation of vertical scaling that effectively doesn't Distinction between horizontal and vertical scaling becomes nonsense if we accept your definitions, because literally nobody does that sort of vertical scaling.
- fluoridation 3y agoWrong. If you do any of these you're scaling vertically, even by that definition: * Replace the CPU with a faster one, but with the same number of cores. Or simply run the same one at a higher clock rate. * Add memory, or use faster memory. * Add storage, or use faster storage. These are all forms of vertical scaling because they reduce the time it takes to process a single transaction, either by reducing waits or by increasing computation speed. > It's also contradicted by both the article we're discussing and the wikipedia article The article agrees with this definition. Transaction latency decreases iff vertical scale increases. Transaction throughput increases with either form of scaling. Without this interpretation, the analogy to conveyor belts makes no sense.
- dekhn 3y agoThe 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.
- fluoridation 3y agoNote that I was referring to scaling of cost, not of performance. If your application parallelizes ideally, then in the worst case your cost will scale linearly, because you just add more machines and increase your power consumption by new_machine_count/previous_machine_count. It's possible adding more processors in the same address space increases the cost by an amount below new_core_count/previous_core_count, in which case the cost scales better than linearly.