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-215) Share PruneUpperBoundWriter across all TransactionProcessors on the same region server
Date Wed, 08 Feb 2017 21:20:41 GMT

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

ASF GitHub Bot commented on TEPHRA-215:

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

    --- Diff: tephra-hbase-compat-1.1-base/src/main/java/org/apache/tephra/hbase/txprune/PruneUpperBoundWriter.java
    @@ -18,56 +18,56 @@
     package org.apache.tephra.hbase.txprune;
    +import com.google.common.util.concurrent.AbstractIdleService;
     import org.apache.commons.logging.Log;
     import org.apache.commons.logging.LogFactory;
    -import org.apache.hadoop.hbase.TableName;
    -import org.apache.tephra.hbase.coprocessor.TransactionProcessor;
     import java.io.IOException;
    +import java.nio.ByteBuffer;
    +import java.util.Map;
    +import java.util.concurrent.ConcurrentSkipListMap;
     import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicBoolean;
    -import java.util.concurrent.atomic.AtomicLong;
      * Thread that will write the the prune upper bound
    -public class PruneUpperBoundWriter {
    -  private static final Log LOG = LogFactory.getLog(TransactionProcessor.class);
    +public class PruneUpperBoundWriter extends AbstractIdleService {
    +  private static final Log LOG = LogFactory.getLog(PruneUpperBoundWriter.class);
    -  private final TableName pruneStateTable;
       private final DataJanitorState dataJanitorState;
    -  private final byte[] regionName;
    -  private final String regionNameAsString;
       private final long pruneFlushInterval;
    -  private final AtomicLong pruneUpperBound;
    -  private final AtomicBoolean shouldFlush;
    +  private final ConcurrentSkipListMap<ByteBuffer, Long> pruneEntries;
    --- End diff --
    We need the key to be Comparable. Hence we need to use ByteBuffer.

> Share PruneUpperBoundWriter across all TransactionProcessors on the same region server
> --------------------------------------------------------------------------------------
>                 Key: TEPHRA-215
>                 URL: https://issues.apache.org/jira/browse/TEPHRA-215
>             Project: Tephra
>          Issue Type: Improvement
>    Affects Versions: 0.11.0-incubating
>            Reporter: Gokul Gunasekaran
>            Assignee: Gokul Gunasekaran
>             Fix For: 0.11.0-incubating
> Currently we start one prune upperbound writer thread per TransactionProcessor coprocessor.
Instead we should be able to share only one thread that flushes writes to the prune state
table periodically.

This message was sent by Atlassian JIRA

View raw message