Access the event_cache_size directly from the server object.
This means that the workers can override the event_cache_size directly without clobbering the value in the main synapse config.
This commit is contained in:
parent
bde13833cb
commit
364d616792
|
@ -18,7 +18,6 @@ import synapse
|
||||||
|
|
||||||
from synapse.server import HomeServer
|
from synapse.server import HomeServer
|
||||||
from synapse.config._base import ConfigError
|
from synapse.config._base import ConfigError
|
||||||
from synapse.config.workers import clobber_with_worker_config
|
|
||||||
from synapse.config.logger import setup_logging
|
from synapse.config.logger import setup_logging
|
||||||
from synapse.config.homeserver import HomeServerConfig
|
from synapse.config.homeserver import HomeServerConfig
|
||||||
from synapse.http.site import SynapseSite
|
from synapse.http.site import SynapseSite
|
||||||
|
@ -241,6 +240,9 @@ class PusherServer(HomeServer):
|
||||||
logger.exception("Error replicating from %r", replication_url)
|
logger.exception("Error replicating from %r", replication_url)
|
||||||
yield sleep(30)
|
yield sleep(30)
|
||||||
|
|
||||||
|
def get_event_cache_size(self):
|
||||||
|
return self.worker_config.event_cache_size
|
||||||
|
|
||||||
|
|
||||||
def setup(worker_name, config_options):
|
def setup(worker_name, config_options):
|
||||||
try:
|
try:
|
||||||
|
@ -255,8 +257,6 @@ def setup(worker_name, config_options):
|
||||||
|
|
||||||
setup_logging(worker_config.log_config, worker_config.log_file)
|
setup_logging(worker_config.log_config, worker_config.log_file)
|
||||||
|
|
||||||
clobber_with_worker_config(config, worker_config)
|
|
||||||
|
|
||||||
if config.start_pushers:
|
if config.start_pushers:
|
||||||
sys.stderr.write(
|
sys.stderr.write(
|
||||||
"\nThe pushers must be disabled in the main synapse process"
|
"\nThe pushers must be disabled in the main synapse process"
|
||||||
|
|
|
@ -20,7 +20,6 @@ from synapse.api.constants import EventTypes, PresenceState
|
||||||
from synapse.config._base import ConfigError
|
from synapse.config._base import ConfigError
|
||||||
from synapse.config.homeserver import HomeServerConfig
|
from synapse.config.homeserver import HomeServerConfig
|
||||||
from synapse.config.logger import setup_logging
|
from synapse.config.logger import setup_logging
|
||||||
from synapse.config.workers import clobber_with_worker_config
|
|
||||||
from synapse.events import FrozenEvent
|
from synapse.events import FrozenEvent
|
||||||
from synapse.handlers.presence import PresenceHandler
|
from synapse.handlers.presence import PresenceHandler
|
||||||
from synapse.http.site import SynapseSite
|
from synapse.http.site import SynapseSite
|
||||||
|
@ -404,6 +403,9 @@ class SynchrotronServer(HomeServer):
|
||||||
def build_typing_handler(self):
|
def build_typing_handler(self):
|
||||||
return SynchrotronTyping(self)
|
return SynchrotronTyping(self)
|
||||||
|
|
||||||
|
def get_event_cache_size(self):
|
||||||
|
return self.worker_config.event_cache_size
|
||||||
|
|
||||||
|
|
||||||
def start(worker_name, config_options):
|
def start(worker_name, config_options):
|
||||||
try:
|
try:
|
||||||
|
@ -418,8 +420,6 @@ def start(worker_name, config_options):
|
||||||
|
|
||||||
setup_logging(worker_config.log_config, worker_config.log_file)
|
setup_logging(worker_config.log_config, worker_config.log_file)
|
||||||
|
|
||||||
clobber_with_worker_config(config, worker_config)
|
|
||||||
|
|
||||||
database_engine = create_engine(config.database_config)
|
database_engine = create_engine(config.database_config)
|
||||||
|
|
||||||
ss = SynchrotronServer(
|
ss = SynchrotronServer(
|
||||||
|
|
|
@ -33,20 +33,6 @@ Worker = collections.namedtuple("Worker", [
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
def clobber_with_worker_config(config, worker_config):
|
|
||||||
"""Overrides some of the keys of the main config with worker-specific
|
|
||||||
values. We only need to override the keys that are accessed deep
|
|
||||||
withing synapse code. Most of the keys that we want to override in
|
|
||||||
the workers are accessed in setup code that is rewritten specifically
|
|
||||||
for the workers. In that new code we can access the worker config directly,
|
|
||||||
so we don't need to override the values in the main config."""
|
|
||||||
|
|
||||||
# TODO: The event_cache_size is accessed in the db setup. It should be
|
|
||||||
# possible to rejigg that code so that the cache size is pulled from the
|
|
||||||
# worker config directly.
|
|
||||||
config.event_cache_size = worker_config.event_cache_size
|
|
||||||
|
|
||||||
|
|
||||||
def read_worker_config(config):
|
def read_worker_config(config):
|
||||||
return Worker(
|
return Worker(
|
||||||
app=config["app"],
|
app=config["app"],
|
||||||
|
|
|
@ -236,6 +236,9 @@ class HomeServer(object):
|
||||||
def remove_pusher(self, app_id, push_key, user_id):
|
def remove_pusher(self, app_id, push_key, user_id):
|
||||||
return self.get_pusherpool().remove_pusher(app_id, push_key, user_id)
|
return self.get_pusherpool().remove_pusher(app_id, push_key, user_id)
|
||||||
|
|
||||||
|
def get_event_cache_size(self):
|
||||||
|
return self.config.event_cache_size
|
||||||
|
|
||||||
|
|
||||||
def _make_dependency_method(depname):
|
def _make_dependency_method(depname):
|
||||||
def _get(hs):
|
def _get(hs):
|
||||||
|
|
|
@ -166,7 +166,7 @@ class SQLBaseStore(object):
|
||||||
self._get_event_counters = PerformanceCounters()
|
self._get_event_counters = PerformanceCounters()
|
||||||
|
|
||||||
self._get_event_cache = Cache("*getEvent*", keylen=3, lru=True,
|
self._get_event_cache = Cache("*getEvent*", keylen=3, lru=True,
|
||||||
max_entries=hs.config.event_cache_size)
|
max_entries=hs.get_event_cache_size())
|
||||||
|
|
||||||
self._state_group_cache = DictionaryCache(
|
self._state_group_cache = DictionaryCache(
|
||||||
"*stateGroupCache*", 2000 * CACHE_SIZE_FACTOR
|
"*stateGroupCache*", 2000 * CACHE_SIZE_FACTOR
|
||||||
|
|
Loading…
Reference in New Issue