Microsoft Windows Now Scales Up and Out with a Vengeance
The latest versions of Windows allow for far greater scalability. Here's why.
There are basically three ways to improve the compute performance of an IT platform:
- Increase the clock speed of the processor.
- Increase the number of processors--"scale up."
- Increase the number of computers (processor/s + memory pairs)--"scale out."
The above, of course, assumes that there is sufficient memory (RAM) to keep the processor/s busy, and sufficient I/O bandwidth to keep memory full. The former is the reason that the next release of Windows Server (Windows Server 2008 R2) will be available only in 64-bit versions.
As we discussed in an earlier posting (A Subtle Change to Microsoft Server Pricing), increasing clock speed is no longer a practical possibility, because doing so requires too much power and generates too much heat.
Processor manufacturers have responded to this limitation by increasing the number of processors that fit on a processor chip (scaling up), and this is a trend that will continue. Hardware system manufacturers have responded by increasing the number of processor chips (CPU packages) that can be plugged into a system (scaling up). This is relatively cheap to achieve when only a small number (2-4) of processor chips plug directly into a motherboard, but becomes much more expensive once a larger number of processor chips need to be supported.
Unfortunately, figuring out how to support a large number of processors at the hardware level and preventing contention for memory (RAM) from massively degrading performance deals with only part of the problem. Unless the OS can keep a large number of threads active, the expense of assembling systems with a large number of processors would be wasted. Historically, OSs have had difficulty doing this, largely because of their need to sequentialize access to data structures. It is often the case that a large number of processors are idle while waiting to access a dispatcher (thread to processor binder) data structure.
In Windows Server 2008 R2, Microsoft has achieved a major breakthrough: It has developed a lock-less dispatcher. This does not at a stroke eliminate lock contention (for example, to a database record, etc.), but it does mean that contention will not now occur at the most basic level of the OS. It is for this reason that we feel comfortable stating that Microsoft Windows Server 2008 R2 will "scale up" with a vengeance.
If systems can "scale up," why bother to "scale out"? The answer is cost. A "scaled out" cluster of inexpensive computers is much, much cheaper than a single massively (>16 processors) "scaled up" system. What is more, systems can "scale out" from a hardware standpoint, effectively without limit, while "scale up" hardware is always restricted in the maximum number processors that a particular configuration can support. So what's the catch?
The answer is software. In general, applications can only be "scaled out" when they can be broken up into an unlimited number of instances that run without interaction with each other--a so-called "shared nothing" application. A good example is an application that serves up Web content, either static or dynamic. Another, rather surprising application, is an Oracle database cluster. Neither Microsoft's SQL Server nor IBM's DB2 (UDB variant) are "shared nothing" systems, and are therefore, not amenable to "scaled out" deployment.
... Nick Shelness
Below are various active gossip threads on current events in the industry. To contribute information, follow the appropriate link or see our Gossip page for other vendor threads.