Bug #32707
Bad Bad FileBackend
Status: | Accepted | Start date: | 2011-12-19 | |
---|---|---|---|---|
Priority: | Must have | Due date: | ||
Assigned To: | Karsten Dambekalns | % Done: | 0% |
|
Category: | Cache | |||
Target version: | TYPO3 Flow Base Distribution - 2.0.1 | Estimated time: | 2.00 hours | |
PHP Version: | Complexity: | easy | ||
Has patch: | No | Affected Flow version: | Git 1.0 |
Description
The FileBackend is not working under middle to high load and also not working relyable on shared filesystems
The main reason is the set function:
- All fileoperations need to be atomic - so why is ->remove() called and after this the file is written to some temp file and then renamed.
=> It should work by just removing the ->remove call, the rename method will replace the existing entry.
Also the while (!rename($temporaryCacheEntryPathAndFilename, $cacheEntryPathAndFilename) && $i < 5) seems to be unnecessary - why is this done?
Other improvements might be to get rid of the extra cache meta data for expire time - maybe using filemtime is faster at the end (it avoids expensive file_get_contents two times)
Related issues
History
#1 Updated by Daniel Poetzinger over 3 years ago
the fixme mentioned in typo3 core might be also relevant
// @FIXME: At least the result of rename() should be handled here, report to FLOW3 could be fixed as well
#2 Updated by Karsten Dambekalns over 3 years ago
- Status changed from New to Accepted
- Assigned To set to Karsten Dambekalns
- Target version set to 1.1
#3 Updated by Karsten Dambekalns about 3 years ago
- Target version changed from 1.1 to 1.1 RC1
#4 Updated by Karsten Dambekalns about 3 years ago
- Target version changed from 1.1 RC1 to 2.0 beta 1
- Affected Flow version changed from Git master to Git 1.0
#5 Updated by Karsten Dambekalns over 2 years ago
- Target version changed from 2.0 beta 1 to 2.0
#6 Updated by Robert Lemke about 2 years ago
- Target version changed from 2.0 to 2.0.1