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
Proposed approach
- Extend
compose.yml to support multiple sites (e.g., site1, site2, site3)
- Create a
task perf:test command 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
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:
Tasks
Proposed approach
compose.ymlto support multiple sites (e.g.,site1,site2,site3)task perf:testcommand that:Notes