MediaWiki REL1_40
FileOpBatch Class Reference

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

Static Public Member Functions

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

Static Protected Member Functions

static runParallelBatches (array $pPerformOps, StatusValue $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 33 of file FileOpBatch.php.

Member Function Documentation

◆ attempt()

static FileOpBatch::attempt ( array $performOps,
array $opts )
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.
  • concurrency : Try to do this many operations in parallel when possible.

The resulting StatusValue will be "OK" unless:

  • a) unexpected operation errors occurred (network partitions, disk full...)
  • b) predicted operation errors occurred and 'force' was not set
Parameters
FileOp[]$performOpsList of FileOp operations
array$optsBatch operation options
Returns
StatusValue

Definition at line 54 of file FileOpBatch.php.

References FileOp\newDependencies(), FileOp\newPredicates(), and runParallelBatches().

Referenced by FileBackendStore\doOperationsInternal().

◆ runParallelBatches()

static FileOpBatch::runParallelBatches ( array $pPerformOps,
StatusValue $status )
staticprotected

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
FileOp[][]$pPerformOpsBatches of file ops (batches use original indexes)
StatusValue$status

Definition at line 127 of file FileOpBatch.php.

References StatusValue\merge().

Referenced by attempt().


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