Scalability
From XOMBO Documentation
Contents |
Introduction
This document outlines the scalability features of XOMBO Platform. The following sections describe ways to increase the capacity of your implementation.
HTTP Accelerator
An HTTP Accelerator caches frequently requested files and pages. XOMBO Platform is designed to work with one or more Squid HTTP Accelerators without any additional configuration restraints. To improve the delivery speed of frequently requested files and static content, you can add additional Squid servers.
Database Replication
If you are experiencing slow-downs related to large and frequent database requests, you may consider configuring a replicated database. Replicated databases allow READ/SELECT commands to be spread across multiple servers. Write commands are pushed to a single "replicated" or "master" database, which eventually get pushed out to the other servers. This solution will improve request times, but will marginally slow down INSERT/UPDATE requests due to the replication delay.
File ./model/dbconn.class.php ★ SVN http://svn.xombo.org/svn/platform/current/trunk/model/dbconn.class.php API DOCS
Memcache Servers
An easy way to improve the request speed when populating large sets of objects is to implement a Memcache server. Memcache stores commonly used objects in RAM for subsequent retrieval. Instead of pulling records from the database server's hard drive(s), the objects will be quickly pulled from RAM. You can define an array of Memcache servers, which spreads the load and memory requirements across multiple machines. This solution is recommended for users whose sites serve up many similar objects and have RAM on their servers that isn't fully utilized. While Memcache will improve the speed at which a particular object loads, it does not improve SELECT speeds--where the database is pulling multiple records from the database based on a criteria. Complicated or frequent SELECT requests will be best improved by implementing a replicated database (above). While load times will be marginally improved even during a large SELECT request by implementing Memcache, the database engine is still employed to execute the query and return the object ID(s) to load.
File ./model/memcacheconn.class.php ★ SVN http://svn.xombo.org/svn/platform/current/trunk/model/memcacheconn.class.php API DOCS
Future Plans
The development road-map includes improving existing scaling support for the following speed optimizations:
- Grouping requests by object type to specific "slave" database servers so each server can keep the appropriate tables cached with minimal swapping.
- Detect when database or Memcache servers go down so requests are routed appropriately.

