NatLabRockies / NatLabRockies/OpenStudio-server
Scalability: implement distributed locking to safely run multiple web replicas
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 58
- Forks
- 27
- PR merge metrics
- No merged PRs in 30d
Description
Summary
Current deployment guidance keeps web replicas at 1 due to shared file-locking concerns on NFS-backed paths. This limits throughput and page-load stability under concurrency.
Proposed work
- Identify critical sections currently relying on local/NFS locking semantics
- Implement distributed locking (for example, Redis-based lock strategy) for cross-pod correctness
- Isolate mutable temp paths where possible to reduce lock contention
- Add race-condition/idempotency tests for concurrent web workers
Acceptance criteria
- Multi-replica web operation is validated under concurrent user/API load
- No data corruption, duplicate processing, or lock starvation in stress tests
- Documented operational guidance for enabling web replicas > 1 in Helm
Context
openstudio-server-helm now has HPA v2 and scheduling/resilience controls ready to use once app-level lock safety is in place.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No application files or tests are named. Start by tracing the critical sections that rely on local or NFS locking, then review the openstudio-server-helm replica guidance and existing HPA settings. Done means concurrent web-worker tests and stress validation show no corruption, duplicate processing, or starvation, with Helm guidance for enabling more than one replica.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- helm, redis, ruby
- Domain
- backend, devops, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100