Page MenuHomePhabricator
Feed Advanced Search

Apr 15 2020

epriestley closed T13507: Compress Conduit client requests as Resolved.

One possible improvement remains here: in streaming mode, HTTPSFuture will not "Accept-Encoding: gzip" and can not inflate responses. Today, this only applies to arc download.

Apr 15 2020, 6:58 PM · Performance, Conduit
epriestley added a revision to T13507: Compress Conduit client requests: D21125: Compress file downloads if the client sends "Accept-Encoding: gzip" and we guess the file might compress alright.
Apr 15 2020, 6:35 PM · Performance, Conduit
epriestley added a revision to T13507: Compress Conduit client requests: D21122: Disable automatic decoding of "Content-Encoding" responses during "Accept-Encoding" setup test.
Apr 15 2020, 12:28 PM · Performance, Conduit
epriestley added a revision to T13507: Compress Conduit client requests: D21121: Allow HTTPFuture callers to disable processing of "Content-Encoding" response headers.
Apr 15 2020, 12:16 PM · Performance, Conduit

Apr 14 2020

epriestley added a comment to T13507: Compress Conduit client requests.

There's also one minor related concern in PHI1638 that I want to take care of here, since it's adjacent.

Apr 14 2020, 11:52 PM · Performance, Conduit
epriestley added a revision to T13507: Compress Conduit client requests: D21120: In Conduit responses, assert that Phabricator supports a "gzip" capability.
Apr 14 2020, 11:47 PM · Performance, Conduit
epriestley added a revision to T13507: Compress Conduit client requests: D21119: If the Conduit server asserts it has the "gzip" capability, compress requests.
Apr 14 2020, 11:45 PM · Performance, Conduit
epriestley added a revision to T13507: Compress Conduit client requests: D21118: If the Conduit client supports gzip, make calls with "Accept-Encoding: gzip".
Apr 14 2020, 11:21 PM · Performance, Conduit
epriestley added a revision to T13507: Compress Conduit client requests: D21117: In "phutil_loggable_string()", encode every byte above 0x7F.
Apr 14 2020, 9:52 PM · Performance, Conduit
epriestley added a comment to T13507: Compress Conduit client requests.

In fairness, "SetInputFilter DEFLATE" is documented as uniquely opinionated, if you catch this box and read between the lines a little bit:

Apr 14 2020, 9:45 PM · Performance, Conduit
epriestley added a comment to T13507: Compress Conduit client requests.

A grand aventure in PHI1679 led to identifying the Apache "SetInputFilter DEFLATE" directive as a problem with implementing compression.

Apr 14 2020, 9:40 PM · Performance, Conduit
epriestley added a revision to T13507: Compress Conduit client requests: D21116: Add a setup warning to detect "SetInputFilter DEFLATE" and other "Content-Encoding" request mangling.
Apr 14 2020, 9:25 PM · Performance, Conduit

Apr 11 2020

epriestley closed T11968: Decide the fate of FutureGraph as Resolved.

"FutureGraph" is dead. Long live "HardpointEngine".

Apr 11 2020, 2:41 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley closed T11968: Decide the fate of FutureGraph, a subtask of T11954: Improve performance of Arcanist/Conduit/Diffusion, primarily through better caching, as Resolved.
Apr 11 2020, 2:41 PM · Performance, Diffusion, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21083: Remove "RefQuery" and all "HardpointLoader" code.
Apr 11 2020, 1:44 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21082: Reroute all RefQuery callers to HardpointEngine.
Apr 11 2020, 1:40 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Apr 10 2020

epriestley added a revision to T11968: Decide the fate of FutureGraph: D21080: Bring "pro" browse queries from modern hardpoint code.
Apr 10 2020, 2:51 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21079: Bring a "pro" WorkingCopyState ref to "master".
Apr 10 2020, 1:06 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a comment to T11968: Decide the fate of FutureGraph.

Generators can't "return" until PHP 7:

Apr 10 2020, 11:43 AM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21078: Introduce "arc inspect" and some of the new ref/hardpoint classes.
Apr 10 2020, 11:39 AM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Apr 9 2020

epriestley added a revision to T13507: Compress Conduit client requests: D21077: Remove the (hopefully) obsolete "post_max_size" check during startup.
Apr 9 2020, 8:27 PM · Performance, Conduit
epriestley added a comment to T13507: Compress Conduit client requests.

PHP has a setting called post_max_size. If a POST request is larger than this size, PHP does not populate $_POST or $_FILES.

Apr 9 2020, 8:22 PM · Performance, Conduit

Apr 8 2020

epriestley added a revision to T11968: Decide the fate of FutureGraph: D21075: Rename "getWorkingCopy()" to "getWorkingCopyIdentity()" in Arcanist.
Apr 8 2020, 7:37 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21074: Trivially update "arc branch/feature" and "arc browse" for Toolsets.
Apr 8 2020, 7:29 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T13507: Compress Conduit client requests: D21073: Compress requests from the Conduit client to Phabricator.
Apr 8 2020, 4:21 PM · Performance, Conduit
epriestley claimed T13507: Compress Conduit client requests.
Apr 8 2020, 3:58 PM · Performance, Conduit
epriestley triaged T13507: Compress Conduit client requests as Normal priority.
Apr 8 2020, 3:58 PM · Performance, Conduit
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21072: Remove onboard future bulk-resolution from ConduitEngine.
Apr 8 2020, 3:55 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21071: Add new "Hardpoint" classes to support request parallelization.
Apr 8 2020, 3:47 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21070: Update the "WorkingCopy" API and create a fallback "Filesystem" working copy.
Apr 8 2020, 3:35 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a comment to T11968: Decide the fate of FutureGraph.

XHPAST currently can't build an AST for $result = yield ..., even though this is a valid construct. This is probably a straightforward fix.

Apr 8 2020, 1:27 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Apr 5 2020

epriestley added a revision to T11968: Decide the fate of FutureGraph: D21058: Move Phage to FuturePool.
Apr 5 2020, 12:50 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Apr 3 2020

epriestley added a revision to T11968: Decide the fate of FutureGraph: D21054: Update some Phabricator behaviors for changes to Futures.
Apr 3 2020, 7:03 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21053: Introduce "FuturePool" to make it easier to manage an ongoing pool of futures.
Apr 3 2020, 6:56 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a comment to T11968: Decide the fate of FutureGraph.

XHPAST currently can't build an AST for $result = yield ..., even though this is a valid construct. This is probably a straightforward fix.

Apr 3 2020, 2:38 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Apr 1 2020

epriestley added a revision to T11968: Decide the fate of FutureGraph: D21046: Fix two issues with Future key selection inside FutureIterator.
Apr 1 2020, 5:33 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Feb 28 2020

epriestley added a comment to T11968: Decide the fate of FutureGraph.

I have some code which runs and looks plausible (i.e., not covered in piles of callback garbage), at least:

Feb 28 2020, 4:58 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Feb 27 2020

epriestley added a comment to T11968: Decide the fate of FutureGraph.

Here's an actual example of loadHardpoints($objects, $hardpoint):

Feb 27 2020, 5:21 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a comment to T11968: Decide the fate of FutureGraph.

In the specific case of the Hardpoints, we currently often have code which loads objects but doesn't do anything with them. For example, most Query classes use didFilterResults() to fill things-that-sure-look-like-hardpoints, but few do anything with the results.

Feb 27 2020, 3:30 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21038: Integrate "ServiceProfiler" into the base "Future".
Feb 27 2020, 2:53 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21036: Make "FutureIterator" queue management more formal.
Feb 27 2020, 2:13 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21035: Make "exception" on Future a private property.
Feb 27 2020, 12:17 AM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Feb 26 2020

epriestley added a revision to T11968: Decide the fate of FutureGraph: D21034: Make the "result" property on Future private.
Feb 26 2020, 8:30 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21033: Resolve all futures inside FutureIterator.
Feb 26 2020, 7:34 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21032: Remove the "preg_quote()" lint rule and update the "__CLASS__" lint rule.
Feb 26 2020, 4:59 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a revision to T11968: Decide the fate of FutureGraph: D21031: Remove the "timeout" parameter from "Future->resolve()".
Feb 26 2020, 4:39 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a comment to T11968: Decide the fate of FutureGraph.

The core idea in D5104 + D5105 is that $future->resolve() and id(new FutureIterator(array($future)))->next() (like, roughly) execute meaningfully different code paths.

Feb 26 2020, 4:29 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a comment to T11968: Decide the fate of FutureGraph.

Somewhere in experimental or wilds, I introduced ArcanistConduitEngine. This has some weird fake future stuff going on, so this is probably now ripe.

Feb 26 2020, 4:14 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Feb 13 2020

epriestley added a comment to T11968: Decide the fate of FutureGraph.

Probably require PHP 5.4 regardless.

Feb 13 2020, 1:29 PM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist
epriestley added a comment to T11968: Decide the fate of FutureGraph.

A problem in moving forward here is that we ultimately do very little complex data access in Phabricator, and what complex data access we do perform can often be faked. We likely have more use cases in Arcanist and provisioning code: API calls are slower, workflows are more parallel/interactive, and we can't just fake it all with AJAX.

Feb 13 2020, 3:59 AM · Diffusion, Performance, Conduit, Infrastructure, Restricted Project, Arcanist

Feb 5 2020

epriestley added a revision to T10635: Loading differential revision slow when lots of unit test messages exist: D20970: In summary interfaces, don't render very large inline remarkup details for unit test messages.
Feb 5 2020, 3:45 PM · Restricted Project, Haskell.org, Harbormaster, Performance
epriestley triaged T10635: Loading differential revision slow when lots of unit test messages exist as Wishlist priority.
Feb 5 2020, 3:41 PM · Restricted Project, Haskell.org, Harbormaster, Performance

Feb 4 2020

epriestley added a comment to T10635: Loading differential revision slow when lots of unit test messages exist.

See also PHI1628, which reports that a 4MB blob of test details is slow to render.

Feb 4 2020, 8:48 PM · Restricted Project, Haskell.org, Harbormaster, Performance

Apr 15 2019

epriestley closed T12749: Performance test and tune DiffusionHistoryListView as Wontfix.

There's no specific performance/scale issue here, so waiting until one arises or this pops up on a profile.

Apr 15 2019, 3:30 PM · Performance, Diffusion

Aug 27 2018

epriestley triaged T13191: Add date ranges to Multimeter as Low priority.
Aug 27 2018, 5:26 PM · Performance

Apr 4 2018

epriestley closed T8612: Improve handling of "large" changesets as Wontfix.

See T13110 for some followups.

Apr 4 2018, 1:47 PM · Restricted Project, Performance, Differential

Mar 17 2018

sshannin added a comment to T13106: Task detail pages are issuing an egregious number of queries?.

For what it's worth, after spot-checking a few tasks on my install, all seem to query the same policy 10ish times in succession near the end of the load.

Mar 17 2018, 5:35 PM · Performance

Mar 15 2018

epriestley closed T13106: Task detail pages are issuing an egregious number of queries? as Resolved.

Some of this got fixed, some ended up in T13081.

Mar 15 2018, 3:37 AM · Performance

Mar 14 2018

epriestley added a comment to T13106: Task detail pages are issuing an egregious number of queries?.

With that stuff, we're down from 473 to 227 on T9950. That's still awful, but not quite as ridiculous.

Mar 14 2018, 9:24 PM · Performance
epriestley closed T10078: Implement global readthrough cache pools as Resolved.

This was largely tackled above.

Mar 14 2018, 9:17 PM · Restricted Project, Infrastructure, Performance
epriestley added a revision to T13106: Task detail pages are issuing an egregious number of queries?: D19226: When loading project membership to evaluate the "Subscribers" policy, use the ominipotent viewer.
Mar 14 2018, 7:49 PM · Performance
epriestley added a comment to T13106: Task detail pages are issuing an egregious number of queries?.

I'm having some difficulty merging (5) and (6), or either of them into (2). My local test also has a lot of nonsense going on that a real install shouldn't. I'm going to land what I've got so far and see how much progress we've made here.

Mar 14 2018, 7:33 PM · Performance
epriestley added a revision to T13106: Task detail pages are issuing an egregious number of queries?: D19225: Don't make an expensive, unused call to test if a viewer can reassign a task.
Mar 14 2018, 7:14 PM · Performance
epriestley added a comment to T13106: Task detail pages are issuing an egregious number of queries?.

Queries are down to 139 for me locally.

Mar 14 2018, 7:10 PM · Performance
epriestley added a revision to T13106: Task detail pages are issuing an egregious number of queries?: D19224: Skip loading file transform sources when we know a file is not transformed.
Mar 14 2018, 6:57 PM · Performance
epriestley added a comment to T13106: Task detail pages are issuing an egregious number of queries?.

Queries are now down from 151 to 145 for me locally.

Mar 14 2018, 6:48 PM · Performance
epriestley added a revision to T13106: Task detail pages are issuing an egregious number of queries?: D19223: Skip loading attached objects for files when we know the file is visible.
Mar 14 2018, 6:47 PM · Performance
epriestley added a comment to T13106: Task detail pages are issuing an egregious number of queries?.

Next problem:

Mar 14 2018, 6:34 PM · Performance
epriestley added a comment to T13106: Task detail pages are issuing an egregious number of queries?.

For my local test task (T369), the initial page query load was 199 queries. After D19222 we're down slightly to 151 queries.

Mar 14 2018, 6:26 PM · Performance
epriestley added a revision to T13106: Task detail pages are issuing an egregious number of queries?: D19222: Bulk load builtin project default profile images.
Mar 14 2018, 6:25 PM · Performance
epriestley added a revision to T13106: Task detail pages are issuing an egregious number of queries?: D19221: In "Analyze Query Plans" mode, collect service call stack traces in DarkConsole.
Mar 14 2018, 6:08 PM · Performance
epriestley updated the task description for T13106: Task detail pages are issuing an egregious number of queries?.
Mar 14 2018, 6:05 PM · Performance
epriestley added a revision to T13106: Task detail pages are issuing an egregious number of queries?: D19220: Add a ServiceProfiler mode to collect traces.
Mar 14 2018, 5:55 PM · Performance
epriestley added a comment to T13106: Task detail pages are issuing an egregious number of queries?.

Some of this is:

Mar 14 2018, 5:53 PM · Performance
epriestley updated the task description for T13106: Task detail pages are issuing an egregious number of queries?.
Mar 14 2018, 5:31 PM · Performance
epriestley triaged T13106: Task detail pages are issuing an egregious number of queries? as Normal priority.
Mar 14 2018, 5:17 PM · Performance

Mar 8 2018

epriestley closed T5258: Memes use older image transform code without modern error handling, a subtask of T7707: Implement a read-through cache layer, as Resolved.
Mar 8 2018, 7:09 PM · Performance

Feb 21 2018

epriestley moved T10635: Loading differential revision slow when lots of unit test messages exist from Backlog to Logs / Unit Logs on the Harbormaster board.
Feb 21 2018, 2:40 PM · Restricted Project, Haskell.org, Harbormaster, Performance

Nov 10 2017

epriestley closed T12680: Convert Audit to use UNION to improve the performance of the dashboard bucketing query as Resolved.

This doesn't seem to have caused any issues.

Nov 10 2017, 3:20 PM · Customer Impact, Restricted Project, Performance, Audit

Oct 23 2017

epriestley added a revision to T12680: Convert Audit to use UNION to improve the performance of the dashboard bucketing query: D18727: Simplify UNION/ORDER query construction in DifferentialRevisionQuery.
Oct 23 2017, 10:01 PM · Customer Impact, Restricted Project, Performance, Audit

Oct 20 2017

epriestley added a revision to T12680: Convert Audit to use UNION to improve the performance of the dashboard bucketing query: D18722: Rewrite CommitQuery to use UNION for performance.
Oct 20 2017, 10:42 PM · Customer Impact, Restricted Project, Performance, Audit

Oct 6 2017

epriestley added a comment to T11786: Loop/degenerate behavior in RepositoryGraphCache.

PHI109 captured a slightly more illuminating error. D18692 has some discussion.

Oct 6 2017, 7:09 PM · Performance, Diffusion
epriestley added a revision to T11786: Loop/degenerate behavior in RepositoryGraphCache: D18692: Bail out of PhabricatorRepositoryGraphCache more aggressively after cache fills.
Oct 6 2017, 7:08 PM · Performance, Diffusion

Jul 9 2017

chad removed the image for Performance.
Jul 9 2017, 7:40 PM

Jun 11 2017

chad added a parent task for T12749: Performance test and tune DiffusionHistoryListView: T12824: Redesign Diffusion.
Jun 11 2017, 7:15 PM · Performance, Diffusion

Jun 7 2017

chad moved T12749: Performance test and tune DiffusionHistoryListView from Backlog to UI Refresh on the Diffusion board.
Jun 7 2017, 2:55 AM · Performance, Diffusion

May 26 2017

chad added a comment to T12749: Performance test and tune DiffusionHistoryListView.

Yeah I just didn't want to add the (...) view to DiffusionHistory if it's going to slow those pages down. I'd just leave the feature out.

May 26 2017, 4:39 PM · Performance, Diffusion
epriestley added a comment to T12749: Performance test and tune DiffusionHistoryListView.

I think using a Pool (like HandlePool) is not too much more work (at least, if I'm implementing it) than AJAX it and will be useful in more cases. I believe we need the Pool implementation regardless, sooner or later.

May 26 2017, 4:34 PM · Performance, Diffusion
chad updated subscribers of T12749: Performance test and tune DiffusionHistoryListView.

@epriestley maybe this should just AJAX?

May 26 2017, 4:28 PM · Performance, Diffusion

May 24 2017

chad created T12749: Performance test and tune DiffusionHistoryListView.
May 24 2017, 5:09 PM · Performance, Diffusion

May 5 2017

epriestley created T12680: Convert Audit to use UNION to improve the performance of the dashboard bucketing query.
May 5 2017, 6:30 PM · Customer Impact, Restricted Project, Performance, Audit

Apr 12 2017

epriestley removed a project from T11773: Improve behaviors for "overheated" policy queries: Phacility.
Apr 12 2017, 3:34 PM · Performance

Feb 27 2017

epriestley closed T12319: Investigate an Owners-related performance issue on revision detail pages as Resolved.

Calling this resolved since the page is now tolerably bad (~5s) which more or less pulls this out of the realm of critical scaling issues.

Feb 27 2017, 9:46 PM · Owners, Differential, Performance
epriestley added a revision to T12319: Investigate an Owners-related performance issue on revision detail pages: D17427: Filter archived packages out of the "controlling packages" query earlier.
Feb 27 2017, 8:11 PM · Owners, Differential, Performance
epriestley added a comment to T12319: Investigate an Owners-related performance issue on revision detail pages.

@jmeador, I believe this is now resolved at HEAD. Let us know if you're still seeing issues after upgrading?

Feb 27 2017, 5:13 PM · Owners, Differential, Performance
epriestley added a revision to T12319: Investigate an Owners-related performance issue on revision detail pages: D17424: When computing revision ownership, cache some intermediate results for performance.
Feb 27 2017, 4:05 PM · Owners, Differential, Performance
epriestley added a comment to T12319: Investigate an Owners-related performance issue on revision detail pages.

After implementing PHP7 support for XHProf and updating Lipsum, I used bin/lipsum to generate 4,000 packages owning 150,000 paths. I think I have an approximately-reasonable reproduction case locally now, which generates this profile (6.5s for a change affecting about 100 files):

Feb 27 2017, 3:47 PM · Owners, Differential, Performance
epriestley added a revision to T12319: Investigate an Owners-related performance issue on revision detail pages: D17423: Add an owners package generator for Lipsum.
Feb 27 2017, 3:39 PM · Owners, Differential, Performance
epriestley added a revision to T12319: Investigate an Owners-related performance issue on revision detail pages: D17422: Add a lipsum generator for Badges.
Feb 27 2017, 1:18 PM · Owners, Differential, Performance
epriestley added a revision to T12319: Investigate an Owners-related performance issue on revision detail pages: D17421: Add "--force" and "--quickly" flags to `bin/lipsum`.
Feb 27 2017, 1:14 PM · Owners, Differential, Performance