Wednesday, September 15, 2004

On Scalability

(1)Most of the people in the industry consider scalability as two issues: the first, when users or clients (load) increase in a pre-defined range, the increasing of users or clients does not lead to proportional increasing in consummation of system resources. Some call this vertical scalability. The second, a mechanism that prevents degradation of system performance below the specification requirements when users or clients increase.

(2)At the business application development level, vertical scalability is simplified to a cache problem; but middleware design also considers other solutions. For example, simple thread pool is usually used in the server side to serve client requests in the client/server pradagm, but certain activator pattern implemented with callback mechanism or others are believed to be more scalable.

(3)Horizontal scalability is usually simplified to a load balance problem in application development. The solution is clustering; but high availability is generally not regarded as a scalability issue; as the name says, it is to address the availability concern, which is at the same level as scalability for enterprise software.

(4)On the cache side, prominent solutions in the market include OSCache, Tangosol, WebSphere Dynamic Cache, JBoss Cache and SpiritCache. All of them implement more or less the same basic features, and the important differentiation factors are (4.1) how well it supports a clustering deployment; and (4.2) in a multitiers system, where the cache mechanism can be applied.

(5)For load balance, middleware load balance is important, but when scalability is concerned, OS, EIS and Storage System etc.. should all be taken into consideration because solution bottlenecks are not necessarily middleware components. End to end clustering management is where vendors working on utility computing make their businesses.

0 Comments:

Post a Comment

<< Home