Performance
Fast Response Time and Scalability
Relational database servers (DBMS's) have proven their value as the repository for essential line of business data, such as inventory, purchase orders, and billing records. However, mission-critical applications, running on server farms and compute grids, often use a DBMS to hold mission-critical but relatively short lived data, such as Web session state, e-commerce shopping carts, and cached application data. This creates significant additional traffic to the DBMS (with a much larger proportion of writes for which the DBMS was not optimized), and it delays responses to client applications.
To eliminate this performance bottleneck, ScaleOut StateServer (SOSS) provides a memory-based distributed data grid that is hosted directly on a server farm or HPC compute grid. It also can be hosted on a cluster of dedicated data-grid servers networked to a farm or compute grid running client applications. SOSS's fast, in-memory storage dramatically reduces response times for repeatedly accessing grid-based data in comparison to database access, and its access throughput linearly scales as servers are added to the farm. These performance characteristics enable SOSS to maintain very fast and predictable response times even under very high access loads, while simultaneously offloading the database server.
Fast Response Time
ScaleOut StateServer incorporates several internal mechanisms that automatically accelerate access requests and minimize response times. ScaleOut StateServer can deliver read access times that are very close to the performance of an "in process" store and significantly better than access times for other "out of process" stores, such as database servers. For example, the chart below shows SOSS's average read access time (in msec.) for multiple reads to a 10KB grid object. This chart shows that SOSS reduces the average read access time six-fold in comparison to the use of a database server.

To help achieve these fast response times, SOSS transparently employs multiple, internal caches that automatically accelerate accesses to cached objects. These internal caches include:
- a client-side ("near") cache of references to recently accessed, deserialized data objects, which is maintained by the SOSS API client libraries in each application process, and
- a server cache of recently accessed, serialized objects maintained by the SOSS service on each server in the farm or grid.
These caches are tightly integrated and kept fully coherent with SOSS's highly optimized, in-memory, distributed data grid to ensure much lower access times than other storage alternatives while enabling global accessibility across the farm to all stored data.
Scalable Throughput
To maintain very fast response times under heavy workloads, ScaleOut StateServer automatically scales its throughput to handle additional client load as servers are added to the user's server farm or HPC compute grid. This keeps response times from growing due to access bottlenecks as the workload grows. In contrast, storage solutions with fixed throughput, such as database servers, experience rapidly increasing response times as their maximum throughput is reached.
To illustrate the advantages of ScaleOut StateServer's scalable throughput, two scalability tests were performed. In the first test, the access throughput of SOSS's distributed data grid was compared to the throughput of a relational database server as access load was proportionally scaled by adding servers to an application server farm; the distributed data grid was hosted on this server farm. To maximize stress on the distributed data grid, each application server sequentially performed continuous read/update access requests to 20,000 1K byte objects. (These objects could represent concurrent users accessing a Web server farm and maintaining Web sessions.) The average time to complete a read and update was recorded while servers were added to the farm until 28 servers with a total of 560K objects were in use. For comparison purposes, response times also were measured for the same read/update operations on a database server in which the objects likewise were stored.
The chart below shows that SOSS's average response time (shown as the blue bars) remained flat as application servers were added to the farm to scale the storage and access workload. This demonstrates the benefit of the distributed data grid's scalable throughput, which increased linearly as the server farm grew from 3 to 28 servers. In contrast, the database server exhibited a non-linear increase in response times (the red bars) as the object count and access load increased. The database server was almost 20X slower than SOSS's distributed data grid under the maximum load of 28 servers and 560K objects.

The second test confirmed ScaleOut StateServer's linear scalability under very high load on a large computational grid. This grid consisted of 64 HP four-way multiprocessor blades and a high speed 20Gbits/second Infiniband network. Each server in the grid hosted 4,000 10KB objects and performed continuous read/update access tests as servers were added to the grid and the the load was proportionately increased. The aggregate access throughput was measured to confirm linear scalability and the absence of sequential bottlenecks. The total data size stored in the distributed cache on 64 servers reached approximately 2.5GB. Note that SOSS's automatic data partitioning and dynamic load balancing mechanisms allows servers to be added to the grid without the need for any configuration changes by the user.
As illustrated in the graph below, this test demonstrated that SOSS's access throughput grows linearly as servers and access load are increased. This shows that the distributed data grid delivers maximum scalability in both its throughput and storage capacity, which enables applications to enjoy the fastest possible access times for very large, access-intensive computations.

Parallel Query and Analysis
ScaleOut StateServer Grid Computing Edition takes scalable performance to the next level by enabling fast, parallel query and analysis of data hosted in the distributed data grid. This capability lets developers easily examine and analyze large volumes of data and quickly merge results into a final report. To illustrate the power of this unique capability, a real-world financial analysis application was constructed to compare various stock trading strategies on historical market data stored in ScaleOut StateServer's distributed data grid. This application made use of SOSS's "parallel method invocation" mechanism to automatically execute an analysis task across all grid servers and merge the results. Scalability measurements were performed on 32 HP four-way multiprocessor blades using a high speed 20Gbits/second Infiniband network. As the following graph illustrates, SOSS delivered linearly scalable throughput on this application (shown as the blue line in the graph) as the problem size (number of stocks examined) and the number of grid servers was increased. This high performance and linear scalability results from SOSS's ability to automatically distribute the analysis workload among the grid servers and avoid unnecessary data motion. In comparison, an alternative implementation of this application which manually split the analysis tasks among the grid servers and randomly access the stock data demonstrated significantly lower performance (shown as the red line) and high network usage.

Summary
ScaleOut StateServer's combination of fast response time and scalable throughput delivers the industry's highest performance distributed caching for server farms. SOSS makes it easy for application developers to tap its full performance by incorporating advanced capabilities that automatically manage the distributed cache and always keep cached data where it's needed. Now developers finally have a powerful solution for offloading database servers and accelerating application performance and scalability.
