-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Summary
Add a performance testing tool to validate concurrent vocabulary imports across multiple OpenEMR sites.
Background
The CLI supports database locking to prevent concurrent imports to the same site. We need a way to test:
- Concurrent imports to different sites work correctly in parallel
- Lock contention behaves as expected when multiple processes target the same site
- Performance characteristics under load
Tasks
- Create Docker Compose configuration for multiple OpenEMR sites
- Build a test harness script that spawns concurrent import processes
- Add metrics collection (timing, memory, success/failure rates)
- Document performance testing procedures
Proposed approach
- Extend
compose.ymlto support multiple sites (e.g.,site1,site2,site3) - Create a
task perf:testcommand that:- Spins up N OpenEMR sites
- Runs concurrent imports with configurable parallelism
- Reports timing and success metrics
- Test scenarios:
- N parallel imports to N different sites (should all succeed)
- N parallel imports to same site (should serialize via locking)
- Mixed workload with varying file sizes
Notes
- Performance tests should not run in CI (too slow/resource-intensive)
- Consider using small test fixtures rather than real vocabulary files
- May want to measure memory usage for large imports
Metadata
Metadata
Assignees
Labels
No labels