/*
 * 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.cassandra.db.commitlog;


import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface CommitLogMBean
{
    
Command to execute to archive a commitlog segment. Blank to disabled.
/** * Command to execute to archive a commitlog segment. Blank to disabled. */
public String getArchiveCommand();
Command to execute to make an archived commitlog live again
/** * Command to execute to make an archived commitlog live again */
public String getRestoreCommand();
Directory to scan the recovery files in
/** * Directory to scan the recovery files in */
public String getRestoreDirectories();
Restore mutations created up to and including this timestamp in GMT Format: yyyy:MM:dd HH:mm:ss (2012:04:31 20:43:12) Recovery will continue through the segment when the first client-supplied timestamp greater than this time is encountered, but only mutations less than or equal to this timestamp will be applied.
/** * Restore mutations created up to and including this timestamp in GMT * Format: yyyy:MM:dd HH:mm:ss (2012:04:31 20:43:12) * * Recovery will continue through the segment when the first client-supplied * timestamp greater than this time is encountered, but only mutations less than * or equal to this timestamp will be applied. */
public long getRestorePointInTime();
get precision of the timestamp used in the restore (MILLISECONDS, MICROSECONDS, ...) to determine if passed the restore point in time.
/** * get precision of the timestamp used in the restore (MILLISECONDS, MICROSECONDS, ...) * to determine if passed the restore point in time. */
public String getRestorePrecision();
Recover a single file.
/** * Recover a single file. */
public void recover(String path) throws IOException;
Returns:file names (not full paths) of active commit log segments (segments containing unflushed data)
/** * @return file names (not full paths) of active commit log segments (segments containing unflushed data) */
public List<String> getActiveSegmentNames();
Returns:Files which are pending for archival attempt. Does NOT include failed archive attempts.
/** * @return Files which are pending for archival attempt. Does NOT include failed archive attempts. */
public List<String> getArchivingSegmentNames();
Returns:The size of the mutations in all active commit log segments (uncompressed).
/** * @return The size of the mutations in all active commit log segments (uncompressed). */
public long getActiveContentSize();
Returns:The space taken on disk by the commit log (compressed).
/** * @return The space taken on disk by the commit log (compressed). */
public long getActiveOnDiskSize();
Returns:A map between active log segments and the compression ratio achieved for each.
/** * @return A map between active log segments and the compression ratio achieved for each. */
public Map<String, Double> getActiveSegmentCompressionRatios(); }