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
018 package org.apache.activemq.leveldb;
019
020 import org.apache.activemq.broker.jmx.MBeanInfo;
021
022 import java.io.File;
023
024 /**
025 * <p>
026 * </p>
027 *
028 * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
029 */
030 public 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 }