-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/54743/
-----------------------------------------------------------
(Updated Dec. 15, 2016, 9:55 a.m.)
Review request for Ambari, Attila Doroszlai, Attila Magyar, Jonathan Hurley,
Laszlo Puskas, and Sandor Magyari.
Changes
-------
Fix the value of HOST_COMPONENT_DESIREDSTATE_INDEX.UpgradeCatalog250
Bugs: AMBARI-19164
https://issues.apache.org/jira/browse/AMBARI-19164
Repository: ambari
Description
-------
The ```hostcomponentdesiredstate``` table currently uses a compound PK based
off of the cluster ID, service name, host id and component name. There are
several problems with this approach:
Primary Keys should be data that's not part of the business logic of the system
and not subject to be changed potentially (as strings are).
Other tables referencing the hostcomponentdesiredstate table would now need
knowledge of cluster/service/component/host in order to make the correct FK
association. This leads to extra data being tracked as well as data duplication.
Some databases, such as SQL Server, have problems with the indexing of compound
PKs and may lead to deadlocks when querying and updating concurrently.
This table needs to be changed so that it uses a simple PK for referencing. FK
relationships as they exist today can still be maintained as long as a UNIQUE
constraint is placed on the table. We should:
Add a ```UNIQUE``` constraint to the former PK columns
Add an ```INDEX``` to the former PK columns
Diffs (updated)
-----
ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessor.java
488c01e
ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java
39e8488
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentDesiredStateDAO.java
876b1cf
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java
274a1e0
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntityPK.java
b16d582
ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DbmsHelper.java
1fe65db
ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/GenericDbmsHelper.java
042b4d2
ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java
f9c0eb7
ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
5225598
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java
823fb27
ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql 8cf2c0d
ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 82ce31e
ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql e2c2dd5
ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 4e9a535
ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 0ba7df6
ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql d8cad6f
ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
0cf7f09
ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java
d75d9d0
ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java
5987af3
ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog200Test.java
1513209
ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java
89dd567
Diff: https://reviews.apache.org/r/54743/diff/
Testing
-------
Unit tests:
Results :
Tests run: 4797, Failures: 0, Errors: 0, Skipped: 37
Manual testing:
Tested with creating a new cluster. Also tested Ambari upgrade from 2.4.2 to 2.5
Thanks,
Sebastian Toader