Workflow Tests with RMB-348 Implementation
Overview
RMB-348 implements directing read and write database calls to the read and write nodes of the database, respectively. This is a report for a series of Check-in-check-out test and Data Import tests against the pre-Morning-glory release that has RMB-348 implemented in
- mod-inventory-storage
- mod-circulation-storage
- mod-permissions
- mod-users
- mod-source-record-storage
- mod-source-record-manager
Software Versions
Snapshot versions of modules on 06.08.2022
- RMB v35.0.0-SNAPSHOT
- mod-inventory-storage (MG-SNAPSHOT)
- mod-circulation-storage (MG-SNAPSHOT)
- mod-permissions (MG-SNAPSHOT)
- mod-users (MG-SNAPSHOT)
- mod-source-record-storage (MG-SNAPSHOT)
- mod-source-record-manager (MG-SNAPSHOT)
Summary
Limited testing of a few workflows exercising several modules that has the RMB-348 change shows promising signs that performance could improve and resource utilization could improve (if there are idle read-only DB instances deployed that are currently doing nothing).
- Check-in check-out (CICO) tests show that a healthy mix of DB activities were directed properly to the read nodes. Performance seemed to improve by at least 15%. No database or storage module memory leaks observed.
- This RMB change currently does not have any positive impact on Data Import as the read-only DB node is not used much compared to the write node. An action item is to examine the RMB calls that DI use (throughout its modules: mod-inventory-storage, mod-srs, mod-srm) to see if these calls are readonly and therefore should use one of the new methods created in RMB.
- RTAC shows some sign of DB usage on the read node, but the majority of the traffics is still on the write node because a RMB stream method isn't converted to call the DB read instance. There is a new call implemented in RMB that RTAC in mod-inventory-storage could call to take advantage of the read DB instance.
- Further work is necessary to understand why the RMB changes upsets the failover that's managed by AWS.
Test Results
CHECK-IN/CHECK-OUT
Response Times of 30-minutes Tests
Average (seconds) | 50th %tile (seconds) | 75th %tile (seconds) | 95th %tile (seconds) | |||||
Check-in | Check-out | Check-in | Check-out | Check-in | Check-out | Check-in | Check-out | |
1 user | 0.614 | 0.959 | 0.589 | 0.925 | 0.639 | 1.014 | 0.797 | 1.178 |
5 users | 0.512 | 0.820 | 0.499 | 0.795 | 0.537 | 0.852 | 0.619 | 0.979 |
8 users | 0.502 | 0.798 | 0.487 | 0.782 | 0.529 | 0.834 | 0.606 | 0.939 |
20 users | 0.509 | 0.796 | 0.492 | 0.773 | 0.536 | 0.829 | 0.633 | 0.939 |
Comparisons to Last Release (Lotus)
As you can see, all of the response times improves by 15%-25%.