Currently mobile-sections-lead and mobile-sections-remaining are pre-rendered and stored in RESTBase sharing the Parsoid storage model when superseded renders are preserved in the storage for a grace_ttl period of time. This is done in order to be able to quickly serve a matching render of the remaining sections in case the page was edited while the user was reading the lead. However, it seems that the app doesn't actually provide the revision when requesting the remaining sections. Given that and the fact moble-sections are being replaced by PCS endpoints, we can simplify the storage model for MCS content and use a simple key-value semantics. This will greatly simplify the code and save on a lot of IO.
|Resolved||WDoranWMF||T220449 Split RESTBase in two services: storage service and API router/proxy|
|Resolved||mobrovac||T220461 Simplify storage semantics|
|Resolved||Pchelolo||T215960 Simplify MCS storage model|
|Resolved||Pchelolo||T215987 Verify that hit/miss stats in WebRequest are correct|
|Resolved||Eevans||T221031 Create new mobile storage tables|
|Resolved||Eevans||T221530 Drop old mobile-sections keyspaces|
The simplification code has been deployed without issues, and we have populated the new table with dumps for en, de, fr, it, es, pt, pl, ja and ru wikipedias. The last step here is to delete the old, unused keyspaces.