====== ADOdb Load Balancer ====== **This feature is available from ADOdb version 5.21 onwards** ===== Introduction ===== **//ADOdb Load Balancer//** is a standalone code library that can be integrated into an existing ADOdb code base, and provides the ability to automatically, or manually, force read/write and read-only code segments to run on specific servers. It is currently only available for **MySQL** or **Postgres** database systems. In it's default configuration: * A Primary server is designated to run all read-write code within a transaction * A Secondary server is designated to run all other read requests This allows a simple replication system, for example the [[|MySQL replication service]], to emulate a cluster configuration, and enhance the performance of the main server by delegating resource-intensive queries to a secondary server. Note that the feature does not delegate the execution of the PHP code, only the execution of the SQL statement on the server. More complex configurations can be made, including features such as manual assignation of target servers as well as transactional assignation of servers and multiple primaries with a randomized connection pool when used in a cluster configuration. The Load Balancer works by intercepting the requests made through ADOdb methods, such as [[v5:reference:connection:execute|execute()]] and [[v5:reference:connection:getassoc|getAssoc()]], and based on the method and/or the SQL statement to be executed, assigning the execution of the statement to the appropriate server. ===== More Information ===== [[v5:loadbalancer:reference|Reference Documentation]] ===== Tutorials ===== [[v5:loadbalancer:mysql_replication:introduction|Basic MySql Implementation]] Implementing ADOdb Load Balancer against a MySql 2 server replication system --------------------------