- Afonso Gonçalves, ist189399, afonsocrg
- Daniel Seara, ist189427, Beu-Wolf
The list of pull requests associated with this feature is:
Note: Pull Requests for F2 and F3 were automatically merged by GitHub
Note: The teardown group also checks the number of approved/rejected questions. This has to be done after all the teacher evaluations and before the data removal from the database. Making these tasks in a separate Thread group would conflict with the evaluation (in a normal thread group) or with the teardown (in a teardown thread group);
We used the Async Profiler.
For F1, it is clear that most of the time (96.5%) is spent querying the database for the max key to use, which is not critical since a question creation doesn't happen a lot and it doesn't take too much time to accomplish individually. For F2, querying the database takes the majority of the time (67.4%/71.3%), but it is necessary so as to find the correct question to evaluate. As for F3, the issue is the same with around 99% of time used in the database, which is also necessary to identify the correct user to show his questions.
- André Breda, ist189409, abread
- Mariana Oliveira, ist189504, tpoliveira-mariana
The list of pull requests associated with this feature is:
We used the Async Profiler.
From the Profiling Percentages
, it is clear that most of F1's execution time is spent on getMaxClarificationRequestKey
. Moreover, the load test on WSsubmitClarificationRequest
, revealed that most requests where being denied (for testing purposes we changed it to pass the key
on the HTTP Request Body
). Therefore, we decided to refactor the creation of a ClarificationRequest
by delaying the atribution of a key
until it is strictly necessary. With this modification, there were no more conflicts and tests that took 13' to run, now take 30s.
As for F2, setup takes the majority of time, with the clarification subimssion. The rest is necessary database querying.
As for F3, the issue is the same with much of time used in the database, which is also necessary.
- Lourenço Ramos Duarte, ist197023, LourencoPonces
- Marcelo Santos, ist189496, tosmarcel
The list of pull requests associated with this feature is:
We used the Async Profiler.
In F1, Tournament Creation, time is spent evenly between querying for usernames, linking a tournament with its topics and verifying that the topics exist. All three operations correspond to one query to the database, so the percentages make sense. In F2, Get Tournaments, database queries have the ruling time slice, but we also reach the conclusion that collecting streams can damage performance considerably. In F3, Sign Up Student in Tournament, querying for usernames is the major bottleneck, almost representing the entirety of the runtime.