mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 14:03:52 +01:00
113 lines
7.1 KiB
Plaintext
113 lines
7.1 KiB
Plaintext
This files describes API changes in /cache/stores/* - cache store plugins.
|
|
Information provided here is intended especially for developers.
|
|
=== 4.2 ===
|
|
* The memcached cachestore has been removed.
|
|
|
|
=== 4.1 ===
|
|
* Added new `requirelockingbeforewrite` option for cache definitions. This will check that a lock for a given cache key already
|
|
exists before it will perform a `set()` on that key. A `coding_exception` is thrown if the lock has not been acquired.
|
|
* Added native locking to cachestore_file. This will use an instance of file_lock_factory pointing at a subdirectory in the same
|
|
location as the cache instance, meaning a local file cache will have its locks stored locally. If file locks are disabled
|
|
globally, it will fall back to use the default lock factory, which may not be in the same location as the cache. cachestore_file
|
|
includes an additional setting to control how long it will wait for a lock before giving up, default is 60 seconds.
|
|
|
|
=== 4.0 ===
|
|
* Cache stores may implement new optional function cache_store::get_last_io_bytes() to provide
|
|
information about the size of data transferred (shown in footer if performance info enabled).
|
|
* The cache_store class now has functions cache_size_details(), store_total_size(), and
|
|
estimate_stored_size(), related to size used by the cache. These can be overridden by a cache
|
|
store to provide better information for the new cache usage admin page.
|
|
* New functions cache::set_versioned() and cache::get_versioned() can be used to ensure correct
|
|
behaviour when using a multi-level cache with early cache levels stored locally. (Used when
|
|
rebuilding modinfo.) There is also a new interface cache_data_source_versionable which can
|
|
be implemented if you want to make a data source that supports versioning.
|
|
|
|
=== 3.10 ===
|
|
* The function supports_recursion() from the lock_factory interface has been deprecated including the related implementations.
|
|
* The function extend_lock() from the lock_factory interface has been deprecated without replacement including the related
|
|
implementations.
|
|
* The function extend() from the lock class has been deprecated without replacement.
|
|
* The cache_factory class can now be overridden by an alternative cache config class, which can
|
|
also now control the frontend display of the cache/admin.php page (see MDL-41492).
|
|
|
|
=== 3.9 ===
|
|
* The record_cache_hit/miss/set methods now take a cache_store instead of a cache_definition object
|
|
|
|
=== 3.8 ===
|
|
* The Redis cache store can now make use of the Zstandard compression algorithm (see MDL-66428).
|
|
|
|
=== 3.7 ===
|
|
* Upgraded MongoDB cache store to use the new lower level PHP-driver and MongoDB PHP Library.
|
|
* The mongodb extension has replaced the old mongo extension. The mongodb pecl extension >= 1.5 must be installed to use MongoDB
|
|
cache store.
|
|
|
|
=== 3.6 ===
|
|
* The `cache::now()` function now takes an optional boolean parameter to indicate that the cache should return a more
|
|
accurate time, generated by the PHP `microtime` function.
|
|
* The memcache store was removed as it is not compatible with PHP 7.0.
|
|
|
|
=== 3.3 ===
|
|
* Identifiers and invalidation events have been explictly been marked as incompatible and will
|
|
throw a coding exception. Unexpected results would have occurred if the previous behaviour was attempted.
|
|
* Identifiers are now part of loaded caches, so identifiers can only be set at cache::make()
|
|
a coding_exception will be thrown if attempts are made at other times.
|
|
Multiple calls to cache::make with different identifiers will produce 2 caches instead of changing the
|
|
keyspace of a single cache.
|
|
|
|
=== 3.2 ===
|
|
* The following methods have been finally deprecated and should no longer be used.
|
|
- cache_definition::should_be_persistent()
|
|
- cache_definition::get_persistent_max_size()
|
|
- cache::is_using_persist_cache()
|
|
- cache::is_in_persist_cache()
|
|
- cache::get_from_persist_cache()
|
|
- cache::set_in_persist_cache()
|
|
- cache::delete_from_persist_cache()
|
|
- cache_store::cleanup()
|
|
* cachestore_dummy::cleanup() has been deprecated.
|
|
* cachestore_dummy::instance_deleted() implemented in lieu of cachestore_dummy::cleanup().
|
|
* Added cache_store::unit_test_configuration() to calculate unit testing configuration.
|
|
* Remove cache_store:initialise_unit_test_instance() as it is incompatible with cache_helper purge functions.
|
|
|
|
=== 3.1 ===
|
|
* Cache stores has a new feature DEREFERENCES_OBJECTS.
|
|
This allows the cache loader to decide if it needs to handle dereferencing or whether the data
|
|
coming directly to it has already had references resolved.
|
|
- see supports_dereferencing_objects in store.php.
|
|
|
|
=== 2.9 ===
|
|
* Cache data source aggregation functionality has been removed. This functionality was found to be broken and unused.
|
|
It was decided that rather than fixing it it should be removed.
|
|
As well as the processing code being removed the following API changes have been made.
|
|
The following changes have come about because of it:
|
|
- cache_definition::$datasourceaggregate is deprecated an unused.
|
|
- cache_definition::load Argument 3 (final arg) is now unused.
|
|
- cache_factory::create_cache_from_definition Argument 4 (final arg) is now unused.
|
|
- cache::make Argument 4 (final arg) is now unused.
|
|
* cache_config_phpunittest has been renamed to cache_config_testing
|
|
* New method cache_store::ready_to_be_used_for_testing() that returns true|false if the store is suitable and ready for use as the primary store during unit and acceptance tests.
|
|
* cache_helper::get_stats structure we changed to include the cache mode.
|
|
|
|
=== 2.7 ===
|
|
* cache_store::is_ready is no longer abstract, calling cache_store::are_requirements_met by default.
|
|
|
|
=== 2.6 ===
|
|
* All cache instances are recorded and subsequent requests are given a reference to the original instance.
|
|
* The persistent option for the cache definition has been deprecated. Please use the staticacceleration option instead.
|
|
* There is a new static acceleration option. If enabled data passing through the cache is held onto.
|
|
* The persistentmaxsize option has been renamed to staticaccelerationsize. It does the same thing.
|
|
* cache_definition::should_be_persistent has been deprecated. Please call cache_definition::use_static_acceleration instead.
|
|
* cache_definition::get_persistent_max_size has been deprecated. Please call cache_definition::get_static_acceleration_size instead.
|
|
* cache::is_using_persist_cache() has been deprecated. Please call cache::use_static_acceleration()
|
|
* cache::is_in_persist_cache() has been deprecated. Please call cache::static_acceleration_has()
|
|
* cache::get_from_persist_cache() has been deprecated. Please call cache::static_acceleration_get()
|
|
* cache::set_in_persist_cache() has been deprecated. Please call cache::static_acceleration_set()
|
|
* cache::delete_from_persist_cache() has been deprecated. Please call cache::static_acceleration_delete()
|
|
* If you have any custom cache loaders you will need to rename these methods if you have overriden them and adjust any calls you may have made to them.
|
|
|
|
=== 2.5 ===
|
|
* cleanup method renamed to instance_deleted.
|
|
It is now called when the store is deleted as all comments suggested anyway.
|
|
* instance_created method added.
|
|
It is called when the store is created for the very first time.
|