MediaWiki master
|
Interface for database access objects. More...
Inherited by Wikimedia\Rdbms\DBAccessObjectUtils.
Public Attributes | |
const | READ_EXCLUSIVE = self::READ_LOCKING | 4 |
Read from the primary/quorum and lock out other writers and locking readers. | |
const | READ_LATEST = 1 |
Read from the primary/quorum. | |
const | READ_LATEST_IMMUTABLE = 8 |
Read from a replica DB or without a quorum, using the primary/quorum on miss. | |
const | READ_LOCKING = self::READ_LATEST | 2 |
Read from the primary/quorum and lock out other writers. | |
const | READ_NONE = -1 |
Convenience constant for tracking how data was loaded (higher => higher QoS) | |
const | READ_NORMAL = 0 |
Constants for object loading bitfield flags (higher => higher QoS) | |
Interface for database access objects.
Classes using this support a set of constants in a bitfield argument to their data loading functions. In general, objects should assume READ_NORMAL if no flags are explicitly given, though certain objects may assume READ_LATEST for common use case or legacy reasons.
There are four types of reads:
A special constant READ_LATEST_IMMUTABLE can be used for fetching append-only data. Such data is either (a) on a replica DB and up-to-date or (b) not yet there, but on the primary/quorum. Because the data is append-only, it can never be stale on a replica DB if present.
Callers should use READ_NORMAL (or pass in no flags) unless the read determines a write. In theory, such cases may require READ_LOCKING, though to avoid contention, READ_LATEST is often good enough. If UPDATE race condition checks are required on a row and expensive code must run after the row is fetched to determine the UPDATE, it may help to do something like:
Definition at line 59 of file IDBAccessObject.php.
const Wikimedia\Rdbms\IDBAccessObject::READ_EXCLUSIVE = self::READ_LOCKING | 4 |
Read from the primary/quorum and lock out other writers and locking readers.
Definition at line 71 of file IDBAccessObject.php.
Referenced by Wikimedia\Rdbms\DBAccessObjectUtils\getDBOptions(), and Wikimedia\Rdbms\SelectQueryBuilder\recency().
const Wikimedia\Rdbms\IDBAccessObject::READ_LATEST = 1 |
Read from the primary/quorum.
Definition at line 65 of file IDBAccessObject.php.
Referenced by Wikimedia\Rdbms\DBAccessObjectUtils\getDBOptions().
const Wikimedia\Rdbms\IDBAccessObject::READ_LATEST_IMMUTABLE = 8 |
Read from a replica DB or without a quorum, using the primary/quorum on miss.
Definition at line 74 of file IDBAccessObject.php.
Referenced by Wikimedia\Rdbms\DBAccessObjectUtils\getDBOptions().
const Wikimedia\Rdbms\IDBAccessObject::READ_LOCKING = self::READ_LATEST | 2 |
Read from the primary/quorum and lock out other writers.
Definition at line 68 of file IDBAccessObject.php.
Referenced by Wikimedia\Rdbms\DBAccessObjectUtils\getDBOptions(), and Wikimedia\Rdbms\SelectQueryBuilder\recency().
const Wikimedia\Rdbms\IDBAccessObject::READ_NONE = -1 |
Convenience constant for tracking how data was loaded (higher => higher QoS)
Definition at line 77 of file IDBAccessObject.php.
const Wikimedia\Rdbms\IDBAccessObject::READ_NORMAL = 0 |
Constants for object loading bitfield flags (higher => higher QoS)
Read from a replica DB/non-quorum
Definition at line 62 of file IDBAccessObject.php.