diff options
author | Erik Johnston <erik@matrix.org> | 2021-05-04 10:47:32 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2021-05-04 10:47:32 +0100 |
commit | bd04fb63085bc46282e88bad3296b1225425fd4d (patch) | |
tree | 412c80bc3092ea68cd10abc554165fb78c3934af | |
parent | Apply suggestions from code review (diff) | |
download | synapse-bd04fb63085bc46282e88bad3296b1225425fd4d.tar.xz |
Code review
-rw-r--r-- | synapse/config/server.py | 23 | ||||
-rw-r--r-- | synapse/metrics/__init__.py | 2 |
2 files changed, 21 insertions, 4 deletions
diff --git a/synapse/config/server.py b/synapse/config/server.py index e95925d1ab..b639bd3144 100644 --- a/synapse/config/server.py +++ b/synapse/config/server.py @@ -572,7 +572,7 @@ class ServerConfig(Config): _warn_if_webclient_configured(self.listeners) self.gc_thresholds = read_gc_thresholds(config.get("gc_thresholds", None)) - self.gc_seconds = read_gc_thresholds(config.get("gc_min_seconds_between", None)) + self.gc_seconds = self.read_gc_intervals(config.get("gc_min_interval", None)) @attr.s class LimitRemoteRoomsConfig: @@ -921,10 +921,10 @@ class ServerConfig(Config): # The minimum time in seconds between each GC for a generation, regardless of # the GC thresholds. This ensures that we don't do GC too frequently. # - # A value of `[1, 10, 30]` indicates that a second must pass between consecutive + # A value of `[1s, 10s, 30s]` indicates that a second must pass between consecutive # generation 0 GCs, etc. # - #gc_min_seconds_between: [1, 10, 30] + #gc_min_interval: [0.5s, 30s, 1m] # Set the limit on the returned events in the timeline in the get # and sync operations. The default value is 100. -1 means no upper limit. @@ -1314,6 +1314,23 @@ class ServerConfig(Config): help="Turn on the twisted telnet manhole service on the given port.", ) + def read_gc_intervals(self, durations): + """Reads the three durations for the GC min interval option.""" + if durations is None: + return None + try: + if len(durations) != 3: + raise ValueError() + return ( + self.parse_duration(durations[0]), + self.parse_duration(durations[1]), + self.parse_duration(durations[2]), + ) + except Exception: + raise ConfigError( + "Value of `gc_min_interval` must be a list of three durations if set" + ) + def is_threepid_reserved(reserved_threepids, threepid): """Check the threepid against the reserved threepid config diff --git a/synapse/metrics/__init__.py b/synapse/metrics/__init__.py index 93662fa134..149ae3002a 100644 --- a/synapse/metrics/__init__.py +++ b/synapse/metrics/__init__.py @@ -537,7 +537,7 @@ REGISTRY.register(ReactorLastSeenMetric()) # The minimum time in seconds between GCs for each generation, regardless of the current GC # thresholds and counts. -MIN_TIME_BETWEEN_GCS = [1, 10, 30] +MIN_TIME_BETWEEN_GCS = (1, 10, 30) # The time (in seconds since the epoch) of the last time we did a GC for each generation. _last_gc = [0, 0, 0] |