1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-11 01:12:41 +01:00
phorge-phorge/src/applications/diffusion
epriestley a0262c0b4f Remove tokenizer.ondemand, and always load on demand
Summary:
Ref T4420. Tokenizers currently operate in "preload" or "ondemand" modes. In the former mode, which is default, they'll try to load the entire result list when a page loads.

The theory here was that this would slightly improve the experience for small installs, and once they got big enough they could switch to "ondemand". In practice, several issues have arisen:

  - We generally don't have a good mechanism for telling installs that they should tweak perf config -- `metamta.send-immediately` is the canonical example here. Some large installs are probably affected negatively by not knowing to change this setting, and having settings like this is generally annoying.
  - We have way way too much config now.
  - With the advent of ApplicationSearch, pages like Maniphest make many redundant loads to prefill sources like projects. Most of the time, this data is not used. It's far simpler to switch everything to ondemand than try to deal with this, and dealing with this would mean creating two very complex divergent pathways in the codebase for a mostly theoretical performance benefit which only impacts tiny installs.
  - We've been using `tokenizer.ondemand` forever on `secure.phabricator.com` since we have many thousands of user accounts, and it doesn't seem sluggish and works properly.

Removing this config is an easy fix which makes the codebase simpler.

I've retained the ability to use preloaded sources, since they may make sense in some cases (in at least one case -- task priorities -- adding a static source pathway might make sense), and they're part of Javelin itself. However, the code will no longer ever go down that pathway.

Test Plan: Used `secure.phabricator.com` for years with this setting enabled.

Reviewers: btrahan, chad

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T4420

Differential Revision: https://secure.phabricator.com/D8232
2014-02-14 10:24:40 -08:00
..
application Add a Diffusion repository remarkup rule 2013-12-31 11:08:08 -08:00
capability Add global "push" policy to Repositories 2013-10-29 15:32:40 -07:00
conduit Return "uri" field in diffusion.querycommits 2014-02-08 16:32:20 -08:00
config Specify an ssh port for Diffusion when running against the grain 2013-12-11 12:11:13 -08:00
controller Remove tokenizer.ondemand, and always load on demand 2014-02-14 10:24:40 -08:00
data Remove DiffusionBranchInformation in favor of DiffusionRepositoryRef 2014-01-17 16:10:56 -08:00
doorkeeper Remove loadMemberPHIDs from PhabricatorProject 2013-10-06 17:07:08 -07:00
engine Apply "enormous changes" rules to pre-commit content rules too 2014-01-06 12:12:30 -08:00
events Tie application event listeners to the applications they listen for 2013-10-21 17:00:21 -07:00
exception Reject dangerous changes in Git repositories by default 2013-12-03 10:28:39 -08:00
herald Herald - make herald condition of herald rule display better 2014-02-10 14:40:09 -08:00
panel Add a common password blacklist 2014-01-23 14:01:18 -08:00
protocol Fix loop in svnserve workflow for large binaries 2013-12-18 17:48:29 -08:00
query Add diffusion.querycommits and deprecate diffusion.getcommits 2014-01-27 17:14:21 -08:00
remarkup Add a Diffusion repository remarkup rule 2013-12-31 11:08:08 -08:00
request Remove DiffusionBranchInformation in favor of DiffusionRepositoryRef 2014-01-17 16:10:56 -08:00
response Allow Phabricator to serve Mercurial repositories over HTTP 2013-11-06 18:00:42 -08:00
ssh Store pusher remote address and push protocol in PushLog 2013-12-05 11:59:22 -08:00
view Remove DiffusionBranchInformation in favor of DiffusionRepositoryRef 2014-01-17 16:10:56 -08:00
DiffusionLintSaveRunner.php Make most repository reads policy-aware 2013-09-25 16:54:48 -07:00