Sprint boards load slowly and the burndown chart is rendering is pretty slow (~10 seconds to open a graph).
Not a blocker, but it would be nice if they could load faster.
Sprint boards load slowly and the burndown chart is rendering is pretty slow (~10 seconds to open a graph).
Not a blocker, but it would be nice if they could load faster.
Subject | Repo | Branch | Lines +/- | |
---|---|---|---|---|
DataView Performance enhancements | phabricator/extensions/Sprint | master | +73 -56 |
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Resolved | None | T78679 Sprint projects load slowly | |||
Resolved | • chasemp | T78243 Phabricator upgrade on 2015-01-14 | |||
Resolved | • chasemp | T77976 phabricator - don't run as root |
I agree that the load time for the burndown view is unacceptable.
The problem is directly related to LiskDAO and this query "SELECT x.objectPHID, x.oldValue, x.newValue, x.dateCreated FROM maniphest_transaction x WHERE transactionType = 'core:customfield' ORDER BY x.dateCreated ASC". This is a full table scan and is executed 3 times on the burndown view page load. The number of transactions in maniphest transaction is too large to be doing this kind of query.
The answer to this is directly relates to using Facts to store transaction data for Sprint. T78127 is the blocker here.
One other possibility is to add an index to the transactionType column in phabricator_maniphest.maniphest_transaction.
CREATE INDEX key_type ON phabricator_maniphest.maniphest_transaction (transactionType);
I may propose this as an upstream change, because transaction grouping is necessary for any kind of report about maniphest.
https://secure.phabricator.com/T6771 created. This could manually be done on production, though not as readily as if it were released as a patch and done with ./storage upgrade
See patches here:
https://gerrit.wikimedia.org/r/#/c/180564/
https://gerrit.wikimedia.org/r/#/c/180673/
I am quite sure that the performance will improve with 0.6.1.8. All of the table scans have been removed. The transaction type lookup on maniphest transactions is only necessary for the SprintFactsDaemon aggregator now. Upstream may still implement the index, but I have no idea when.
@Christopher, you should find a way to inject your own personal performance to the Sprint app. You're fast, man!
Change 180774 had a related patch set uploaded (by Christopher Johnson (WMDE)):
DataView Performance enhancements
Change 180774 merged by Christopher Johnson (WMDE):
DataView Performance enhancements
I created "Collaboration-Team-Sprint-2014-12-17", here's its Burndown view. Its Sprint board was very slow to load, and after adding about 20 tasks to the project it gets timeouts:
Request aborted by debug time limit after 30 seconds. STACK TRACE api.php:32 PhabricatorStartup->onDebugTick() SprintBoardViewController.php:274 celerity_generate_unique_node_id() AphrontController.php:33 SprintBoardViewController->processRequest() index.php:103 AphrontController->handleRequest()
That sounds like an extreme example of this bug so I'm not filing a separate task. Some of the other boards at https://phabricator.wikimedia.org/sprint/ aren't quite so bad, so perhaps the Collaboration-Team is doing it wrong. E.g. none of our tasks have story points yet.
Good luck fixing the bug, thanks.
Are these fixes deployed? The Sprint-extension managed pages are still extremely slow or time-out altogether.
We are still ironing the process for deploying new versions of the Sprint extension, and right now I'm not sure whether this task should be blocked by T78243: Phabricator upgrade on 2015-01-14. CCing @chasemp.
It seems better, but §Collaboration-Team-Sprint-2014-12-17 is still very slow or I get a timeout. Thelatest timeout isn't in celerity_generate_unique_node_id(), now:
Request aborted by debug time limit after 30 seconds. STACK TRACE AphrontBaseMySQLDatabaseConnection.php:146 PhabricatorStartup->onDebugTick() queryfx.php:17 AphrontBaseMySQLDatabaseConnection->selectAllResults() SprintQuery.php:137 queryfx_all() SprintQuery.php:73 SprintQuery->getXactionData() SprintBoardTaskCard.php:65 SprintQuery->getPointsTransactions() SprintBoardViewController.php:282 SprintBoardTaskCard->getItem() AphrontController.php:33 SprintBoardViewController->processRequest() index.php:103 AphrontController->handleRequest()
(The Collaboration team may remove the '§' from the name to make the board usable.)
This is definitely coming up as a pretty big challenge for Fundraising... is there any news on when the fix might go out? Thanks!
Thanks @Aklapper
Also, this happened today:
Request aborted by debug time limit after 30 seconds. STACK TRACE AphrontBaseMySQLDatabaseConnection.php:168 PhabricatorStartup->onDebugTick() queryfx.php:6 AphrontBaseMySQLDatabaseConnection->executeRawQuery() -:- queryfx() queryfx.php:16 call_user_func_array() SprintQuery.php:137 queryfx_all() SprintQuery.php:73 SprintQuery->getXactionData() SprintBoardTaskCard.php:65 SprintQuery->getPointsTransactions() SprintBoardViewController.php:282 SprintBoardTaskCard->getItem() AphrontController.php:33 SprintBoardViewController->processRequest() index.php:103 AphrontController->handleRequest()
yes, 0.6.2.7 contains the fixes. You could run a query plan analysis from
dark console on production and compare it to phab08.eqiad.wmflabs to
confirm.
Thanks @Christopher. side note, are you on irc at all?
Ran into an error upgrading to the tag release/2015-01-08/1
I think this is saying "We run through and look for a DB for every application and this application has none....oh no!" Which I believe is ok as we aren't using a dedicated DB, but if you could let me know I won't upgrade tomorrow without confirmation this is ignorable (that is if I can get to that point at all).
FYI, https://phab-01.wmflabs.org/ should have upgraded: phab/arc/libphutil/sprint app/ security extension and I am trying to run through things now.
We ran through a bunch of sprint extension functionality and logic and I believe this is indeed benign. It would still be good @Christopher if you could confirm.