Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Test status: COMPLETED WITH ERRORS

Table of Contents
Overview

...

IN PROGRESS

  • Regression testing of Fiscal Year Rollover (FYR)

...

  • on Eureka based environment in quesnelia release. 
    • The testing triggered from UI for the ledger with generated amount of defined data set (Data quantity).
  • Testing include two different phases of the fiscal year transition process:
    • #1 phase: Test Fiscal Year Rollover - is a risk free simulation pre-step to #2 phase which includes only Finance part of the data (to preview how the rollover settings will affect funds, budgets, and encumbrances).
    • #2 phase: Fiscal Year Rollover - perform a permanent changes. It is the actual process which move financial data, budgets, and encumbrances into the new fiscal year. It includes not only Finance but Orders parts of the data too.
  • The purpose of testing is to define duration time of those 2 phases, to do comparison between current and previous results of each phase, to find any trends for resource utilization. To recommend improvements how to make it work better if any confirmed.
    • Previous successful testing for #2 phase took 29 hours
  • Jiras/ links:

...

Summary

  • Eureka - failed completed with errors
    • Test fiscal year rollover duration was #1 Phase Test FYR took 3 hours 35 minutes, finished completed successfully.
    • Fiscal year rollover duration was #2 Phase actual FYR took 8 hours and failed completed with errors (Order rollover Error).
  • Non-eureka - successful
    • Test FYR  - 3 hours 20 minutes.
    • FYR - 9 hours 7 minutes
  • Service CPU utilization for pre-strop to Fiscal Year Rollover (FYR) - Test FYR was less than 5% for all the modules, except a spike at the beginning of test rollover (mod-invoice reached 10%, mod-invoice-storage - 8%). Some modules were steady - mod-inventory - 11%, mod-pubsub - 8%.
  • DB CPU usage was on level of 9% during the test rollover and there was growing trend from 9% to 15% during the rollover itself.
  • No memory leaks were found.

Recommendations

  • Set max_locks_per_transaction parameter in DB cluster and instance configurations from default 64 to 1024 to avoid problems with ordersRollover.
  • Investigation of issues on Eureka based environment
    Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyMODFISTO-495
    - Time out issue 
    Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyEUREKA-518
    - UI pending issue

Errors

  • 127.0.0.1:43264 POST /finance/ledger-rollovers null HTTP_1_1 500 265 400027 tid=[tenant] Internal Server Error. This error happens when we try FYR with more than 10k open orders. The last attempt to run FYR with 50k open orders after changed recommended parameter max_locks_per_transaction failed. A new observation here is that budgets became unavailable with this amount of data. Probably it may cause fail of FYR. 

Test Runs and Results

Test #

Scenario

Load levelData quantity**

Fiscal year rollover duration

Orchid*

Fiscal year rollover duration

Poppy*

FYR duration

Quesnelia (Eureka)

FYR duration

Quesnelia (non-Eureka)

Comments
1Test Fiscal year rollover1 rollover at a time

100K orders:

50K - open

50K - pending

200K order lines

400K transactions

-

3.5 hours

3.5 hours3 hours 20 minutesTest rollover finished successfully.
2Fiscal year rollover1 rollover at a time

100K orders:

50K - open

50K - pending

200K order lines

400K transactions

6 days (failed due to 504 Gateway Time-out" error)

29 hours

8 hours

(failed due

 500 Internal Server Error)


9 hours 7 minutes

On eureka Rollover failed.

On non-eureka Rollover succeeded.

...

**Data structure can be found at the link: Fiscal year rollover testing

Instance CPU Utilization

Test FY rollover

no graph

FY rollover

no graph

Service CPU Utilization

Test FY rollover

Maximum CPU utilization by modules:

...

mod-orders, mod-orders-storage - 1,5%, 3%

mod-finance - under 1%

FY rollover

Maximum CPU utilization by modules:

...

mod-finance storage - 1.2%

Memory Utilization

Test FY rollover

Memory usage by modules:

mod-finance-storage - 85%

...

mod-orders - 57%

mod-orders-storage - 46%

FY rollover

Memory usage by modules:

mod-finance-storage - 85%

...

mod-orders - 58%

mod-orders-storage - 46%

DB CPU Utilization

Test FY rollover (qelc2)

Maximum DB CPU usage - 9 - 20%

Test FY rollover (qcon)

FY rollover (qelc2)

Maximum DB CPU usage - 99%

FY rollover (qcon)

Spikes are connected to fqm manager queries (as example - REFRESH MATERIALIZED VIEW CONCURRENTLY cs00000int_0001_mod_fqm_manager.drv_langu...). Do not affect duration of FYR.

DB Connections

Test FY rollover (qelc2)

Test FY rollover (qcon)

FY rollover (qelc2)

FY rollover (qcon)

mod-serials was not paused for the test (because of that we see such connection number increase)

DB Load

Test FY rollover (qcon)

FY rollover (qcon)


Top SQL

Test FY rollover (qcon)

FY rollover (qcon)

Appendix

Infrastructure

PTF -environment qelc2

  • 10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
  • 1 database  instance, writer

    NameMemory GIBvCPUsmax_connections

    db.r6g.4xlarge

    32 GiB4 vCPUs-


  • MSK fse-tenant
    • 4 m5.2xlarge brokers in 2 zones
    • Apache Kafka version 3.7.x

    • EBS storage volume per broker 300 GiB

    • auto.create.topics.enable=true
    • log.retention.minutes=480
    • default.replication.factor=3

PTF -environment qcon

  • 10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
  • 1 database  instance, writer

    NameMemory GIBvCPUsmax_connections

    db.r6g.xlarge

    32 GiB4 vCPUs-


...

Expand
titleModule QCON

Cluster Resources - qcon-pvt (Wed Nov 06 11:28:29 UTC 2024)

ModuleTask Definition RevisionModule VersionTask CountMem Hard LimitMem Soft LimitCPU UnitsXmxMetaspace SizeMax Metaspace Size
mod-remote-storage1mod-remote-storage:3.2.024920447210243960512512
mod-finance-storage1mod-finance-storage:8.6.021024896102470088128
mod-ncip1mod-ncip:1.14.42102489612876888128
mod-agreements1mod-agreements:7.0.0215921488128000
mod-ebsconet1mod-ebsconet:2.2.0212481024128700128256
mod-consortia1mod-consortia:1.1.023072204812820485121024
mod-organizations1mod-organizations:1.9.02102489612870088128
mod-serials-management1mod-serials-management:1.0.02248023121281792384512
mod-settings2mod-settings:1.0.32102489620076888128
mod-search9mod-search:3.3.0-SNAPSHOT.224225922480204814405121024
edge-dematic1edge-dematic:2.2.01102489612876888128
mod-data-import1mod-data-import:3.1.01204818442561292384512
mod-tags1mod-tags:2.2.02102489612876888128
mod-authtoken6mod-authtoken:2.15.121440115251292288128
edge-courses1edge-courses:1.4.02102489612876888128
mod-inventory-update1mod-inventory-update:3.3.02102489612876888128
mod-notify1mod-notify:3.2.02102489612876888128
mod-configuration1mod-configuration:5.10.02102489612876888128
mod-orders-storage3mod-orders-storage:13.7.42102489651270088128
edge-caiasoft1edge-caiasoft:2.2.02102489612876888128
mod-login-saml1mod-login-saml:2.8.02102489612876888128
mod-erm-usage-harvester1mod-erm-usage-harvester:4.5.02102489612876888128
mod-password-validator1mod-password-validator:3.2.0214401298128768384512
mod-licenses1mod-licenses:6.0.02248023121281792384512
mod-gobi1mod-gobi:2.8.02102489612870088128
mod-bulk-operations1mod-bulk-operations:2.0.023072260010241536384512
mod-fqm-manager1mod-fqm-manager:2.0.12300026001282048384512
edge-dcb1edge-dcb:1.1.02102489612876888128
mod-graphql1mod-graphql:1.12.12102489612876888128
mod-finance1mod-finance:4.9.02102489612870088128
mod-erm-usage1mod-erm-usage:4.7.02102489612876888128
mod-batch-print1mod-batch-print:1.1.02102489612876888128
mod-copycat1mod-copycat:1.6.02102451212876888128
mod-lists1mod-lists:2.0.02300026001282048384512
mod-entities-links1mod-entities-links:3.0.0225922480400144001024
mod-permissions4mod-permissions:6.6.0-SNAPSHOT.3792168415445121024384512
pub-edge1pub-edge:2023.06.142102489612876800
mod-orders3mod-orders:12.8.822048174010241024384512
edge-patron1edge-patron:5.1.02102489625676888128
edge-ncip1edge-ncip:1.9.22102489612876888128
mod-users-bl1mod-users-bl:7.7.021440115251292288128
mod-invoice5mod-invoice:5.8.22288023042204888128
mod-inventory-storage2mod-inventory-storage:27.2.0-SNAPSHOT.73824096369020483076384512
mod-user-import1mod-user-import:3.8.02102489612876888128
mod-sender1mod-sender:1.12.02102489612876888128
edge-oai-pmh1edge-oai-pmh:2.9.021512136010241440384512
mod-data-export-worker1mod-data-export-worker:3.2.123072204810242048384512
mod-rtac1mod-rtac:3.6.02102489612876888128
mod-circulation-storage1mod-circulation-storage:17.2.022880259215361814384512
mod-source-record-storage1mod-source-record-storage:5.8.025600500020483500384512
mod-calendar1mod-calendar:3.1.02102489612876888128
mod-event-config1mod-event-config:2.7.02102489612876888128
mod-courses1mod-courses:1.4.102102489612876888128
mod-circulation-item1mod-circulation-item:1.0.021024896128000
mod-inventory3mod-inventory:20.2.022880259210241814384512
mod-email1mod-email:1.17.02102489612876888128
mod-circulation2mod-circulation:24.2.122880259215361814384512
mod-pubsub1mod-pubsub:2.13.02153614401024922384512
mod-di-converter-storage2mod-di-converter-storage:2.2.22102489612876888128
edge-orders1edge-orders:3.0.02102489612876888128
edge-rtac1edge-rtac:2.7.12102489612876888128
mod-users3mod-users:19.3.1220481792128102488256
mod-template-engine1mod-template-engine:1.20.02102489612876888128
mod-patron-blocks1mod-patron-blocks:1.10.021024896102476888128
mod-audit1mod-audit:2.9.02102489612876888128
edge-fqm1edge-fqm:2.0.02102489612876888128
mod-source-record-manager4mod-source-record-manager:3.8.025600500020483500384512
nginx-edge1nginx-edge:2023.06.1421024896128000
mod-quick-marc2mod-quick-marc:5.1.01228821761281664384512
nginx-okapi1nginx-okapi:2023.06.1421024896128000
okapi-b1okapi:5.3.03168414401024922384512
mod-feesfines1mod-feesfines:19.1.02102489612876888128
mod-invoice-storage3mod-invoice-storage:5.8.121872153621024384512
mod-reading-room7mod-reading-room:1.0.0-SNAPSHOT.112102489612876888128
mod-service-interaction1mod-service-interaction:4.0.12204818442561290384512
mod-dcb1mod-dcb:1.1.02102489612876888128
mod-patron1mod-patron:6.1.02102489612876888128
mod-data-export1mod-data-export:5.0.01204815241024000
mod-oai-pmh1mod-oai-pmh:3.13.024096369020483076384512
edge-connexion1edge-connexion:1.2.02102489612876888128
mod-notes1mod-notes:5.2.021024896128952384512
mod-kb-ebsco-java1mod-kb-ebsco-java:4.0.02102489612876888128
mod-login2mod-login:7.11.02204817921024102488256
mod-organizations-storage1mod-organizations-storage:4.7.02102489612870088128
mod-data-export-spring1mod-data-export-spring:3.2.01204818442561536384512
pub-okapi1pub-okapi:2023.06.142102489612876800
mod-eusage-reports1mod-eusage-reports:2.1.12102489612876888128


Methodology/Approach

Files

  • View file
    namePERF_865_FYR_results.xlsx
    height250

Before each fiscal year rollover data should be prepared. Data preparation instructions can be found at the link: Steps for testing process#Fiscalyearrollover

  • Set max_locks_per_transaction parameter in DB cluster and instance configurations from default 64 to 1024 to avoid problems with ordersRollover.
  • Consider using prepared scripts and queries in S3 bucket - Buckets/fse-ptf/FYR/

The difference between Fiscal Year Rollover and Test rollover is that test rollover includes only Finance part of the data. Usual rollover includes also Orders part of the data.

...