tephra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TEPHRA-35) Prune invalid transaction set once all data for a given invalid transaction has been dropped
Date Mon, 07 Nov 2016 22:50:58 GMT

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

ASF GitHub Bot commented on TEPHRA-35:

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

    --- 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 --
    Good point, I removed the namespace from the default value. It can always be overridden
in the configuration

> Prune invalid transaction set once all data for a given invalid transaction has been
> --------------------------------------------------------------------------------------------
>                 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

View raw message