Project

General

Profile

Actions

Idea #13484

closed

Support multiple load-balanced API server nodes

Added by Tom Clegg over 6 years ago. Updated 24 days ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
API
Target version:
-
Start date:
Due date:
Story points:
2.0

Description

Background: the Rails API server application becomes a performance bottleneck during heavy load, e.g., when hundreds of containers/nodes are running. There are some ways to respond to this -- use a bigger/faster machine, adjust logging configs, move postgresql to a different machine -- but it would be much better if the operator could add API server nodes to increase capacity. However, there are some parts of the code base that assume there's only one API server.

In this issue, we remove those barriers, so a site admin can safely add and remove additional API servers and route traffic to them with a load balancer.

(However, multi-API-server installations are not expected to support crunch1 jobs.)

Known/suspected issues:
  • Job validation code assumes git repositories are stored in the local filesystem (todo: confirm this only affects crunch1)
  • Audit log cleanup code uses flock() to avoid wastefully running concurrent cleanup threads (todo: confirm concurrent cleanup threads are harmless, and/or use a database lock instead)
  • Sample DNS update scripts (triggered by "node ping") assume the API host is the DNS server (todo: offer a sample DNS update strategy suitable for multiple nodes).

Related issues

Related to Arvados Epics - Idea #15941: arvados-bootNewActions
Blocked by Arvados - Idea #14873: [API] Update to Rails 5ResolvedLucas Di Pentima03/20/2019Actions
Blocked by Arvados - Idea #13908: [Epic] Replace SLURM for cloud job scheduling/dispatchingResolvedActions
Actions

Also available in: Atom PDF