001/* 002 * 003 * Licensed to the Apache Software Foundation (ASF) under one 004 * or more contributor license agreements. See the NOTICE file 005 * distributed with this work for additional information 006 * regarding copyright ownership. The ASF licenses this file 007 * to you under the Apache License, Version 2.0 (the 008 * "License"); you may not use this file except in compliance 009 * with the License. You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 */ 019 020package org.apache.hadoop.hbase.regionserver.slowlog; 021 022import org.apache.hadoop.hbase.ScheduledChore; 023import org.apache.hadoop.hbase.Stoppable; 024import org.apache.yetus.audience.InterfaceAudience; 025import org.slf4j.Logger; 026import org.slf4j.LoggerFactory; 027 028/** 029 * Chore to insert multiple accumulated slow/large logs to hbase:slowlog system table 030 */ 031@InterfaceAudience.Private 032public class SlowLogTableOpsChore extends ScheduledChore { 033 034 private static final Logger LOG = LoggerFactory.getLogger(SlowLogTableOpsChore.class); 035 036 private final SlowLogRecorder slowLogRecorder; 037 038 /** 039 * Chore Constructor 040 * 041 * @param stopper The stopper - When {@link Stoppable#isStopped()} is true, this chore will 042 * cancel and cleanup 043 * @param period Period in millis with which this Chore repeats execution when scheduled 044 * @param slowLogRecorder {@link SlowLogRecorder} instance 045 */ 046 public SlowLogTableOpsChore(final Stoppable stopper, final int period, 047 final SlowLogRecorder slowLogRecorder) { 048 super("SlowLogTableOpsChore", stopper, period); 049 this.slowLogRecorder = slowLogRecorder; 050 } 051 052 @Override 053 protected void chore() { 054 if (LOG.isTraceEnabled()) { 055 LOG.trace("SlowLog Table Ops Chore is starting up."); 056 } 057 slowLogRecorder.addAllLogsToSysTable(); 058 if (LOG.isTraceEnabled()) { 059 LOG.trace("SlowLog Table Ops Chore is closing."); 060 } 061 } 062 063}