001/** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018package org.apache.activemq.leveldb; 019 020import org.apache.activemq.broker.jmx.MBeanInfo; 021 022import java.io.File; 023 024/** 025 * <p> 026 * </p> 027 * 028 * @author <a href="http://hiramchirino.com">Hiram Chirino</a> 029 */ 030public interface LevelDBStoreViewMBean { 031 032 @MBeanInfo("The directory holding the store index data.") 033 String getIndexDirectory(); 034 035 @MBeanInfo("The directory holding the store log data.") 036 String getLogDirectory(); 037 038 @MBeanInfo("The size the log files are allowed to grow to.") 039 long getLogSize(); 040 041 @MBeanInfo("The implementation of the LevelDB index being used.") 042 String getIndexFactory(); 043 044 @MBeanInfo("Are writes synced to disk.") 045 boolean getSync(); 046 047 @MBeanInfo("Is data verified against checksums as it's loaded back from disk.") 048 boolean getVerifyChecksums(); 049 050 @MBeanInfo("The maximum number of open files the index will open at one time.") 051 int getIndexMaxOpenFiles(); 052 053 @MBeanInfo("Number of keys between restart points for delta encoding of keys in the index") 054 int getIndexBlockRestartInterval(); 055 056 @MBeanInfo("Do aggressive checking of store data") 057 boolean getParanoidChecks(); 058 059 @MBeanInfo("Amount of data to build up in memory for the index before converting to a sorted on-disk file.") 060 int getIndexWriteBufferSize(); 061 062 @MBeanInfo("Approximate size of user data packed per block for the index") 063 int getIndexBlockSize(); 064 065 @MBeanInfo("The type of compression to use for the index") 066 String getIndexCompression(); 067 068 @MBeanInfo("The size of the cache index") 069 long getIndexCacheSize(); 070 071 @MBeanInfo("The maximum amount of async writes to buffer up") 072 int getAsyncBufferSize(); 073 074 @MBeanInfo("The number of units of work which have been closed.") 075 long getUowClosedCounter(); 076 @MBeanInfo("The number of units of work which have been canceled.") 077 long getUowCanceledCounter(); 078 @MBeanInfo("The number of units of work which started getting stored.") 079 long getUowStoringCounter(); 080 @MBeanInfo("The number of units of work which completed getting stored") 081 long getUowStoredCounter(); 082 083 @MBeanInfo("Gets and resets the maximum time (in ms) a unit of work took to complete.") 084 double resetUowMaxCompleteLatency(); 085 @MBeanInfo("Gets and resets the maximum time (in ms) an index write batch took to execute.") 086 double resetMaxIndexWriteLatency(); 087 @MBeanInfo("Gets and resets the maximum time (in ms) a log write took to execute (includes the index write latency).") 088 double resetMaxLogWriteLatency(); 089 @MBeanInfo("Gets and resets the maximum time (in ms) a log flush took to execute.") 090 double resetMaxLogFlushLatency(); 091 @MBeanInfo("Gets and resets the maximum time (in ms) a log rotation took to perform.") 092 double resetMaxLogRotateLatency(); 093 094 @MBeanInfo("Gets the maximum time (in ms) a unit of work took to complete.") 095 double getUowMaxCompleteLatency(); 096 @MBeanInfo("Gets the maximum time (in ms) an index write batch took to execute.") 097 double getMaxIndexWriteLatency(); 098 @MBeanInfo("Gets the maximum time (in ms) a log write took to execute (includes the index write latency).") 099 double getMaxLogWriteLatency(); 100 @MBeanInfo("Gets the maximum time (in ms) a log flush took to execute.") 101 double getMaxLogFlushLatency(); 102 @MBeanInfo("Gets the maximum time (in ms) a log rotation took to perform.") 103 double getMaxLogRotateLatency(); 104 105 @MBeanInfo("Gets the index statistics.") 106 String getIndexStats(); 107 108 @MBeanInfo("Compacts disk usage") 109 void compact(); 110 111}