MediaWiki  REL1_22
FileOpBatch Class Reference

Helper class for representing batch file operations. More...

List of all members.

Static Public Member Functions

static attempt (array $performOps, array $opts, FileJournal $journal)
 Attempt to perform a series of file operations.

Public Attributes

const MAX_BATCH_SIZE = 1000

Static Protected Member Functions

static runParallelBatches (array $pPerformOps, Status $status)
 Attempt a list of file operations sub-batches in series.

Detailed Description

Helper class for representing batch file operations.

Do not use this class from places outside FileBackend.

Methods should avoid throwing exceptions at all costs.

Since:
1.20

Definition at line 34 of file FileOpBatch.php.


Member Function Documentation

static FileOpBatch::attempt ( array performOps,
array opts,
FileJournal journal 
) [static]

Attempt to perform a series of file operations.

Callers are responsible for handling file locking.

$opts is an array of options, including:

  • force : Errors that would normally cause a rollback do not. The remaining operations are still attempted if any fail.
  • nonJournaled : Don't log this operation batch in the file journal.
  • concurrency : Try to do this many operations in parallel when possible.

The resulting Status will be "OK" unless:

  • a) unexpected operation errors occurred (network partitions, disk full...)
  • b) significant operation errors occurred and 'force' was not set
Parameters:
array$performOpsList of FileOp operations
array$optsBatch operation options
FileJournal$journalJournal to log operations to
Returns:
Status

Definition at line 57 of file FileOpBatch.php.

References $n, array(), as, empty, FileJournal\getTimestampedUUID(), FileJournal\logChangeBatch(), FileOp\newDependencies(), Status\newGood(), FileOp\newPredicates(), runParallelBatches(), wfProfileIn(), and wfProfileOut().

static FileOpBatch::runParallelBatches ( array pPerformOps,
Status status 
) [static, protected]

Attempt a list of file operations sub-batches in series.

The operations *in* each sub-batch will be done in parallel. The caller is responsible for making sure the operations within any given sub-batch do not depend on each other. This will abort remaining ops on failure.

Parameters:
Array$pPerformOps
Status$status
Returns:
bool Success

Definition at line 152 of file FileOpBatch.php.

References array(), as, and Status\merge().

Referenced by attempt().


Member Data Documentation

Definition at line 36 of file FileOpBatch.php.


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