Page MenuHomePhabricator

Conpherence - use some handle pools for Durable column perf
ClosedPublic

Authored by btrahan on May 8 2015, 10:52 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Dec 13, 8:06 AM
Unknown Object (File)
Tue, Dec 10, 10:56 AM
Unknown Object (File)
Wed, Nov 27, 5:34 AM
Unknown Object (File)
Tue, Nov 26, 6:09 PM
Unknown Object (File)
Nov 22 2024, 7:19 AM
Unknown Object (File)
Nov 20 2024, 5:00 AM
Unknown Object (File)
Nov 17 2024, 11:03 PM
Unknown Object (File)
Nov 13 2024, 5:24 PM
Subscribers

Details

Summary

Ref T7708.

This changes things to $viewer->loadHandles where applicable in the durable column render stack. I saw some big wins on my test data like 34 queries => 24 queries on a newly created room as my default thread.

For my test data, the next big perf win would be to change how remarkup rendering works and try to multiload all objects of a certain type in one shot.
e.g. PhabricatorEmbedFileRemarkupRule implements loadObjects as do all classes which inherit from PhabricatorObjectRemarkupRule. This is because PhabricatorObjectRemarkupRule implements its didMarkupText method using loadObjects, and didMarkupText gets called per transaction over in PhabricatorMarkupEngine->process(). Instead, the loadObjects in didMarkupText should be hitting some cache, and we should do a bulk load for all PhabricatorEmbedFileRemarkupRule that had matches earlier in the rendering stack. ...I think.

Test Plan

carefully looked at "Services" tab in dark console and noted fewer queries with changes post changes versus pre changes

Diff Detail

Repository
rP Phabricator
Branch
T7708
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 5872
Build 5892: [Placeholder Plan] Wait for 30 Seconds

Event Timeline

btrahan retitled this revision from to Conpherence - use some handle pools for Durable column perf.
btrahan updated this object.
btrahan edited the test plan for this revision. (Show Details)
btrahan added a reviewer: epriestley.
epriestley edited edge metadata.

I'm going to try to do T7707 soon, too, which should make loading users cheaper and stop a bunch of phabricator_file and phabricator_calendar queries.

This revision is now accepted and ready to land.May 8 2015, 11:18 PM
This revision was automatically updated to reflect the committed changes.