[ 
https://issues.apache.org/jira/browse/AMBARI-19164?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sebastian Toader updated AMBARI-19164:
--------------------------------------
    Status: Patch Available  (was: In Progress)

> Add PK to hostcomponentdesiredstate Table To Support FK Relationships
> ---------------------------------------------------------------------
>
>                 Key: AMBARI-19164
>                 URL: https://issues.apache.org/jira/browse/AMBARI-19164
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-server
>            Reporter: Sebastian Toader
>            Assignee: Sebastian Toader
>            Priority: Critical
>             Fix For: 2.5.0
>
>         Attachments: AMBARI-19164.v1.patch
>
>
> 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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to