Ring reloads cause ballooning memory
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Proxy servers need to have all of the rings loaded in their heads to be useful, so we do that as part of the app initialization: https:/
When we load them, we do it *off each storage policy*, meaning the ring reference is stuffed in the swift.common.
We also call loadapp before forking off any workers to sanity-check configs: https:/
Ring files periodically check whether the on-disk data has changed, and reload it if appropriate: https:/
Note that many background daemons work around this by effectively restarting themselves whenever they see a ring change, and backend servers avoid it by never loading up a ring. If we ever want to change that (there's been talk about having the container-server respond with its ring version as part of sharding leader-election, for example), we'll want to keep this in mind.
Changed in swift: | |
status: | New → Confirmed |