Windows NT - Predictability vs Guarantee
Mission critical applications that are strictly dependent on time constraints are kind of the rarer variety on most Windows NT platforms deployed out there. But NT is aiming high at those markets. Many of today's business applications require high performance and scalability, but usually they are specified and implemented without any decent metric on software performance. Also there is no performance requirement or criteria that a program can request from the NT operating system to facilitate any such metric. The end result is systems that have "accepted" performance instead of any kind of guaranteed performance.
For example, it is not possible to request NT that an API must complete its execution within so many milliseconds or that a disk i/o request must provide so many bytes per second transfer rate, or that a network connection must provide so much transfer rate. But these are typical requirements of online high volume transactional systems that engage users in high numbers or with high volumes of critical and timely data. Usually the attempt to solve this problem is to "beef up" the system by adding more computers, processors, memory and disk, and do some optimizations on the software and any databases involved. This is what we may call as a predictable system. A system that is expected to work perhaps 90% of the time with possible performance problems 10% of the time. There are no guarantees here whatsoever.
For example, it is not possible to request NT that an API must complete its execution within so many milliseconds or that a disk i/o request must provide so many bytes per second transfer rate, or that a network connection must provide so much transfer rate. But these are typical requirements of online high volume transactional systems that engage users in high numbers or with high volumes of critical and timely data. Usually the attempt to solve this problem is to "beef up" the system by adding more computers, processors, memory and disk, and do some optimizations on the software and any databases involved. This is what we may call as a predictable system. A system that is expected to work perhaps 90% of the time with possible performance problems 10% of the time. There are no guarantees here whatsoever.




