[ 
https://issues.apache.org/jira/browse/KYLIN-1883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15374760#comment-15374760
 ] 

Zhong Yanghong commented on KYLIN-1883:
---------------------------------------

The better way should be like this:
1. Firstly create a toDeleteSet;
2. Then create a referenceSet;
3. Remove the referenceSet from the toDeleteSet.

> Consensus Problem when running the tool, MetadataCleanupJob
> -----------------------------------------------------------
>
>                 Key: KYLIN-1883
>                 URL: https://issues.apache.org/jira/browse/KYLIN-1883
>             Project: Kylin
>          Issue Type: Bug
>            Reporter: Zhong Yanghong
>            Assignee: Zhong Yanghong
>
> When do the cleanup, current strategy, to firstly create an active 
> referenceSet and then to create the toDeleteSet by checking whether the whole 
> set, like dict, is in this referenceSet or not, is not a good solution due to 
> consensus issues. For example, before the first step, SEGMENT_A is deleted 
> and leave a DICT_A created at the building step. Then the referenceSet will 
> not include DICT_A. Between the gap of two steps, SEGMENT_B is starting to 
> build. Since DICT_A still exists, it can still be referenced by SEGMENT_B. 
> After SEGMENT_B owns the reference to DICT_A, the step two begins. Then 
> DICT_A will still be included in the toDeleteSet and will be deleted later. 
> Finally SEGMENT_B only owns a reference with no data.



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

Reply via email to