-
Notifications
You must be signed in to change notification settings - Fork 42
Scalability & Performance
Allie Crevier edited this page Dec 22, 2021
·
11 revisions
- The client needs to be responsive with up to 600 sources.
- The client needs to be responsive with up to 100 messages and 100 replies per source.
- A sync (
get_sources
+get_all_submissions
+get_all_replies
+update_local_storage
) should not take longer than 60 seconds over Tor.
- Sync + loading the source list breakdown (as of March 2020): https://github.com/freedomofpress/securedrop-client/issues/1009#issuecomment-606167102
- Loading a conversation (as of June 2020): https://github.com/freedomofpress/securedrop-client/pull/1049#issuecomment-651402561
To create many sources:
- On your test server,
sudo -u www-data bash
cd /var/www/securedrop
NUM_SOURCES=500 ./create-dev-data.py
Or...
- On your test server,
sudo -u www-data bash
cd /var/www/securedrop
./qa_loader.py --journalist-count 1 --source-count 500 --submissions-per-source 2 --replies-per-source 2 --source-reply-fraction 1
To create one source with many messages and replies:
- On your test server,
sudo -u www-data bash
cd /var/www/securedrop
./qa_loader.py --journalist-count 1 --source-count 1 --submissions-per-source 500 --replies-per-source 500 --source-reply-fraction 1
- In Qt you can use QTimer to schedule slices of work so that a long-running operation doesn't obstruct event processing in the GUI for a long time. See example here: https://github.com/freedomofpress/securedrop-client/blob/6f70b18f308a11b63735d5d8b6ee72cb8ceb5239/securedrop_client/gui/widgets.py#L883. This can also make an application less responsive if you don't choose the right slice size.