[
https://issues.apache.org/jira/browse/TEPHRA-215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15856392#comment-15856392
]
ASF GitHub Bot commented on TEPHRA-215:
---------------------------------------
Github user poornachandra commented on a diff in the pull request:
https://github.com/apache/incubator-tephra/pull/32#discussion_r99882082
--- Diff:
tephra-hbase-compat-1.1-base/src/main/java/org/apache/tephra/hbase/txprune/PruneUpperBoundWriterSupplier.java
---
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tephra.hbase.txprune;
+
+
+import com.google.common.base.Supplier;
+
+/**
+ * Supplies instances of {@link PruneUpperBoundWriter} implementations.
+ */
+public class PruneUpperBoundWriterSupplier implements
Supplier<PruneUpperBoundWriter> {
+
+ private final DataJanitorState dataJanitorState;
+ private final long pruneFlushInterval;
+
+ protected static volatile PruneUpperBoundWriter instance;
+ protected static Object lock = new Object();
+
+ public PruneUpperBoundWriterSupplier(DataJanitorState dataJanitorState,
long pruneFlushInterval) {
+ this.dataJanitorState = dataJanitorState;
+ this.pruneFlushInterval = pruneFlushInterval;
+ }
+
+ @Override
+ public PruneUpperBoundWriter get() {
+ if (instance == null) {
+ synchronized (lock) {
+ if (instance == null) {
+ instance = new PruneUpperBoundWriter(dataJanitorState,
pruneFlushInterval);
+ instance.start();
--- End diff --
We have the same problem as `TransactionStateCache` here too - we don't
have a way to stop this thread after all instances of `TransactionProcessor`
co-processors have been shutdown
(https://issues.apache.org/jira/browse/TEPHRA-152)
> 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
(v6.3.15#6346)