From e0e427728848ce8bb33b4a4d6f8937ec5788d2c6 Mon Sep 17 00:00:00 2001 From: drebs Date: Wed, 11 Oct 2017 11:20:22 -0300 Subject: [feature] make concurrent blob writes configurable --- src/leap/soledad/server/_blobs.py | 5 +++-- src/leap/soledad/server/_config.py | 1 + src/leap/soledad/server/auth.py | 7 +++++-- 3 files changed, 9 insertions(+), 4 deletions(-) (limited to 'src/leap/soledad') diff --git a/src/leap/soledad/server/_blobs.py b/src/leap/soledad/server/_blobs.py index cd47098d..22277fc4 100644 --- a/src/leap/soledad/server/_blobs.py +++ b/src/leap/soledad/server/_blobs.py @@ -62,9 +62,10 @@ VALID_STRINGS = re.compile('^[a-zA-Z0-9_-]+$') @implementer(interfaces.IIncomingBoxBackend) class FilesystemBlobsBackend(object): - def __init__(self, blobs_path='/tmp/blobs/', quota=200 * 1024): + def __init__(self, blobs_path='/tmp/blobs/', quota=200 * 1024, + concurrent_writes=50): self.quota = quota - self.semaphore = defer.DeferredSemaphore(50) # TODO: make configurable + self.semaphore = defer.DeferredSemaphore(concurrent_writes) if not os.path.isdir(blobs_path): os.makedirs(blobs_path) self.path = blobs_path diff --git a/src/leap/soledad/server/_config.py b/src/leap/soledad/server/_config.py index c23f1eae..0d37879e 100644 --- a/src/leap/soledad/server/_config.py +++ b/src/leap/soledad/server/_config.py @@ -33,6 +33,7 @@ CONFIG_DEFAULTS = { 'blobs': False, 'blobs_path': '/var/lib/soledad/blobs', 'services_tokens_file': '/etc/soledad/services.tokens', + 'concurrent_blob_writes': 50, }, 'database-security': { 'members': ['soledad'], diff --git a/src/leap/soledad/server/auth.py b/src/leap/soledad/server/auth.py index da13dc8c..39eb09f6 100644 --- a/src/leap/soledad/server/auth.py +++ b/src/leap/soledad/server/auth.py @@ -56,8 +56,11 @@ class SoledadRealm(object): if conf is None: conf = get_config() blobs = conf['blobs'] - blobs_resource = BlobsResource("filesystem", - conf['blobs_path']) if blobs else None + concurrent_writes = conf['concurrent_blob_writes'] + blobs_resource = BlobsResource( + "filesystem", + conf['blobs_path'], + concurrent_writes=concurrent_writes) if blobs else None self.anon_resource = AnonymousResource( enable_blobs=blobs) self.auth_resource = PublicResource( -- cgit v1.2.3