Page MenuHomePhabricator

Page restriction table (tracking)
Closed, ResolvedPublic

Description

We are currently using a revision table for access checks. Since there are many revisions & access restrictions need to be checked on each read, this is relatively expensive.

To reduce the cost, we decided to move towards a table that focuses on keeping track of restrictions & page deletions only. This is implemented in https://github.com/wikimedia/restbase/pull/599, and T135278 discusses the process of importing restrictions into Cassandra.

T137576#2377292 brings up another issue that we had not fully considered yet. If rendering of the latest revision fails consistently, then RESTBase will serve an older revision (if available) to clients requesting the latest revision. To fix this, we could consider always storing a 'latest revision' id for each page title, and comparing that to the returned revision.