1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-25 00:02:41 +01:00
phorge-phorge/src/applications/differential
epriestley b8f75f9511 Improve Conduit performance for custom fields
Summary:
Ref T11404. Depends on D16350.

Currently, custom fields can issue "N+1" queries in some cases, so querying 100 revisions issues 100 extra queries.

This affects all `*.search` endpoints for objects with custom fields, and some older endpoints (notably `differential.query`).

This change bulk loads "normal" custom fields, which gets rid of some of these queries. Instead of loading fields for each object, we build a big list of all fields and load them all at once.

The next change will tackle the remaining inefficient edge queries.

Test Plan:
  - Configured a custom field with normal database storage in Differential.
  - Ran `differential.query`, looking at custom fields in results for correctness.
  - Ran `differential.revision.search`, looking at custom fields in results for correctness.
  - In both cases, observed queries drop from `3N` to `2N` (all the "normal" custom field stuff got bulk loaded).

Reviewers: yelirekim, chad

Reviewed By: chad

Maniphest Tasks: T11404

Differential Revision: https://secure.phabricator.com/D16351
2016-07-31 11:15:58 -07:00
..
__tests__ phtize all the things 2015-05-22 21:16:39 +10:00
application Modularize "related objects" menu items in Maniphest 2016-06-22 11:16:16 -07:00
capability Simplify the implementation of PhabricatorPolicyCapability subclasses 2014-07-25 08:25:42 +10:00
command Generate mail command documentation from active commands 2015-04-01 11:51:47 -07:00
conduit Improve Conduit performance for custom fields 2016-07-31 11:15:58 -07:00
config Convert all standard relationship-editing actions to modern Relationships code 2016-06-29 11:24:52 -07:00
constants Update Diffusion UI 2016-03-17 12:05:14 -07:00
controller Rename Event "userPHID" to "hostPHID" 2016-07-13 15:39:55 -07:00
customfield Build that thing someone posted a screenshot of on Facebook 2016-07-01 04:36:24 -07:00
doorkeeper Remove email prefixes from doorkeeper titles 2016-01-28 18:48:28 +00:00
edge Make the revision graph view more flexible 2016-07-01 10:40:49 -07:00
editor Revision substate CLOSED_FROM_ACCEPTED 2016-06-27 20:29:47 +00:00
engine Make diffusion.filecontentquery return file PHIDs instead of raw content 2016-01-08 09:29:16 -08:00
engineextension Convert Differential to new layout 2016-03-12 13:04:21 -08:00
exception Remove an unused class 2015-01-03 09:07:32 +11:00
garbagecollector Provide bin/garbage for interacting with garbage collection 2015-10-02 09:17:24 -07:00
herald Allow Herald to add package reviewers 2016-05-13 17:23:07 -07:00
landing Make "Land Revision" button state consistent, prevent non-accepted lands 2015-10-27 18:51:59 +00:00
lipsum Improve lipsum generation of projects 2015-12-24 09:06:56 -08:00
mail Improve HTML mail rendering of inline patches 2016-05-12 12:13:40 -07:00
management Modularize content sources 2016-03-26 11:59:45 -07:00
parser Convert some loadPreferences() to getUserSetting() 2016-06-02 06:29:20 -07:00
phid Mark PhabricatorPHIDType::getPHIDTypeApplicationClass() as abstract 2015-11-03 06:47:12 +11:00
query Add datasources to allow search revisions by project. 2016-06-13 18:08:44 +00:00
relationships Convert all standard relationship-editing actions to modern Relationships code 2016-06-29 11:24:52 -07:00
remarkup Rename PhutilRemarkupRule subclasses 2014-08-05 00:55:43 +10:00
render Render more info for binary files in Differential 2016-06-06 19:58:39 +00:00
search Convert all "DocumentIndexers" into "FulltextEngines" 2015-12-21 17:25:23 -08:00
storage Build that thing someone posted a screenshot of on Facebook 2016-07-01 04:36:24 -07:00
typeahead Add datasources to allow search revisions by project. 2016-06-13 18:08:44 +00:00
view Fix mobile menu for files in Differential Changesets 2016-07-09 14:25:48 -07:00
DifferentialGetWorkingCopy.php Extend from Phobject 2015-06-15 18:02:27 +10:00