rdbms: ignore DBO_NOBUFFER flag in IDatabase
authorAaron Schulz <aschulz@wikimedia.org>
Thu, 15 Aug 2019 14:58:54 +0000 (10:58 -0400)
committerAaron Schulz <aschulz@wikimedia.org>
Thu, 15 Aug 2019 15:05:06 +0000 (11:05 -0400)
commit02934ef5037a3425f677e6942be066bf645160a6
treed59ca6d203257326099d535fafb3959e59037e6d
parent5fdb43cd3bda6fc54e5828f3bd74207638f0ccd1
rdbms: ignore DBO_NOBUFFER flag in IDatabase

Callers should use query batching instead. Without buffering, either
the RAM burden is shifted onto the RDBMS server (with MVCC vacuuming
also being stalled) or the RDBMS server has to keep adding locks as
the cursor advances. Also, if a caller does not read all the results
(possibly due to an exception), then the SQL commands sent/read get
out of sync, which is too fragile.

There are no DBO_NOBUFFER callers in WMF gerrit repos.

Change-Id: I3712149633d0f01bb6990e324e53dd58abba9cfd
includes/libs/rdbms/database/Database.php
includes/libs/rdbms/database/DatabaseMysqli.php
includes/libs/rdbms/database/IDatabase.php