Skip to content

Latest commit

 

History

History
324 lines (211 loc) · 15.4 KB

P2.md

File metadata and controls

324 lines (211 loc) · 15.4 KB

ES20 P2 submission, Group 19

Feature PPA

Subgroup

Pull requests associated with this feature

The list of pull requests associated with this feature is:

Note: Pull Requests for F2 and F3 were automatically merged by GitHub

Web services definition

Controllers

Feature testing

Screenshots of Results Trees and DB cleanup

F1

Response body Summary report DB Cleanup

F2

Response body Summary report DB Cleanup

F3

Response body Summary report DB Cleanup

Load testing

Screenshots of Summary Reports and DB cleanup

F1

Summary report DB Cleanup

F2

Summary report DB Cleanup

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);

F3

Summary report DB Cleanup

Service profiling

We used the Async Profiler.

Screenshots of summary reports

F1

Profiling percentages Profiling graphs Profiling heap

F2

Profiling acceptance percentages Profiling rejection percentages Profiling graphs Profiling heap

F3

Profiling percentages Profiling graphs Profiling heap

Discussion of findings

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.


Feature DDP

Subgroup

  • André Breda, ist189409, abread
  • Mariana Oliveira, ist189504, tpoliveira-mariana

Pull requests associated with this feature

The list of pull requests associated with this feature is:

Web services definition

Controllers

Feature testing

Screenshots of Results Trees and DB cleanup

F1

Response body Summary report DB Cleanup

F2 - Submit

Response body Summary report DB Cleanup

F2 - Delete

Response body Summary report DB Cleanup

F3

Response body Summary report DB Cleanup

Load testing

Screenshots of Summary Reports and DB cleanup

F1

Summary report DB Cleanup

F2 - Submit

Summary report DB Cleanup

F2 - Delete

Summary report DB Cleanup

F3

Summary report DB Cleanup

Service profiling

We used the Async Profiler.

Screenshots of summary reports

F1

Profiling percentages Profiling graphs Profiling heap

F2 - Submit

Profiling percentages Profiling graphs Profiling heap

F2 - Delete

Profiling percentages Profiling graphs Profiling heap

F3

Profiling percentages Profiling graphs Profiling heap

Discussion of findings

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.


Feature TDP

Subgroup

  • Lourenço Ramos Duarte, ist197023, LourencoPonces
  • Marcelo Santos, ist189496, tosmarcel

Pull requests associated with this feature

The list of pull requests associated with this feature is:

Web services definition

Controllers

Feature testing

Screenshots of Results Trees and DB cleanup

F1

Response body Summary report DB Cleanup

F2

Response body Summary report DB Cleanup

F3

Response body Summary report DB Cleanup

Load testing

Screenshots of Summary Reports and DB cleanup

F1

Summary report DB Cleanup

F2

Summary report DB Cleanup

F3

Summary report DB Cleanup

Service profiling

We used the Async Profiler.

Screenshots of summary reports

F1

Profiling percentages Profiling graphs Profiling heap

F2

Profiling percentages Profiling graphs Profiling heap

F3

Profiling percentages Profiling graphs Profiling heap

Discussion of findings

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.