ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alejandro Fernandez <afernan...@hortonworks.com>
Subject Re: Review Request 43360: Add PK to servicecomponentdesiredstate Table To Support FK Relationships
Date Tue, 09 Feb 2016 17:58:57 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43360/#review118425
-----------------------------------------------------------


Ship it!




Ship It!

- Alejandro Fernandez


On Feb. 9, 2016, 2:41 p.m., Jonathan Hurley wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43360/
> -----------------------------------------------------------
> 
> (Updated Feb. 9, 2016, 2:41 p.m.)
> 
> 
> Review request for Ambari, Dmitro Lisnichenko and Nate Cole.
> 
> 
> Bugs: AMBARI-14972
>     https://issues.apache.org/jira/browse/AMBARI-14972
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> The {{servicecomponentdesiredstate}} table currently uses a compound PK based off of
the cluster ID, service name, 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 {{servicecomponentdesiredstate}} table would now need
knowledge of cluster/service/component 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.
> 
> We should change this table 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
> 
> This change is to enable new tables, such as the patch history table, to be able to reference
a component without duplicating all of the existing information in {{servicecomponentdesiredstate}}
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentDesiredStateDAO.java
341d1fd 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java
b57a467 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java
f1af9b0 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java
bda2543 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntityPK.java
d56e555 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java
7e1dd1d 
>   ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
bfb6214 
>   ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java
b00b0e8 
>   ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
91de82a 
>   ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog200.java
70b8f9f 
>   ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java
faf4b96 
>   ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql e1e2813 
>   ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 46b1983 
>   ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql c320720 
>   ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql e6e6103 
>   ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql 56d0947 
>   ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 542b815 
>   ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql 885e422 
>   ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
ddab65d 
>   ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog170Test.java
6bbcab7 
>   ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog200Test.java
8ff23f8 
>   ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java
83018a2 
>   ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalogHelper.java
4c48972 
> 
> Diff: https://reviews.apache.org/r/43360/diff/
> 
> 
> Testing
> -------
> 
> mvn clean test
> 
> Tests run: 3827, Failures: 0, Errors: 0, Skipped: 31
> 
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 30:19 min
> [INFO] Finished at: 2016-02-08T23:23:05-05:00
> [INFO] Final Memory: 50M/727M
> [INFO] ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Jonathan Hurley
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message