Project

General

Profile

Actions

Task #2095

closed

Performance testing for the export/import agenda

Added by Vít Švanda almost 5 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Ondrej Husník
Category:
-
Target version:
Start date:
03/10/2020
Due date:
% Done:

100%

Estimated time:
8.00 h
Owner:

Description

  • Goal of this ticket is made user testing of export/import.
  • Please make performance testing for roles and systems (1000 entities would be good goal).

Subtasks 1 (0 open1 closed)

Task #2112: Referential integrity validationClosedOndrej Husník03/10/2020

Actions
Actions #1

Updated by Vít Švanda almost 5 years ago

This feature is in the branch "vsvanda/1972-export-import".

Actions #2

Updated by Ondrej Husník almost 5 years ago

Performance testing

Performance testing took place with using numbers of Systems (specifically CSVDir system) with assigned several roles, set mapping etc. to increase overall number of entities to export.
The goal was to find both particular time of duration and estimation of the export/import complexity. Testing was performed on personal NB (i7, 16GB RAM, SSD). Database (MSSQL) was placed on the SSD communicating with IdM via localhost only. System wasn’t running out of any resources during testing.
Following table shows number of testing systems and measured times of their export and import. The growth of the operation time is roughly linearly proportional to number of testing systems and by extension overall processed entities.

Performance tests
System num Overall entity num Export time [min] Import time - Dry run [min] Import time - Apply changes [min] Zip size [MB]
111 2691 1 1 3 2,18
201 4851 1 3 10 3,93
415 9982 2 10 35 8,08
815 19582 4 38 130 15,8

Functionality testing

User testing was focused on testing export and various scenarios of import. It worked in general as expected. Imported batch was exported again and compared with the originally imported batch - checked file content of the exported batches - in order to prove equality of such batches. Only changes of some IDs and modification time were allowed. Dependent parts missing in IdM and contained in the batch were imported, items missing in the batch were removed from IdM and items contained in both were updated unless excluded from removal/replacement due to disabled authoritative mode setting.

Found trouble and limitations

I. A difficulty occurred during import of a system, when another system with different IDs but same name/code already existed in IdM. Import causes temporal presence of two System schemas with different ID and same name/code which is not allowed.

II. Import fails in case of using Attributes mapped within role in the source batch, but IdM doesn’t contain corresponding role. While missing roles assigned to system are omitted from import as optional, Attributes mapped within role are attempted to be linked to that non-existent roles which ends up with an exception.

Validation failed for [SysRoleSystemAttribute], errors [[ConstraintViolationImpl{interpolatedMessage='nesmí být null', propertyPath=roleSystem, rootBeanClass=class eu.bcvsolutions.idm.acc.entity.SysRoleSystemAttribute, messageTemplate='{javax.validation.constraints.NotNull.message}'}]]
    at eu.bcvsolutions.idm.core.api.service.AbstractReadWriteDtoService.validate(Abstrac

III. It wasn't possible to export created bare system without any selected connector even though such system is legal to save.

UX suggestion
In the Batch detail → All modifications
1) First combo for Operation selection could have the hint text “Operation” instead of “Select...”
2) Filter search items could be swapped to correspond with the order of columns in the table.

Actions #4

Updated by Vít Švanda almost 5 years ago

Found trouble and limitations:

I - It is limitation in version 10.2.0.
II - This is a big problem I have to solve this!
III - Fixed.

Actions #5

Updated by Vít Švanda almost 5 years ago

I fixed number II.

Role-system-attribute type is sets as optional now.

Commit: https://github.com/bcvsolutions/CzechIdMng/commit/077dd2dfaeda17e277927c97499d0f7cfa2e2495

You can try it again and close this ticket.

Actions #6

Updated by Ondrej Husník almost 5 years ago

After your correction is role mapping belonging to missing role successfully omitted and import passes.

Actions #7

Updated by Ondrej Husník almost 5 years ago

  • Status changed from New to Resolved
Actions #8

Updated by Radek Tomiška over 4 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF