New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 631876 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 685709
issue 685710
issue 685711



Sign in to add a comment

Datastore caching layer for "luci-config".

Project Member Reported by d...@chromium.org, Jul 27 2016

Issue description

Increasingly, LUCI services depend on the availability of "luci-config" to load and refresh their configurations. If this service goes down, applications may become unable to function once their memcache config expires.

The solution is to add a datastore caching layer for the latest configuration values. This would live in between the proccache/memcache layer and "luci-config" and would retain the last successfully-loaded config in datastore, where it would remain accessible even if the "luci-config" service goes down.
 
Status: Available (was: Untriaged)
Labels: Pri-2
If this is really a Pri-1, find an owner and update the priority.

This is the result of a bulk edit that moved high priority available bugs to a lower priority in an attempt to be more honest with bug filers.

Comment 3 by no...@chromium.org, Jan 26 2017

Owner: d...@chromium.org
Status: Fixed (was: Available)

Comment 4 by d...@chromium.org, Jan 26 2017

Status: Started (was: Fixed)
Not fixed yet :( Needs to be deployed to other luci-config-consuming services. Off the top of my head:
- Milo
- Scheduler
- Dungeon Master

Deployment is easy:
- Add a cron task: https://github.com/luci/luci-go/blob/211540cd92322bcc7bc5e44791ff51ef0f07c5f7/appengine/gaemiddleware/resources.cfg#L10
- Go to /admin/settings/gaeconfig and set "Enable datastore-backed caching" to Enabled (works, but cache fail will fall through) or Strict (works, and any cache fail will be an error).

luci-logdog production is set to "Strict" FWIW.

Comment 5 by d...@chromium.org, Jan 26 2017

Blockedon: 685709

Comment 6 by d...@chromium.org, Jan 26 2017

Blockedon: 685710

Comment 7 by d...@chromium.org, Jan 26 2017

Blockedon: 685711

Comment 8 by d...@chromium.org, Jan 26 2017

There we go.
Scheduler doesn't need it. It calls luci-config from cron already. Adding one more layer of crons and caching will just complicate data flow.

Same for Token Server.

In both cases crons do some postprocessing of configs and store the result in datastore in a form suitable for fast consumption, so even if luci-config cached existed before, I'd still had separate cron to handle configs.

Comment 10 by no...@chromium.org, Mar 29 2017

Status: Fixed (was: Started)
this feature is implemented. Its adoption in concrete apps is outside of the scope

Sign in to add a comment