Add a cache for get_event
2 files changed, 15 insertions, 0 deletions
diff --git a/synapse/config/_base.py b/synapse/config/_base.py
index 9b0f8c3c32..87cdbf1d30 100644
--- a/synapse/config/_base.py
+++ b/synapse/config/_base.py
@@ -28,6 +28,16 @@ class Config(object):
pass
@staticmethod
+ def parse_size(string):
+ sizes = {"K": 1024, "M": 1024 * 1024}
+ size = 1
+ suffix = string[-1]
+ if suffix in sizes:
+ string = string[:-1]
+ size = sizes[suffix]
+ return int(string) * size
+
+ @staticmethod
def abspath(file_path):
return os.path.abspath(file_path) if file_path else file_path
diff --git a/synapse/config/database.py b/synapse/config/database.py
index daa161c952..87efe54645 100644
--- a/synapse/config/database.py
+++ b/synapse/config/database.py
@@ -24,6 +24,7 @@ class DatabaseConfig(Config):
self.database_path = ":memory:"
else:
self.database_path = self.abspath(args.database_path)
+ self.event_cache_size = self.parse_size(args.event_cache_size)
@classmethod
def add_arguments(cls, parser):
@@ -33,6 +34,10 @@ class DatabaseConfig(Config):
"-d", "--database-path", default="homeserver.db",
help="The database name."
)
+ db_group.add_argument(
+ "--event-cache-size", default="100K",
+ help="Number of events to cache in memory."
+ )
@classmethod
def generate_config(cls, args, config_dir_path):
|