Page MenuHomePhabricator

Staging release of RESTBagOStuff using Kask
Open, Needs TriagePublic

Description

It would be great to have a staging server that uses KaskBagOStuff for its session management.

Event Timeline

Anomie removed a subscriber: Anomie.Apr 30 2019, 1:04 PM
EvanProdromou renamed this task from Staging release of KaskBagOStuff using Kask to Staging release of RESTBagOStuff using Kask.Jun 10 2019, 2:18 PM

So, would the best way to do this be to configure test.wikipedia.org to use RESTBagOStuff and the production Kask service?

How do we get that going?

What happens if we (in repository mediawiki-config):

  1. add kask-session and kask-transition to CommonSettings.php (per T224993)
  2. change the wgSessionCacheType section in InitialiseSettings.php to:
'wgSessionCacheType' => [
	'default' => 'redis_local',  // declared in redis.php
	'wikitech' => 'memcached-pecl',
	'testwiki' => 'kask-transition', // change this to kask-session after the transition is complete
],

(I assume that test.wikipedia.org is "testwiki")

After confirming that much works, we could change testwiki to 'kask-session'. That would take testwiki through the same deployment stages we're planning for all the live wikis.

Change 519432 had a related patch set uploaded (by BPirkle; owner: BPirkle):
[operations/mediawiki-config@master] Add kask session storage configuration. Use only on testwiki,

https://gerrit.wikimedia.org/r/519432

Prospective configuration change pushed for review. Once this is merged and deployed, sessions for testwiki will be stored to both Redis and Kask, and will be continue to be read from Redis. (Other wikis will be unaffected and will continue to use only Redis.) Next steps will be:

  1. confirm sessions are being happily stored to Kask and that logs are clear
  2. wait a sufficient time period so that all testwiki sessions are in Kask ($wgObjectCacheSessionExpiry is currently 3600)
  3. push a config change to:
    1. change testwiki from 'kask-transition' to 'kask-session', thereby removing Redis and putting testwiki sessions solely in Kask
    2. change testwiki $wgObjectCacheSessionExpiry to match the Kask setting (if Kask uses something other than 3600)
  4. confirm sessions are happily functioning and logs are clear

Note: during the transition, testwiki will still be using a TTL ($wgObjectCacheSessionExpiry) value of 3600. The Kask TTL setting must therefore be at least 3600 seconds. If the Kask setting is longer, the transition will still be okay. But we will do more writes to Kask than we would with a longer settings, because MediaWiki will think the sessions need to be rewritten.

[ ... ]
Note: during the transition, testwiki will still be using a TTL ($wgObjectCacheSessionExpiry) value of 3600. The Kask TTL setting must therefore be at least 3600 seconds. If the Kask setting is longer, the transition will still be okay. But we will do more writes to Kask than we would with a longer settings, because MediaWiki will think the sessions need to be rewritten.

I will work on getting the sessionstore cluster reconfigured for a TTL of 3600 (currently set to 86400).

[ ... ]
Note: during the transition, testwiki will still be using a TTL ($wgObjectCacheSessionExpiry) value of 3600. The Kask TTL setting must therefore be at least 3600 seconds. If the Kask setting is longer, the transition will still be okay. But we will do more writes to Kask than we would with a longer settings, because MediaWiki will think the sessions need to be rewritten.

I will work on getting the sessionstore cluster reconfigured for a TTL of 3600 (currently set to 86400).

And this is now done.