> On Feb. 17, 2016, 4:17 p.m., Jonathan Hurley wrote: > > ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java, > > line 111 > > <https://reviews.apache.org/r/43621/diff/1/?file=1251921#file1251921line111> > > > > I'm curious. One of the ways that we can easily remove a lot of the > > caching and nested querying is to actually store the status of stages and > > requests in the database. I don't know why we don't do this today. > > Attempting to find statuses of stages and requests by HRC leads to all of > > these problems. Why not just use events from HRCs to store the correct data > > for its stage and request in the DB and query it directly?
I aggree that this would be a better approach keeping a separate table for these computed entities and update it whenever the source of the computed entity changes. We also could enable entity manager caching for this. However I think this should be a separate jira addressed outside of this hotfix. - Sebastian ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/43621/#review119460 ----------------------------------------------------------- On Feb. 17, 2016, 3:32 p.m., Sebastian Toader wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/43621/ > ----------------------------------------------------------- > > (Updated Feb. 17, 2016, 3:32 p.m.) > > > Review request for Ambari, Jonathan Hurley, Myroslav Papirkovskyy, Sumit > Mohanty, and Sid Wagle. > > > Bugs: AMBARI-15011 > https://issues.apache.org/jira/browse/AMBARI-15011 > > > Repository: ambari > > > Description > ------- > > 1. Created new index on host_role_command table on (status, role) fields as > this table is being queries quite often by status and role > 2. Removed uneccessary querying of ambari server actions by hostname > 3. Cache HostRoleCommandStatusSummaryDTO computed objects using guava cache > 4. The method returning service configs made one call to the database to get > the active service config entities. Then retrieved from database all service > config entities and while building the response it was using the first > collection to determine which reponse item should be marked as > active/inactive. This has been modified to make only one roundtrip to the > database and determine the active flag using plain java code. > > > Diffs > ----- > > > ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java > 91f2d30 > > ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java > d2fe4fc > > ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java > bd5fb5a > > ambari-server/src/main/java/org/apache/ambari/server/serveraction/ServerActionExecutor.java > 20cf5bb > > ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java > d3fdc65 > > ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog222.java > 88b3151 > ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql eded221 > ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 780e81a > ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql d4a1ddb > ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql > 64f2a4e > ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql c557cf6 > ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql adda30c > > ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionScheduler.java > bc4d397 > > ambari-server/src/test/java/org/apache/ambari/server/agent/AgentResourceTest.java > 510e1fb > > ambari-server/src/test/java/org/apache/ambari/server/configuration/ConfigurationTest.java > 1f90813 > > ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java > 862776f > > ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java > 0cdf50a > > ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog222Test.java > aa4090e > > ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java > 2d663d9 > > Diff: https://reviews.apache.org/r/43621/diff/ > > > Testing > ------- > > Manual testing: > > Created a cluster of 3 nodes waited 30 mins with UI running and collected > postgres sql statement stats, than left the cluster running for another 30 > mins wiht UI closed and getting new sql statement stats. Verified that the > number of execution of queries mentioned in the JIRA has decreased. > > Unit tests: > > Total run:884 > Total errors:0 > Total failures:0 > OK > > > Thanks, > > Sebastian Toader > >
