User tests: Successful: Unsuccessful:
that has caused so much troubles in such a short time (and so many problems would have caused in future) #10767 #15544 #15558 #15592
The current implementation of file storage makes use of the shutdown function, but it doesn't work in case of software crashes, hardware failure, power blackout, and so on.
This happens because the caller expects a valid serialized data or null. It does not expect invalid data.
Unlikely to actually happen? For the “Infinite monkey theorem” it will almost surely happen and actually happened in past: https://forum.joomla.org/viewtopic.php?t=851183
Otherwise, if the file is bigger than the hard drive cache, the cache buffer gone corrupted and it causes unserialize error to the next process that will read the file (see above).
Quite scary, but no particular problem. It is behaves as case 1. Write followed by a concurrent Write
Quite scary, but no particular problem. It is behaves as case 4. Read followed by a concurrent Write
Deletion is atomic and does not suffer concurrency from Read or Write operations, so the cases Deletion followed by a concurrent Read | Write don’t exist.
Mimic a successful lock and unlock operations to keep compatibility with the previous interfaces, but this storage engine does not need lock / unlock methods
I have stressed my system with 100 concurrent requests a a time, and I got no errors.
At the moment, I've tested on Linux only. Windows and OSX should not reserve surprises, but It's better to do a test drive.
Status | New | ⇒ | Pending |
Category | ⇒ | Libraries |
Labels |
Added:
?
|
@brianteeman sure.
Category | Libraries | ⇒ | Libraries Unit Tests |
In general it is OK.
Changes in lock/unlock methods may have some B/C issue but I do not protest.
Option from cache locking
is useless now but is should not be any problem. It should be deprecated.
If this changes can go then other storages can be done in the same way and controllers/adapters can forget about lock/unlock
cache storages/handlers in get/store
methods.
I think this is the correct approach to the cache issue. We lock before writing and there is an extensive use of defensive coding.
Labels |
Added:
?
|
Similar to #15707
This PR is outdated and have to be updated to fit in to j3. J4 uses a legacy caching system which should be replaced with a 3rd party library compatible PSR-6 / PSR-16 package see https://github.com/joomla-framework/cache
If you are still interested to bring this to joomla we would be happy if you help us working on the new cache layer or if you like you can bring this PR in Sync for 3.10 but since the focus is J4 it would be better to help use with the caching layer.
thanks I'm closing this for now, feel free to reopen.
Status | Pending | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2022-03-15 13:48:53 |
Closed_By | ⇒ | HLeithner | |
Labels |
Added:
?
?
Removed: ? ? |
@demis-palma please look at the travis errors