Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Develop fast, scalable applications for server farms with distributed caching solution from ScaleOut Software

29 Jun 2009 1  
Server farm applications must consistently deliver fast response times, while performance has to scale seamlessly as the farm grows. Discover how to use ScaleOut StateServer’s intuitive and powerful features to give your applications blazing performance, while achieving your development goals.

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

ScaleOut StateServer

download_button.gif

stateServer149x112.jpgDeveloping fast, scalable applications for server farms can be a big challenge. Applications must consistently deliver fast response times, and performance has to scale seamlessly as the farm grows to handle ever increasing load. Developers have discovered that the key to reaching their performance goals is to use distributed caching. This keeps rapidly accessed, fast-changing data close to where it's needed and globally accessible across the farm. These characteristics both maximize performance and simplify design.

With its blazing performance, comprehensive development APIs, and self-managing features, ScaleOut StateServer provides the leading .NET distributing caching solution available today. ScaleOut State Server delivers fast access times that outperform all "out of process" storage alternatives, and its throughput scales without bottleneck to handle the largest application loads. Its tightly integrated, self-managing architecture makes it easy to use and lets you keep your focus on application development.

The following paragraphs explain what ScaleOut StateServer does and how it can help you reach your performance and availability goals.

Scalable, In-Memory, Distributed Caching

ScaleOut StateServer runs as a distributed, software service on every Web or application server in your server farm to cache data objects in memory and make them globally accessible across the farm using an identifying 256-bit key. These data objects contain serialized program data, such as ASP.NET session data, business logic objects, and datasets. Stored objects can be accessed from any server in the farm.

serverfarm.gif

Once installed, ScaleOut StateServer automatically balances the amount of storage used by each server in the farm, adjusting the relative usage by each server to the amount you require. As new servers running ScaleOut StateServer are added to the Web farm, they automatically expand its storage capacity and performance.

ScaleOut StateServer scales throughput and maintains fast response times by partitioning and dynamically load-balancing cached data across the servers within a farm. This scales storage capacity as the farm grows and enables simultaneous access to multiple data objects stored on different servers. When a new server is added to the farm, ScaleOut StateServer automatically integrates the server into the store and migrates a portion of the distributed cache to it, dynamically adjusting the amount of data that is stored and managed by each server in the farm.

partitions.gif

Breakthrough Performance

ScaleOut StateServer's scalable, distributed cache delivers the fastest possible access time of all "out of process" solutions, including database servers and stand-alone caching servers. Performance tests have shown that ScaleOut StateServer quickly outpaces its competitors in repeatedly accessing stored data.

What really sets ScaleOut StateServer apart from its competitors is its ability to scale both its storage capacity and throughput as your server farm grows. As server farms grow to handle additional load, they need to avoid bottlenecks that limit scalability. ScaleOut StateServer is designed from the inside out to scale every aspect of its performance. Tests confirm that its throughput linearly scales to keep access times low as servers are added to the farm. This lets your server farm deliver the highest possible performance while simultaneously keeping unnecessary access loads off of your database server.

Patent-Pending Technology for High Availability

High availability of cached data is essential for mission-critical applications. ScaleOut StateServer ensures that cached data is never lost - even if a server in your farm fails - by replicating all cached objects on up to two additional servers. If a server goes offline or loses network connectivity, ScaleOut StateServer automatically retrieves its session objects from replicas stored on other servers in the farm, and it creates new replicas as necessary to maintain redundant storage. To avoid the "split brain" problems of traditional master/slave replication schemes, ScaleOut StateServer employs patent-pending technology which guarantees that replicated objects always have the latest updates.

replication.gif

ScaleOut StateServer also uses a patent-pending, scalable heartbeat protocol that quickly and efficiently detects server failures without flooding your network with multicast heartbeat packets. Heartbeat failures automatically trigger ScaleOut StateServer's "self-healing" technology, which quickly restores access to cache partitions and dynamically rebalances the storage load across the farm.

To simplify application development and keep management costs low, ScaleOut StateServer automatically handles all aspects of data replication and recovery. Its intelligent replication architecture is specifically designed to maintain high performance and scalable storage as your server farm grows. Internal caching of recently accessed data objects on each server keeps data close to the application and avoids the need for you to choose replication schemes. ScaleOut StateServer lets you keep your focus on application development and not on the details of distributed caching.

Simplified Management

ScaleOut StateServer's self-managing features make installation quick and keep your management costs low. Servers automatically join together to form or expand a "farm-wide" store. ScaleOut StateServer automatically balances its storage workload and employs internal caching to maintain high performance, and it automatically recovers and "self-heals" after a server fails. Application programs can uniformly access and update any stored data object from all servers in the store.

You can manage ScaleOut StateServer from any server in the farm or from a remotely connected workstation using its easy to use GUI console or a command line control program. These management tools give you complete control over ScaleOut StateServer operations, notify you of failures and configuration changes, and ensure close coordination with your Web load balancer.

console_host_config9.gif

The command-line program provides all of the capabilities of the management console with individual commands that can be run from a command prompt or incorporated into command-line scripts.

Comprehensive APIs

.NET and C/C++ applications can directly access ScaleOut StateServer's distributed cache using comprehensive application programming interfaces (APIs) supplied with the product. The .NET APIs support all .NET languages, including C#, C++, and Visual Basic. Additional APIs support stand-alone ("unmanaged code") C/C++ applications.

ScaleOut StateServer's APIs provide simple, straightforward access to the distributed store to:

  • store serialized data objects identified by a 256-bit key,
  • read previously stored data objects,
  • update previously stored data objects, and
  • remove data objects from the store.

ScaleOut StateServer incorporates extensive and flexible caching features that give you the flexibility you need to build powerful server farm applications, including:

  • distributed object locking that synchronizes access by multiple servers,
  • optional object expiration after sliding or fixed timeouts, LRU memory reclamation, or object dependency changes,
  • asynchronous events to signal object expiration,
  • optional, automatic replication to a remote cache using the ScaleOut GeoServer option, and
  • optional, "in process" caching of recently accessed, deserialized data.

ScaleOut StateServer takes full advantage of its built-in scalability and high availability to automatically distribute the event handling load across the server farm and to ensure that asynchronous events are always delivered even if a server or network outage occurs.

Summary

Server farm applications have the potential to deliver the performance and scalability required to handle fast-growing, mission-critical workloads. ScaleOut StateServer's distributed caching lets you unlock this potential by always keeping fast-changing data where it's needed by your application. ScaleOut StateServer can give your application a big performance boost while carefully protecting your cached data. Perhaps best of all, ScaleOut StateServer makes distributed caching easy to use and straightforward to manage.

If your application only uses ASP.NET session-state and does not require ScaleOut StateServer's comprehensive APIs, consider starting with ScaleOut SessionServer and later upgrading to ScaleOut StateServer as your needs evolve.

Download today and try out distributed caching for yourself!

download_button.gif

Read the ScaleOut Whitepaper “Scaling Web Applications on Server-Farms Requires Distributed Caching

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here