summaryrefslogtreecommitdiff
path: root/src/leap/soledad/server
diff options
context:
space:
mode:
authordrebs <drebs@riseup.net>2017-10-25 15:58:56 -0200
committerdrebs <drebs@riseup.net>2017-10-31 16:52:59 -0200
commit3306ea69ee33cdafa8803f9c717b60b9f3d3b4a0 (patch)
tree3897a29e0d7c2fddc262eca71779e46bae43313c /src/leap/soledad/server
parentf1c010fc4119d6348d0bd823e4a9f6da310149bd (diff)
[feat] improve speed of server startup
To avoid corrupting data, Soledad Server checks all user databases during startup to make sure all of them use the correct schema version. This was done synchronously, so when there are many databases startup would take a long time. This commit makes that verification asynchronous, thus speeding up server startup.
Diffstat (limited to 'src/leap/soledad/server')
-rw-r--r--src/leap/soledad/server/_wsgi.py3
-rw-r--r--src/leap/soledad/server/entrypoints.py2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/leap/soledad/server/_wsgi.py b/src/leap/soledad/server/_wsgi.py
index f1b0018d..510cb7b9 100644
--- a/src/leap/soledad/server/_wsgi.py
+++ b/src/leap/soledad/server/_wsgi.py
@@ -33,8 +33,7 @@ __all__ = ['init_couch_state', 'get_sync_resource']
def _get_couch_state(conf):
- state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd'],
- check_schema_versions=True)
+ state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd'])
SoledadBackend.BATCH_SUPPORT = conf.get('batching', False)
return state
diff --git a/src/leap/soledad/server/entrypoints.py b/src/leap/soledad/server/entrypoints.py
index 7d18ca58..9bccbcf4 100644
--- a/src/leap/soledad/server/entrypoints.py
+++ b/src/leap/soledad/server/entrypoints.py
@@ -26,6 +26,7 @@ from twisted.internet import reactor
from twisted.python import threadpool
from twisted.logger import Logger
+from ..common.couch.state import check_schema_versions
from .auth import localPortal, publicPortal
from .session import SoledadSession
from ._config import get_config
@@ -73,4 +74,5 @@ def check_conf():
reactor.callWhenRunning(check_conf)
+reactor.callWhenRunning(check_schema_versions, conf['couch_url'])
reactor.callWhenRunning(init_couch_state, conf)