Page MenuHomePhabricator

Lazy load references in mobile beta channel
Closed, ResolvedPublic1 Story Points

Description

We will test the existing lazy load functionality in beta (knowingly breaking references for non-JavaScript and grade C browsers in mobile beta) to allow us to gather data around the impact.

We will create a fallback for non-JavaScript users if and only if the results in beta show promise.

  • All blockers merged
  • References enabled in the beta channel
  • It should be possible to enable lazy loading references via a cache varied cookie

Details

Related Gerrit Patches:
mediawiki/extensions/MobileFrontend : masterAllow optin to lazy loaded references via cookie
mediawiki/extensions/MobileFrontend : masterEnable lazy loading of references in beta
operations/mediawiki-config : masterEnable lazy loaded references in beta
operations/puppet : productionSplit mobile text cache for lazy loaded references testing
operations/mediawiki-config : masterEnable lazy loaded references in beta
mediawiki/extensions/MobileFrontend : masterConsolidate and simplify lazy loaded references logic

Related Objects

StatusAssignedTask
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
DeclinedNone
OpenNone
Resolveddr0ptp4kt
DuplicateJhernandez
Duplicatedr0ptp4kt
OpenNone
ResolvedJdlrobson
DeclinedNone
DeclinedNone
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedNone
DeclinedNone

Event Timeline

Jdlrobson set the point value for this task to 1.Mar 12 2016, 12:49 AM
Jdlrobson removed Jdlrobson as the assignee of this task.Mar 15 2016, 12:05 AM
Jdlrobson updated the task description. (Show Details)Apr 13 2016, 2:50 PM
Restricted Application added a subscriber: TerraCodes. · View Herald TranscriptApr 19 2016, 5:11 PM

Change 284592 had a related patch set uploaded (by Jdlrobson):
Consolidate and simplify lazy loaded references logic

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

Change 284593 had a related patch set uploaded (by Bmansurov):
Allow optin to lazy loaded references via cookie

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

Change 284592 merged by jenkins-bot:
Consolidate and simplify lazy loaded references logic

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

Change 284576 had a related patch set uploaded (by Bmansurov):
Split mobile text cache for lazy loaded references testing

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

Change 284734 had a related patch set uploaded (by Bmansurov):
Enable lazy loading of references in beta

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

Two of Jon's patches have been +2'ed. The puppet one and my patch directly above this message need merging though.

BBlack added a subscriber: BBlack.Apr 21 2016, 6:10 PM

So, this is a separate experiment from the lazyloadimages one? I'm confused.

@BBlack yes, it's lazy loading of references.

Hi @BBlack yes there are two things we want to experiment with - lazy loading images and lazy loading references. It's not clear right now whether we will run these experiments in parallel or sequentially.

I'm not sure how costly it can be to split the cache but if it is, we can delay merging the patches till the end of the lazy loading images experiment.

Change 284873 had a related patch set uploaded (by Phuedx):
Add missing mw.popups.selectPopupElements test case

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

Move along. Nothing to see here.

@Jdlrobson: I'm confused about the ordering of the lazyrefs tasks: why enable the experimental feature in production, via MFβ, when we've yet to get preliminary data from static page tests (T132582)?

I'm still a little confused on the timelines and plans for the 2x lazy-load experiments, but just noting here in case it isn't clear: what we ended up doing last time around with the images thing (deploying the cookie functionality to the applayer, then later splitting the cache in varnish) isn't the right way to do things, as it can cause pollution (even if we're not automatically setting the cookie, all it takes is one lone developer trying the cookie out manually through the caches to pollute random articles). The varnish cache split needs to be running in production before any applayer code deploy that can vary the content output on the new cookie value.

I'm still a little confused on the timelines and plans for the 2x lazy-load experiments, but just noting here in case it isn't clear: what we ended up doing last time around with the images thing (deploying the cookie functionality to the applayer, then later splitting the cache in varnish) isn't the right way to do things, as it can cause pollution (even if we're not automatically setting the cookie, all it takes is one lone developer trying the cookie out manually through the caches to pollute random articles). The varnish cache split needs to be running in production before any applayer code deploy that can vary the content output on the new cookie value.

Hi apologies for the confusion.

  • No timelines yet but lazy loading images will happen first.
  • Ideally I'd like to run the lazy loading references experiment in parallel with lazy loaded images due to time constraints but lazy loading images is a more important experiment
  • The patch to introduce the cookie depends on the Varnish change to split the cache which can only be merged with your okay.
  • I think NetSpeed can be removed now ?
  • @BBlack feel free to add something in my calendar. I reckon I can explain all this in 20 mins if that's helpful and I'm not helping with these comments :).

Change 285531 had a related patch set uploaded (by Jdlrobson):
Enable lazy loaded references in beta

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

Change 285531 merged by jenkins-bot:
Enable lazy loaded references in beta

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

Change 285553 had a related patch set uploaded (by Jdlrobson):
Enable lazy loaded references in beta

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

Jdlrobson changed the task status from Open to Stalled.Apr 26 2016, 11:36 PM

Till Thursday. ReferencesApi is not live yet.

Change 284576 merged by BBlack:
Split mobile text cache for lazy loaded references testing

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

Note I've merged the cache split so that one-off manual experiments can run without polluting the cache, but note that in the net there are now 3 cache bins related to these things: lazyimages, lazyrefs, and lazyboth. It would probably confuse testing if we turn on either experiment (as % of clients setting cookie or such) concurrently with the other one.

Change 285553 merged by jenkins-bot:
Enable lazy loaded references in beta

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

Mentioned in SAL [2016-04-29T00:04:16Z] <Dereckson> Previous deployment: [[Gerrit:285553]] Enable lazy loaded references in beta (T129693)

Jdlrobson closed this task as Resolved.Apr 29 2016, 12:34 AM
Jdlrobson claimed this task.
Jdlrobson updated the task description. (Show Details)

Interestingly on fresh large pages the delay between clicking and seeing a reference is long. We should keep an eye on this. @GWicke we may find a rest API service is needed here in future.

I'm gonna keep an eye on what happens to navigation timing over next few weeks.

Change 284734 abandoned by Bmansurov:
Enable lazy loading of references in beta

Reason:
See https://gerrit.wikimedia.org/r/#/c/285553/

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

Change 284593 merged by jenkins-bot:
Allow optin to lazy loaded references via cookie

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