Moving the MBean to 2.1 (8)

This patch changes the MBeans to 2.1 version, with the changes an empty
stub implementation was added to the implementation so the code can
compile.

Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This commit is contained in:
Amnon Heiman 2015-07-30 12:01:05 +03:00
parent 057a3e27fd
commit d1e16178df
10 changed files with 301 additions and 44 deletions

View File

@ -30,6 +30,8 @@ import java.util.concurrent.*;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.management.*;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.OpenDataException;
import javax.ws.rs.core.MultivaluedMap;
import org.apache.cassandra.metrics.ColumnFamilyMetrics;
@ -680,4 +682,54 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean {
return keyspace;
}
@Override
public long getRangeCount() {
// TODO Auto-generated method stub
log("getRangeCount()");
return c.getLongValue("");
}
@Override
public long getTotalRangeLatencyMicros() {
// TODO Auto-generated method stub
log("getTotalRangeLatencyMicros()");
return c.getLongValue("");
}
@Override
public long[] getLifetimeRangeLatencyHistogramMicros() {
// TODO Auto-generated method stub
log("getLifetimeRangeLatencyHistogramMicros()");
return c.getLongArrValue("");
}
@Override
public long[] getRecentRangeLatencyHistogramMicros() {
// TODO Auto-generated method stub
log("getRecentRangeLatencyHistogramMicros()");
return c.getLongArrValue("");
}
@Override
public double getRecentRangeLatencyMicros() {
// TODO Auto-generated method stub
log("getRecentRangeLatencyMicros()");
return c.getDoubleValue("");
}
@Override
public void beginLocalSampling(String sampler, int capacity) {
// TODO Auto-generated method stub
log("beginLocalSampling()");
}
@Override
public CompositeData finishLocalSampling(String sampler, int count)
throws OpenDataException {
// TODO Auto-generated method stub
log("finishLocalSampling()");
return null;
}
}

View File

@ -21,6 +21,9 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.OpenDataException;
/**
* The MBean interface for ColumnFamilyStore
*/
@ -145,6 +148,41 @@ public interface ColumnFamilyStoreMBean
@Deprecated
public double getRecentWriteLatencyMicros();
/**
* @see org.apache.cassandra.metrics.ColumnFamilyMetrics#rangeLatency
* @return the number of range slice operations on this column family
*/
@Deprecated
public long getRangeCount();
/**
* @see org.apache.cassandra.metrics.ColumnFamilyMetrics#rangeLatency
* @return total range slice latency (divide by getRangeCount() for average)
*/
@Deprecated
public long getTotalRangeLatencyMicros();
/**
* @see org.apache.cassandra.metrics.ColumnFamilyMetrics#rangeLatency
* @return an array representing the latency histogram
*/
@Deprecated
public long[] getLifetimeRangeLatencyHistogramMicros();
/**
* @see org.apache.cassandra.metrics.ColumnFamilyMetrics#rangeLatency
* @return an array representing the latency histogram
*/
@Deprecated
public long[] getRecentRangeLatencyHistogramMicros();
/**
* @see org.apache.cassandra.metrics.ColumnFamilyMetrics#rangeLatency
* @return average latency per range slice operation since the last call
*/
@Deprecated
public double getRecentRangeLatencyMicros();
/**
* @see org.apache.cassandra.metrics.ColumnFamilyMetrics#pendingFlushes
* @return the estimated number of tasks pending for this column family
@ -367,4 +405,15 @@ public interface ColumnFamilyStoreMBean
* @return the size of SSTables in "snapshots" subdirectory which aren't live anymore
*/
public long trueSnapshotsSize();
/**
* begin sampling for a specific sampler with a given capacity. The cardinality may
* be larger than the capacity, but depending on the use case it may affect its accuracy
*/
public void beginLocalSampling(String sampler, int capacity);
/**
* @return top <i>count</i> items for the sampler since beginLocalSampling was called
*/
public CompositeData finishLocalSampling(String sampler, int count) throws OpenDataException;
}

View File

@ -135,4 +135,39 @@ public class CommitLog implements CommitLogMBean {
return new ArrayList<String>(set);
}
@Override
public String getArchiveCommand() {
// TODO Auto-generated method stub
log(" getArchiveCommand()");
return c.getStringValue("");
}
@Override
public String getRestoreCommand() {
// TODO Auto-generated method stub
log(" getRestoreCommand()");
return c.getStringValue("");
}
@Override
public String getRestoreDirectories() {
// TODO Auto-generated method stub
log(" getRestoreDirectories()");
return c.getStringValue("");
}
@Override
public long getRestorePointInTime() {
// TODO Auto-generated method stub
log(" getRestorePointInTime()");
return c.getLongValue("");
}
@Override
public String getRestorePrecision() {
// TODO Auto-generated method stub
log(" getRestorePrecision()");
return c.getStringValue("");
}
}

View File

@ -45,6 +45,37 @@ public interface CommitLogMBean {
@Deprecated
public long getTotalCommitlogSize();
/**
* Command to execute to archive a commitlog segment. Blank to disabled.
*/
public String getArchiveCommand();
/**
* Command to execute to make an archived commitlog live again
*/
public String getRestoreCommand();
/**
* 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.
*/
public long getRestorePointInTime();
/**
* 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.
*/

View File

@ -66,9 +66,7 @@ public interface CompactionManagerMBean {
* keyspace/columnfamily.
*
* @param dataFiles
* a comma separated list of sstable file to compact. must
* contain keyspace and columnfamily name in path(for 2.1+) or
* file name itself.
* a comma separated list of sstable filename to compact
*/
public void forceUserDefinedCompaction(String dataFiles);

View File

@ -27,6 +27,4 @@ public interface GossiperMBean
public void unsafeAssassinateEndpoint(String address) throws UnknownHostException;
public void assassinateEndpoint(String address) throws UnknownHostException;
}

View File

@ -354,4 +354,19 @@ public class StorageProxy implements StorageProxyMBean {
return c.getMapStringListStrValue("storage_proxy/schema_versions");
}
@Override
public void setNativeTransportMaxConcurrentConnections(
Long nativeTransportMaxConcurrentConnections) {
// TODO Auto-generated method stub
log(" setNativeTransportMaxConcurrentConnections()");
}
@Override
public Long getNativeTransportMaxConcurrentConnections() {
// TODO Auto-generated method stub
log(" getNativeTransportMaxConcurrentConnections()");
return c.getLongValue("");
}
}

View File

@ -130,6 +130,11 @@ public interface StorageProxyMBean {
public void setTruncateRpcTimeout(Long timeoutInMillis);
public void setNativeTransportMaxConcurrentConnections(
Long nativeTransportMaxConcurrentConnections);
public Long getNativeTransportMaxConcurrentConnections();
public void reloadTriggerClasses();
public long getReadRepairAttempted();

View File

@ -1119,4 +1119,48 @@ public class StorageService extends NotificationBroadcasterSupport
c.post("/storage_service/hinted_handoff", queryParams);
}
@Override
public void takeMultipleColumnFamilySnapshot(String tag,
String... columnFamilyList) throws IOException {
// TODO Auto-generated method stub
log(" takeMultipleColumnFamilySnapshot");
}
@Override
public int scrub(boolean disableSnapshot, boolean skipCorrupted,
boolean checkData, String keyspaceName, String... columnFamilies)
throws IOException, ExecutionException,
InterruptedException {
// TODO Auto-generated method stub
log(" scrub()");
return c.getIntValue("");
}
@Override
public int forceRepairAsync(String keyspace, int parallelismDegree,
Collection<String> dataCenters, Collection<String> hosts,
boolean primaryRange, boolean fullRepair,
String... columnFamilies) {
// TODO Auto-generated method stub
log(" forceRepairAsync()");
return c.getIntValue("");
}
@Override
public int forceRepairRangeAsync(String beginToken, String endToken,
String keyspaceName, int parallelismDegree,
Collection<String> dataCenters, Collection<String> hosts,
boolean fullRepair, String... columnFamilies) {
// TODO Auto-generated method stub
log(" forceRepairRangeAsync()");
return c.getIntValue("");
}
@Override
public double getTracingProbability() {
// TODO Auto-generated method stub
log(" getTracingProbability()");
return c.getDoubleValue("");
}
}

View File

@ -17,8 +17,6 @@
*/
package org.apache.cassandra.service;
import org.apache.cassandra.repair.RepairParallelism;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
@ -127,7 +125,8 @@ public interface StorageServiceMBean extends NotificationEmitter {
*
* @return mapping of ranges to end points
*/
public Map<List<String>, List<String>> getRangeToEndpointMap(String keyspace);
public Map<List<String>, List<String>> getRangeToEndpointMap(
String keyspace);
/**
* Retrieve a map of range to rpc addresses that describe the ring topology
@ -207,8 +206,8 @@ public interface StorageServiceMBean extends NotificationEmitter {
* - key for which we need to find the endpoint return value -
* the endpoint responsible for this key
*/
public List<InetAddress> getNaturalEndpoints(String keyspaceName,
String cf, String key);
public List<InetAddress> getNaturalEndpoints(String keyspaceName, String cf,
String key);
public List<InetAddress> getNaturalEndpoints(String keyspaceName,
ByteBuffer key);
@ -239,6 +238,19 @@ public interface StorageServiceMBean extends NotificationEmitter {
public void takeColumnFamilySnapshot(String keyspaceName,
String columnFamilyName, String tag) throws IOException;
/**
* Takes the snapshot of a multiple column family from different keyspaces.
* A snapshot name must be specified.
*
* @param tag
* the tag given to the snapshot; may not be null or empty
* @param columnFamilyList
* list of columnfamily from different keyspace in the form of
* ks1.cf1 ks2.cf2
*/
public void takeMultipleColumnFamilySnapshot(String tag,
String... columnFamilyList) throws IOException;
/**
* Remove the snapshot with the given name from the given keyspaces. If no
* tag is specified we will remove all snapshots.
@ -265,14 +277,14 @@ public interface StorageServiceMBean extends NotificationEmitter {
*/
public void forceKeyspaceCompaction(String keyspaceName,
String... columnFamilies) throws IOException, ExecutionException,
InterruptedException;
InterruptedException;
/**
* Trigger a cleanup of keys on a single keyspace
*/
public int forceKeyspaceCleanup(String keyspaceName,
String... columnFamilies) throws IOException, ExecutionException,
InterruptedException;
InterruptedException;
/**
* Scrub (deserialize + reserialize at the latest version, skipping bad rows
@ -281,9 +293,15 @@ public interface StorageServiceMBean extends NotificationEmitter {
*
* Scrubbed CFs will be snapshotted first, if disableSnapshot is false
*/
@Deprecated
public int scrub(boolean disableSnapshot, boolean skipCorrupted,
String keyspaceName, String... columnFamilies) throws IOException,
ExecutionException, InterruptedException;
ExecutionException, InterruptedException;
public int scrub(boolean disableSnapshot, boolean skipCorrupted,
boolean checkData, String keyspaceName, String... columnFamilies)
throws IOException, ExecutionException,
InterruptedException;
/**
* Rewrite all sstables to the latest version. Unlike scrub, it doesn't skip
@ -291,7 +309,8 @@ public interface StorageServiceMBean extends NotificationEmitter {
*/
public int upgradeSSTables(String keyspaceName,
boolean excludeCurrentVersion, String... columnFamilies)
throws IOException, ExecutionException, InterruptedException;
throws IOException, ExecutionException,
InterruptedException;
/**
* Flush all memtables for the given column families, or all columnfamilies
@ -303,52 +322,69 @@ public interface StorageServiceMBean extends NotificationEmitter {
*/
public void forceKeyspaceFlush(String keyspaceName,
String... columnFamilies) throws IOException, ExecutionException,
InterruptedException;
InterruptedException;
/**
* Invoke repair asynchronously. You can track repair progress by
* subscribing JMX notification sent from this StorageServiceMBean.
* Notification format is: type: "repair" userObject: int array of length 2,
* [0]=command number, [1]=ordinal of AntiEntropyService.Status
* [0]=command number, [1]=ordinal of ActiveRepairService.Status
*
* @param keyspace
* Keyspace name to repair. Should not be null.
* @param options
* repair option.
* @return Repair command number, or 0 if nothing to repair
*/
public int repairAsync(String keyspace, Map<String, String> options);
@Deprecated
public int forceRepairAsync(String keyspace, boolean isSequential,
Collection<String> dataCenters, Collection<String> hosts,
boolean primaryRange, boolean repairedAt, String... columnFamilies)
throws IOException;
throws IOException;
@Deprecated
public int forceRepairAsync(String keyspace,
RepairParallelism parallelismDegree,
/**
* Invoke repair asynchronously. You can track repair progress by
* subscribing JMX notification sent from this StorageServiceMBean.
* Notification format is: type: "repair" userObject: int array of length 2,
* [0]=command number, [1]=ordinal of ActiveRepairService.Status
*
* @param parallelismDegree
* 0: sequential, 1: parallel, 2: DC parallel
* @return Repair command number, or 0 if nothing to repair
*/
public int forceRepairAsync(String keyspace, int parallelismDegree,
Collection<String> dataCenters, Collection<String> hosts,
boolean primaryRange, boolean fullRepair, String... columnFamilies);
@Deprecated
/**
* Same as forceRepairAsync, but handles a specified range
*/
public int forceRepairRangeAsync(String beginToken, String endToken,
String keyspaceName, boolean isSequential,
Collection<String> dataCenters, Collection<String> hosts,
boolean repairedAt, String... columnFamilies) throws IOException;
@Deprecated
/**
* Same as forceRepairAsync, but handles a specified range
*
* @param parallelismDegree
* 0: sequential, 1: parallel, 2: DC parallel
*/
public int forceRepairRangeAsync(String beginToken, String endToken,
String keyspaceName, RepairParallelism parallelismDegree,
String keyspaceName, int parallelismDegree,
Collection<String> dataCenters, Collection<String> hosts,
boolean fullRepair, String... columnFamilies);
@Deprecated
/**
* Invoke repair asynchronously. You can track repair progress by
* subscribing JMX notification sent from this StorageServiceMBean.
* Notification format is: type: "repair" userObject: int array of length 2,
* [0]=command number, [1]=ordinal of ActiveRepairService.Status
*
* @return Repair command number, or 0 if nothing to repair
*/
public int forceRepairAsync(String keyspace, boolean isSequential,
boolean isLocal, boolean primaryRange, boolean fullRepair,
String... columnFamilies);
@Deprecated
/**
* Same as forceRepairAsync, but handles a specified range
*/
public int forceRepairRangeAsync(String beginToken, String endToken,
String keyspaceName, boolean isSequential, boolean isLocal,
boolean repairedAt, String... columnFamilies);
@ -424,8 +460,8 @@ public interface StorageServiceMBean extends NotificationEmitter {
* makes node unavailable for writes, flushes memtables and replays
* commitlog.
*/
public void drain() throws IOException, InterruptedException,
ExecutionException;
public void drain()
throws IOException, InterruptedException, ExecutionException;
/**
* Truncates (deletes) the given columnFamily from the provided keyspace.
@ -460,8 +496,6 @@ public interface StorageServiceMBean extends NotificationEmitter {
public List<String> getKeyspaces();
public List<String> getNonSystemKeyspaces();
/**
* Change endpointsnitch class and dynamic-ness (and dynamic attributes) at
* runtime
@ -600,7 +634,7 @@ public interface StorageServiceMBean extends NotificationEmitter {
/**
* Returns the configured tracing probability.
*/
public double getTraceProbability();
public double getTracingProbability();
void disableAutoCompaction(String ks, String... columnFamilies)
throws IOException;
@ -628,12 +662,8 @@ public interface StorageServiceMBean extends NotificationEmitter {
/** Sets the threshold for abandoning queries with many tombstones */
public void setTombstoneFailureThreshold(int tombstoneDebugThreshold);
/** Returns the threshold for rejecting queries due to a large batch size */
public int getBatchSizeFailureThreshold();
/** Sets the threshold for rejecting queries due to a large batch size */
public void setBatchSizeFailureThreshold(int batchSizeDebugThreshold);
/** Sets the hinted handoff throttle in kb per second, per delivery thread. */
/**
* Sets the hinted handoff throttle in kb per second, per delivery thread.
*/
public void setHintedHandoffThrottleInKB(int throttleInKB);
}