X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Flibs%2Frdbms%2Floadbalancer%2FILoadBalancer.php;h=8210507a14e21dea5f414beafe847d43574c44c8;hb=c1aa9450ad49fd5f17d73c41077e96294c1b9eac;hp=7bbb5307300d0edc3c7e700e87ed691548902db7;hpb=4b2f95bed5a9ae0a917264abed2ba1fd9fb78f3c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/libs/rdbms/loadbalancer/ILoadBalancer.php b/includes/libs/rdbms/loadbalancer/ILoadBalancer.php index 7bbb530730..8210507a14 100644 --- a/includes/libs/rdbms/loadbalancer/ILoadBalancer.php +++ b/includes/libs/rdbms/loadbalancer/ILoadBalancer.php @@ -172,7 +172,9 @@ interface ILoadBalancer { /** * Get a connection handle by server index * - * Avoid using CONN_TRX_AUTO with sqlite (e.g. check getServerType() first) + * The CONN_TRX_AUTO flag is ignored for databases with ATTR_DB_LEVEL_LOCKING + * (e.g. sqlite) in order to avoid deadlocks. ILoadBalancer::getServerAttributes() + * can be used to check such flags beforehand. * * If the caller uses $domain or sets CONN_TRX_AUTO in $flags, then it must also * call ILoadBalancer::reuseConnection() on the handle when finished using it. @@ -206,7 +208,9 @@ interface ILoadBalancer { * * The handle's methods simply wrap those of a Database handle * - * Avoid using CONN_TRX_AUTO with sqlite (e.g. check getServerType() first) + * The CONN_TRX_AUTO flag is ignored for databases with ATTR_DB_LEVEL_LOCKING + * (e.g. sqlite) in order to avoid deadlocks. ILoadBalancer::getServerAttributes() + * can be used to check such flags beforehand. * * @see ILoadBalancer::getConnection() for parameter information * @@ -223,7 +227,9 @@ interface ILoadBalancer { * * The handle's methods simply wrap those of a Database handle * - * Avoid using CONN_TRX_AUTO with sqlite (e.g. check getServerType() first) + * The CONN_TRX_AUTO flag is ignored for databases with ATTR_DB_LEVEL_LOCKING + * (e.g. sqlite) in order to avoid deadlocks. ILoadBalancer::getServerAttributes() + * can be used to check such flags beforehand. * * @see ILoadBalancer::getConnection() for parameter information * @@ -240,7 +246,9 @@ interface ILoadBalancer { * * The handle's methods simply wrap those of a Database handle * - * Avoid using CONN_TRX_AUTO with sqlite (e.g. check getServerType() first) + * The CONN_TRX_AUTO flag is ignored for databases with ATTR_DB_LEVEL_LOCKING + * (e.g. sqlite) in order to avoid deadlocks. ILoadBalancer::getServerAttributes() + * can be used to check such flags beforehand. * * @see ILoadBalancer::getConnection() for parameter information * @@ -258,7 +266,9 @@ interface ILoadBalancer { * The index must be an actual index into the array. If a connection to the server is * already open and not considered an "in use" foreign connection, this simply returns it. * - * Avoid using CONN_TRX_AUTO with sqlite (e.g. check getServerType() first) + * Avoid using CONN_TRX_AUTO for databases with ATTR_DB_LEVEL_LOCKING (e.g. sqlite) in + * order to avoid deadlocks. ILoadBalancer::getServerAttributes() can be used to check + * such flags beforehand. * * If the caller uses $domain or sets CONN_TRX_AUTO in $flags, then it must also * call ILoadBalancer::reuseConnection() on the handle when finished using it. @@ -319,6 +329,13 @@ interface ILoadBalancer { */ public function getServerType( $i ); + /** + * @param int $i Server index + * @return array (Database::ATTRIBUTE_* constant => value) for all such constants + * @since 1.31 + */ + public function getServerAttributes( $i ); + /** * Get the current master position for chronology control purposes * @return DBMasterPos|bool Returns false if not applicable