mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-26 01:09:22 -05:00
Enable cache time-based expiry by default (#11849)
This commit is contained in:
parent
4d7e74b2e5
commit
b2b971f28a
1
changelog.d/11849.misc
Normal file
1
changelog.d/11849.misc
Normal file
@ -0,0 +1 @@
|
|||||||
|
Enable cache time-based expiry by default. The `expiry_time` config flag will be superseded by `expire_caches` and `cache_entry_ttl`.
|
@ -751,11 +751,16 @@ caches:
|
|||||||
per_cache_factors:
|
per_cache_factors:
|
||||||
#get_users_who_share_room_with_user: 2.0
|
#get_users_who_share_room_with_user: 2.0
|
||||||
|
|
||||||
# Controls how long an entry can be in a cache without having been
|
# Controls whether cache entries are evicted after a specified time
|
||||||
# accessed before being evicted. Defaults to None, which means
|
# period. Defaults to true. Uncomment to disable this feature.
|
||||||
# entries are never evicted based on time.
|
|
||||||
#
|
#
|
||||||
#expiry_time: 30m
|
#expire_caches: false
|
||||||
|
|
||||||
|
# If expire_caches is enabled, this flag controls how long an entry can
|
||||||
|
# be in a cache without having been accessed before being evicted.
|
||||||
|
# Defaults to 30m. Uncomment to set a different time to live for cache entries.
|
||||||
|
#
|
||||||
|
#cache_entry_ttl: 30m
|
||||||
|
|
||||||
# Controls how long the results of a /sync request are cached for after
|
# Controls how long the results of a /sync request are cached for after
|
||||||
# a successful response is returned. A higher duration can help clients with
|
# a successful response is returned. A higher duration can help clients with
|
||||||
|
@ -111,6 +111,13 @@ to:
|
|||||||
|
|
||||||
Please update any relevant reverse proxy or firewall configurations appropriately.
|
Please update any relevant reverse proxy or firewall configurations appropriately.
|
||||||
|
|
||||||
|
## Time-based cache expiry is now enabled by default
|
||||||
|
|
||||||
|
Formerly, entries in the cache were not evicted regardless of whether they were accessed after storing.
|
||||||
|
This behavior has now changed. By default entries in the cache are now evicted after 30m of not being accessed.
|
||||||
|
To change the default behavior, go to the `caches` section of the config and change the `expire_caches` and
|
||||||
|
`cache_entry_ttl` flags as necessary. Please note that these flags replace the `expiry_time` flag in the config.
|
||||||
|
|
||||||
## Deprecation of `capability` `org.matrix.msc3283.*`
|
## Deprecation of `capability` `org.matrix.msc3283.*`
|
||||||
|
|
||||||
The `capabilities` of MSC3283 from the REST API `/_matrix/client/r0/capabilities`
|
The `capabilities` of MSC3283 from the REST API `/_matrix/client/r0/capabilities`
|
||||||
|
0
synapse/config/background_updates.py
Normal file
0
synapse/config/background_updates.py
Normal file
@ -12,6 +12,7 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import threading
|
import threading
|
||||||
@ -23,6 +24,8 @@ from synapse.python_dependencies import DependencyException, check_requirements
|
|||||||
|
|
||||||
from ._base import Config, ConfigError
|
from ._base import Config, ConfigError
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
# The prefix for all cache factor-related environment variables
|
# The prefix for all cache factor-related environment variables
|
||||||
_CACHE_PREFIX = "SYNAPSE_CACHE_FACTOR"
|
_CACHE_PREFIX = "SYNAPSE_CACHE_FACTOR"
|
||||||
|
|
||||||
@ -148,11 +151,16 @@ class CacheConfig(Config):
|
|||||||
per_cache_factors:
|
per_cache_factors:
|
||||||
#get_users_who_share_room_with_user: 2.0
|
#get_users_who_share_room_with_user: 2.0
|
||||||
|
|
||||||
# Controls how long an entry can be in a cache without having been
|
# Controls whether cache entries are evicted after a specified time
|
||||||
# accessed before being evicted. Defaults to None, which means
|
# period. Defaults to true. Uncomment to disable this feature.
|
||||||
# entries are never evicted based on time.
|
|
||||||
#
|
#
|
||||||
#expiry_time: 30m
|
#expire_caches: false
|
||||||
|
|
||||||
|
# If expire_caches is enabled, this flag controls how long an entry can
|
||||||
|
# be in a cache without having been accessed before being evicted.
|
||||||
|
# Defaults to 30m. Uncomment to set a different time to live for cache entries.
|
||||||
|
#
|
||||||
|
#cache_entry_ttl: 30m
|
||||||
|
|
||||||
# Controls how long the results of a /sync request are cached for after
|
# Controls how long the results of a /sync request are cached for after
|
||||||
# a successful response is returned. A higher duration can help clients with
|
# a successful response is returned. A higher duration can help clients with
|
||||||
@ -217,12 +225,30 @@ class CacheConfig(Config):
|
|||||||
e.message # noqa: B306, DependencyException.message is a property
|
e.message # noqa: B306, DependencyException.message is a property
|
||||||
)
|
)
|
||||||
|
|
||||||
expiry_time = cache_config.get("expiry_time")
|
expire_caches = cache_config.get("expire_caches", True)
|
||||||
if expiry_time:
|
cache_entry_ttl = cache_config.get("cache_entry_ttl", "30m")
|
||||||
self.expiry_time_msec: Optional[int] = self.parse_duration(expiry_time)
|
|
||||||
|
if expire_caches:
|
||||||
|
self.expiry_time_msec: Optional[int] = self.parse_duration(cache_entry_ttl)
|
||||||
else:
|
else:
|
||||||
self.expiry_time_msec = None
|
self.expiry_time_msec = None
|
||||||
|
|
||||||
|
# Backwards compatibility support for the now-removed "expiry_time" config flag.
|
||||||
|
expiry_time = cache_config.get("expiry_time")
|
||||||
|
|
||||||
|
if expiry_time and expire_caches:
|
||||||
|
logger.warning(
|
||||||
|
"You have set two incompatible options, expiry_time and expire_caches. Please only use the "
|
||||||
|
"expire_caches and cache_entry_ttl options and delete the expiry_time option as it is "
|
||||||
|
"deprecated."
|
||||||
|
)
|
||||||
|
if expiry_time:
|
||||||
|
logger.warning(
|
||||||
|
"Expiry_time is a deprecated option, please use the expire_caches and cache_entry_ttl options "
|
||||||
|
"instead."
|
||||||
|
)
|
||||||
|
self.expiry_time_msec = self.parse_duration(expiry_time)
|
||||||
|
|
||||||
self.sync_response_cache_duration = self.parse_duration(
|
self.sync_response_cache_duration = self.parse_duration(
|
||||||
cache_config.get("sync_response_cache_duration", 0)
|
cache_config.get("sync_response_cache_duration", 0)
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user