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

ASF GitHub Bot commented on TEPHRA-35:
--------------------------------------

Github user anew commented on a diff in the pull request:

    https://github.com/apache/incubator-tephra/pull/19#discussion_r86656117
  
    --- Diff: tephra-core/src/main/java/org/apache/tephra/TxConstants.java ---
    @@ -345,4 +345,14 @@
         public static final byte CURRENT_VERSION = 3;
       }
     
    +  /**
    +   * Configuration for data janitor
    +   */
    +  public static final class DataJanitor {
    +    public static final String PRUNE_ENABLE = "data.tx.prune.enable";
    +    public static final String PRUNE_STATE_TABLE = 
"data.tx.prune.state.table";
    +
    +    public static final boolean DEFAULT_PRUNE_ENABLE = false;
    +    public static final String DEFAULT_PRUNE_STATE_TABLE = 
"default:data_tx_janitor_state";
    --- End diff --
    
    I am not sure whether all supported HBase versions support namespaces... 
this assumes we have a default namespace?


> Prune invalid transaction set once all data for a given invalid transaction 
> has been dropped
> --------------------------------------------------------------------------------------------
>
>                 Key: TEPHRA-35
>                 URL: https://issues.apache.org/jira/browse/TEPHRA-35
>             Project: Tephra
>          Issue Type: New Feature
>            Reporter: Gary Helmling
>            Assignee: Poorna Chandra
>            Priority: Blocker
>         Attachments: ApacheTephraAutomaticInvalidListPruning-v2.pdf
>
>
> In addition to dropping the data from invalid transactions we need to be able 
> to prune the invalid set of any transactions where data cleanup has been 
> completely performed. Without this, the invalid set will grow indefinitely 
> and become a greater and greater cost to in-progress transactions over time.
> To do this correctly, the TransactionDataJanitor coprocessor will need to 
> maintain some bookkeeping for the transaction data that it removes, so that 
> the transaction manager can reason about when all of a given transaction's 
> data has been removed. Only at this point can the transaction manager safely 
> drop the transaction ID from the invalid set.
> One approach would be for the TransactionDataJanitor to update a table 
> marking when a major compaction was performed on a region and what 
> transaction IDs were filtered out. Once all regions in a table containing the 
> transaction data have been compacted, we can remove the filtered out 
> transaction IDs from the invalid set. However, this will need to cope with 
> changing region names due to splits, etc.



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

Reply via email to