Merge "Made some FileBackendMultiWrite docs more accurate"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 21 Sep 2015 09:29:24 +0000 (09:29 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 21 Sep 2015 09:29:24 +0000 (09:29 +0000)
1  2 
includes/filebackend/FileBackendMultiWrite.php

   * Only use this class when transitioning from one storage system to another.
   *
   * Read operations are only done on the 'master' backend for consistency.
-  * Write operations are performed on all backends, in the order defined.
-  * If an operation fails on one backend it will be rolled back from the others.
+  * Write operations are performed on all backends, starting with the master.
+  * This makes a best-effort to have transactional semantics, but since requests
+  * may sometimes fail, the use of "autoResync" or background scripts to fix
+  * inconsistencies is important.
   *
   * @ingroup FileBackend
   * @since 1.19
   */
  class FileBackendMultiWrite extends FileBackend {
 -      /** @var array Prioritized list of FileBackendStore objects.
 -       * array of (backend index => backends)
 -       */
 +      /** @var FileBackendStore[] Prioritized list of FileBackendStore objects */
        protected $backends = array();
  
        /** @var int Index of master backend */
                );
  
                // Actually acquire the locks
 -              return array( $this->getScopedFileLocks( $pbPaths, 'mixed', $status ) );
 +              return $this->getScopedFileLocks( $pbPaths, 'mixed', $status );
        }
  }