rdbms: update IDatabase::getLag comments
authorAaron Schulz <aschulz@wikimedia.org>
Thu, 29 Mar 2018 23:14:37 +0000 (16:14 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Thu, 29 Mar 2018 23:14:37 +0000 (16:14 -0700)
Also add missing __METHOD__ to getLagFromPtHeartbeat()

Change-Id: I4257b1d47a88779b47d807a881561c331ff3aa30

includes/libs/rdbms/database/DatabaseMysqlBase.php
includes/libs/rdbms/database/IDatabase.php

index 286d658..315c9eb 100644 (file)
@@ -749,6 +749,7 @@ abstract class DatabaseMysqlBase extends Database {
        protected function getLagFromSlaveStatus() {
                $res = $this->query( 'SHOW SLAVE STATUS', __METHOD__ );
                $row = $res ? $res->fetchObject() : false;
+               // If the server is not replicating, there will be no row
                if ( $row && strval( $row->Seconds_Behind_Master ) !== '' ) {
                        return intval( $row->Seconds_Behind_Master );
                }
@@ -856,7 +857,8 @@ abstract class DatabaseMysqlBase extends Database {
                        // Note: this would use "TIMESTAMPDIFF(MICROSECOND,ts,UTC_TIMESTAMP(6))" but the
                        // percision field is not supported in MySQL <= 5.5.
                        $res = $this->query(
-                               "SELECT ts FROM heartbeat.heartbeat WHERE $whereSQL ORDER BY ts DESC LIMIT 1"
+                               "SELECT ts FROM heartbeat.heartbeat WHERE $whereSQL ORDER BY ts DESC LIMIT 1",
+                               __METHOD__
                        );
                        $row = $res ? $res->fetchObject() : false;
                } finally {
index 07f1e23..545c8e3 100644 (file)
@@ -1752,11 +1752,9 @@ interface IDatabase {
        public function ping( &$rtt = null );
 
        /**
-        * Get replica DB lag. Currently supported only by MySQL.
+        * Get the amount of replication lag for this database server
         *
-        * Note that this function will generate a fatal error on many
-        * installations. Most callers should use LoadBalancer::safeGetLag()
-        * instead.
+        * Callers should avoid using this method while a transaction is active
         *
         * @return int|bool Database replication lag in seconds or false on error
         * @throws DBError