C
Chris Smith
Roedy Green said:I think it means you can handle much larger loads simply by increasing
the speed and capacity of the hardware, or the number of cpus, or
expense of the container software and database engine, without a
fundamental rewrite of the code.
What do you think it means?
I'll butt in. I think I'd choose a slightly narrower definition of
scalability. Off the top of my head, here's what I'd say. Scalability
is the property of code that its performance increases commensurately as
certain architectural changes are made to the platform.
Increasing speed is really a degenerate form of scalability, in that I'd
have a tough time writing code that doesn't perform better when running
on a machine that's 150% as fast (in CPU, disk access time, network
throughput, etc.) as the baseline. Such a piece of code would have to
include an artificial limit on performance, for example by frequently
calling Thread.sleep. For that reason, I don't think it's useful to
talk about scalability unless there are architectural changes.
Examples of scalability *would* include applications that perform better
as the number of CPUs in a box is increased; i.e., that exploit
multithreading or multiple processes well. Examples would also include
networked architectures that allow increasing the number of boxes where
the application runs, and so forth. Java does fairly well at providing
the tools to write scalable applications... but the central issues in
scalability are at a much higher level than the programming language.
--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation