This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 11ed566c7689f9363cb803a61eb9765723b634d2
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Wed Dec 4 18:23:37 2019 +0700

    JAMES-2919 Validate JMAP partial read ADR after performance tests
---
 src/adr/0012-jmap-partial-reads.md      | 23 ++++++++++++++++-------
 src/adr/0013-precompute-jmap-preview.md | 19 ++++++++++++++-----
 2 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/src/adr/0012-jmap-partial-reads.md 
b/src/adr/0012-jmap-partial-reads.md
index 310cd2e..ef945b6 100644
--- a/src/adr/0012-jmap-partial-reads.md
+++ b/src/adr/0012-jmap-partial-reads.md
@@ -4,9 +4,7 @@ Date: 2019-10-09
 
 ## Status
 
-Proposed
-
-Adoption needs to be backed by some performance tests.
+Accepted
 
 ## Context
 
@@ -29,10 +27,21 @@ Some performance tests will be run in order to evaluate the 
improvements.
 
 ## Consequences
 
-GetMessages with a limited set of requested properties will no longer result 
necessarily in full database message read. We
-thus expect a significant improvement, for instance when only metadata are 
requested.
-
-In case of a less than 5% improvement, the code will not be added to the 
codebase and the proposal will get the status 'rejected'.
+GetMessages with a limited set of requested properties no longer result 
necessarily in full database message read. We
+thus have a significant improvement, for instance when only metadata are 
requested.
+
+Given the following scenario played by 5000 users per hour (constant rate)
+ - Authenticate
+ - List mailboxes
+ - List messages in one of their mailboxes
+ - Get 10 times the mailboxIds and keywords of the given messages
+
+We went from:
+ - A 20% failure and timeout rate before this change to no failure
+ - Mean time for GetMessages went from 27 159 ms to 27 ms (1000 time 
improvment), for all operation from
+ 27 591 ms to 60 ms (460 time improvment)
+ - P99 is a metric that did not make sense because the initial simulation 
exceeded Gatling (the performance measuring tool 
+ we use) timeout (60s) at the p50 percentile. After this proposal p99 for the 
entire scenario is of 1 383 ms
 
 ## References
 
diff --git a/src/adr/0013-precompute-jmap-preview.md 
b/src/adr/0013-precompute-jmap-preview.md
index e683ab2..8a1092f 100644
--- a/src/adr/0013-precompute-jmap-preview.md
+++ b/src/adr/0013-precompute-jmap-preview.md
@@ -4,9 +4,7 @@ Date: 2019-10-09
 
 ## Status
 
-Proposed
-
-Adoption needs to be backed by some performance tests.
+Accepted
 
 ## Context
 
@@ -35,9 +33,20 @@ Some performance tests will be run in order to evaluate the 
improvements.
 
 ## Consequences
 
-We expect a huge performance enhancement for JMAP clients relying on preview 
for listing mails.
+Given the following scenario played by 2500 users per hour (constant rate)
+ - Authenticate
+ - List mailboxes
+ - List messages in one of their mailboxes
+ - Get 8 times the properties expected to be fast to fetch with JMAP
+
+We went from:
+ - A 7% failure and timeout rate before this change to almost no failure
+ - Mean time for GetMessages went from 9 710 ms to 434 ms (22 time 
improvment), for all operation from
+ 12 802 ms to 407 ms (31 time improvment)
+ - P99 is a metric that did not make sense because the initial simulation 
exceeded Gatling (the performance measuring tool 
+ we use) timeout (60s) at the p95 percentile. After this proposal p99 for the 
entire scenario is of 1 747 ms
 
-In case of a less than 5% improvement, the code will not be added to the 
codebase and the proposal will get the status 'rejected'.
+As such, this changeset significantly increases the JMAP performance.
 
 ## References
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to