MediaWiki  REL1_22
IDBAccessObject Interface Reference

Interface for database access objects. More...

Inheritance diagram for IDBAccessObject:

List of all members.

Public Attributes

const READ_LATEST = 1
const READ_LOCKING = 3
const READ_NONE = -1
const READ_NORMAL = 0

Detailed Description

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 three types of reads:

  • READ_NORMAL : Potentially cached read of data (e.g. from a slave or stale replica)
  • READ_LATEST : Up-to-date read as of transaction start (e.g. from master or a quorum read)
  • READ_LOCKING : Up-to-date read as of now, that locks the records for the transaction

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:

  • a) Read the current row
  • b) Determine the new row (expensive, so we don't want to hold locks now)
  • c) Re-read the current row with READ_LOCKING; if it changed then bail out
  • d) otherwise, do the updates
Since:
1.20

Definition at line 47 of file IDBAccessObject.php.


Member Data Documentation

Definition at line 50 of file IDBAccessObject.php.

Referenced by Title\moveToInternal().

Definition at line 56 of file IDBAccessObject.php.


The documentation for this interface was generated from the following file: