doOperationsInternal() already set "preserveCache" but never actually
filled it in to begin with. This should lower round trips if sync checks
are enabled.
Change-Id: Ica67b8d66e7602faed842408365edbd466688f61
Convenience aside, this lets multiwrite backends do async replication for
"store" operations safely, buy keeping a handle to the source file that
prevents it from getting prematurely deleted before the post-send writes
to the secondary backends can happen.
Bug: T91869
Change-Id: I1254de527c47835c35fed6e526b42953c1b2b2ca
The local temporary file might not live long enough to be
copied into storage during post-send.
Bug: T128124
Change-Id: Ifb5260958db008ec8b9f4db90f95a42e5ecaeadc
* This will defer writes to non-master backends till the
end up the web request. This is useful for multi-DC setups.
Bug: T112708
Change-Id: I118c07764dd4a4f4f2590d4548238df12860e750
* A backend with this set (normally 1) will be used for
non-latest reads. This can be used to prefer a local,
replicated, backend instead of one farther away (for
multi-DC setups)
* Note that listings still come from the master always.
Bug: T112708
Change-Id: Ic4bf4ba5a2c9ef78abd11dbd0d4b48c73cad6923
* Just return the ScopedLock itself without wrappig it in an array.
This also makes getScopedLocksForOps() actually return the correct
type according to the docs
Change-Id: Ic2d01d56c3fcb22af3adb5e5d4d1586d62316552
This might work in specific cases, depending on the string we're
quoting, but is never correct. The instance in SpecialAllMessages.php
was resulting in incorrect behavior (and log spam, T103879).
Searched for this regex: preg_quote\((?:\([^)]+?\)|[^,()])+?\)
Change-Id: Icc88775970f4927ddf953e5ad7c5c19d59491573
* The preloadFileStat() call acts as a good canary for whether all
affected servers are up. If anything failed in it, then it's not
worth bothering to send the actual write requests.
* Also made FileBackend::preloadFileStat abstract while at it since
the two subclasses implemented it and so should any others.
* Fixed a silly comment typo.
Change-Id: I5bd427f654aa4a9d6bfe4ed7566276e8ac520b30
* This adds a new preloadFileStat() method to FileBackend.
* FileBackend::doOperations() makes use of this instead of primeFileCache().
The later was mostly useless due to the 'latest' flag, which stat entries
rarely had (and since they use add(), 'latest' ones do not override the
non-'latest' ones).
* Simplified primeContainerCache/primeFileCache to no longer accept
FileOp objects and made sure nothing passes those in anymore.
Change-Id: Iee3878cadd69c3a594c701c0aff81aab5f473de5
* This can be useful for carrying over metadata when copying files around
* Also fixed a bug in sanitizeHdrs() for Swift (broken content-disposition)
Change-Id: I4534e9acac2b306086797b3677f85c05b98e39fc
Actually this messes with the implicit backend made for things like Math (when unconfigured), which uses the "new" operator.
This reverts commit 1f129a22cb.
Change-Id: I4c72c4f7c8b82e38df5496cf2b90fc9e19c40334
* Moved some of the graph construction work to FileBackendGroup.
This helps the code in not depending on the rest of MW so much.
* Updated tests and FileBackendMultiwrite, which are the only things
directly constructing FileBackend objects.
Change-Id: I188a053c70ce088ce34613d5db40e6708e3ea9b7
* getPathsToLockForOpsInternal() now returns an array in the format LockManager can use
* Also fixed getScopedLocksForOps() for multiwrite backend (it should accept proxy backend paths)
* Updated getScopedFileLocks() docs
Change-Id: Id0dc50c159c5fbc8fca10a9e46c5be23afcb3e9a
* Removed spaces around array index
* Removed double spaces or added spaces to begin or end of function
calls, method signature, conditions or foreachs
* Added braces to one-line ifs
* Changed multi line conditions to one line conditions
* Realigned some arrays
Change-Id: Ia04d2a99d663b07101013c2d53b3b2e872fd9cc3
* Beefed up unit tests for this case and other "ignoreMissingSource" cases
such as when the source container or parent directory do not exist.
Change-Id: Iea6dae2424edfd0c4367e5cff606c09a4e8a865b
Doxygen expects parameter types to come before the
parameter name in @param tags. Used a quick regex
to switch everything around where possible. This
only fixes cases where a primitve variable (or a
primitive followed by other types) is the variable
type. Other cases will need to be fixed manually.
Change-Id: Ic59fd20856eb0489d70f3469a56ebce0efb3db13
Added/removed spaces around logical/arithmetic operator
Reduced multiple empty lines to one empty line
Removed wrong tabs before comments at end of line
Removed too many spaces in assigments
Change-Id: I2bba4e72f9b5f88c53324d7b70e6042f1aad8f6b
* This can speed up certain video file operations for scripts that support
specifying source files via URLs and support HTTP Range headers.
* Updated unit tests.
Change-Id: I60cb95c2e3dd9f7df1f740e9182be7c79af69d6e