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    }