[Ramsons] [ECS] Bulk Edit of MARC and FOLIO Instance records

[Ramsons] [ECS] Bulk Edit of MARC and FOLIO Instance records

Overview

  • This document contains the results of the testing Bulk Edit of MARC and FOLIO Instance records by submitting list of identifiers for 100, 1000, 10 000 records or triggering bulk edit by submitting the query. This time there're no tests with 100 000 records file and tests with queries (scenario 2, 4, 6 - https://folio-org.atlassian.net/browse/MODFQMMGR-667).

  • Tests carried out on Ramsons release with ECS Eureka like environment (central tenant) in scope of Eureka testing

  • The process of Bulk Edit in scenarios 1, 3, 5 includes two steps. First step - uploading file, second one - committing changes. 

  • Jira https://folio-org.atlassian.net/browse/PERF-1032

Summary

  • Bulk edit operations with instance Ids from csv file completed successfully in all scenarios for 100, 1000 and 10000 records. Scenario 5 lasts 3 times longer in average than scenario 1 (FOLIO) or scenario 3 (MARC).

  • Memory usage was stable during tests. No memory leaks revealed. Top usage observed from folio-keycloak module - 92% and mod-roles-keycloak - 67% in Bulk Edit with MARC records (scenario 3, 10000 records)

  • CPU was utilized in accordance with the load. 

  • DB CPU utilized 99% of resources during each test.

  • DB connections were 1150 in average (scenario 1, scenario 5).

  • During scenario 3 (MARC records) with 1000 records deadlocks observed which affected 2 records to fail with timeout error message. Issue described in ticket https://folio-org.atlassian.net/browse/MSEARCH-961

Jiras

Test description

Test name

source

Number of records

Action

query-1

query-2

Test name

source

Number of records

Action

query-1

query-2

Scenario 1

FOLIO

100, 1000, 10 000

  1. Add  Action note: "Regular data cleanup."

  2. Mark the instance as Staff suppress 

from .csv file

from .csv file

Scenario 2

FOLIO

2007 

  1. Add  Action note: "Regular data cleanup."

  2. Mark the instance as Staff suppress 

(instance.source == "FOLIO") AND (instance.format_names contains any (<format names supported in test environment>)) [computer -- online resource]

English (354)
(instance.source == "folio") AND (instance.languages contains all (""))

Scenario 3

MARC

100, 1000, 10 000

  1. Add 500 field with both identifiers empty and subfield “a” with the text “From the papers of the Smith family.” and subfield “5” set to “DLC”

from .csv file

from .csv file

Scenario 4

MARC

1148 

  1. Add 500 field with both identifiers empty and subfield “a” with the text “From the papers of the Smith family.” and subfield “5” set to “DLC”

(instance.source == "MARC") AND (instance.format_names contains any (<format names supported in test environment>)) [unmediated -- object]

Albanian (1055)
(instance.source == "marc") AND (instance.languages contains all (""))

Scenario 5

FOLIO &

MARC

100, 1000, 10 000

  1. Suppress from discovery including option for holdings and items

from .csv file

from .csv file

Scenario 6

FOLIO &

MARC

562

  1. Suppress from discovery including option for holdings and items

(instance.format_names contains any (<format names supported in test environment>)) [audio -- other]

Georgian (1294)
(instance.languages contains all (""))

Test Results

Test #

Source

file size

Upload Duration (hh:mm:ss)

Update Duration  (hh:mm:ss)

Total time
(hh:mm:ss)

Results

Test #

Source

file size

Upload Duration (hh:mm:ss)

Update Duration  (hh:mm:ss)

Total time
(hh:mm:ss)

Results

Scenario 1

FOLIO

100

00:00:12

00:00:14

00:00:26

Completed

FOLIO

1000

00:01:18

00:02:28

00:03:46

Completed

FOLIO

10 000

00:09:38

00:24:13

00:33:51

Completed

Scenario 2

FOLIO

2166 (query-1)

388 (query-2)

 

 

 

Not executed because of https://folio-org.atlassian.net/browse/MODFQMMGR-667

Scenario 3

MARC

100

00:00:11

00:00:28

00:00:39

Completed

MARC

1000

00:01:37

00:01:26

00:03:03

Completed*

MARC

10 000

00:11:26

00:14:46

00:26:12

Completed

Scenario 4

MARC

1055 (query-2)

 

 

 

Not executed because of https://folio-org.atlassian.net/browse/MODFQMMGR-667

Scenario 5

FOLIO & MARC

100

00:00:06

00:00:58

00:01:04

Completed

FOLIO & MARC

1000

00:00:57

00:08:00

00:08:57

Completed

FOLIO & MARC

10 000

00:09:12

01:15:00

01:24:12

Completed

Scenario 6

FOLIO & MARC

1294 (query-2)

 

 

 

Timeout issue with 2 records observed during the test. Also deadlocks observed during the test (see Other RDS metrics and observations).

 

Resource utilization

Instance CPU Utilization

Resource utilization was very similar for all of the tests. I took the most representative.

Scenario 1, Scenario 5

Service CPU Utilization



10k FOLIO/MARC







10k MARC





10k FOLIO/MARC







10k MARC



#

Module

CPU, Utilized, %



#

Module

CPU, Utilized, %

1

mod-users-keycloak-b

14



1

mod-source-record-storage-b

78

2

mod-roles-keycloak-b

10



2

mod-inventory-b

53

3

mod-inventory-b

10



3

mod-data-import-b

45

4

mod-inventory-storage-b

10



4

mod-inventory-storage-b

32

5

mod-consortia-keycloak-b

7



5

mod-consortia-keycloak-b

19

6

mod-login-keycloak-b

5



6

mod-source-record-manager-b

16

7

mod-source-record-storage-b

4



7

edge-inventory-b

11

8

mod-fqm-manager-b

4



8

mod-bulk-operations-b

8

9

mod-data-export-spring-b

4



9

mod-roles-keycloak-b

5

10

mod-inventory-update-b

4



10

mod-users-keycloak-b

5

11

mod-user-import-b

4



11

mod-login-keycloak-b

5

12

mod-data-import-b

3



12

mod-fqm-manager-b

4

13

mod-data-export-worker-b

3



13

mod-inventory-update-b

4

14

edge-inventory-b

2



14

mod-user-import-b

4

15

edge-fqm-b

2



15

mod-data-export-spring-b

4

16

mod-bulk-operations-b

2



16

mod-data-export-worker-b

3

17

edge-users-b

2



17

edge-fqm-b

2

18

mod-source-record-manager-b

2



18

edge-users-b

2

19

folio-keycloak-b

1



19

folio-keycloak-b

2

20

kong-b

1