/* This file is part of VoltDB.
* Copyright (C) 2008-2017 VoltDB Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with VoltDB. If not, see <http://www.gnu.org/licenses/>.
*/
package org.voltdb;
import java.util.ArrayList;
import java.util.Iterator;
import org.voltdb.VoltTable.ColumnInfo;
import com.google_voltpatches.common.collect.ImmutableSet;
public class DRProducerStatsBase {
public static interface Columns {
// column for both tables
public static final String CLUSTER_ID = "CLUSTER_ID";
public static final String REMOTE_CLUSTER_ID = "REMOTE_CLUSTER_ID";
// columns for the node-level table
public static final String STATE = "STATE";
public static final String SYNC_SNAPSHOT_STATE = "SYNCSNAPSHOTSTATE";
public static final String ROWS_IN_SYNC_SNAPSHOT = "ROWSINSYNCSNAPSHOT";
public static final String ROWS_ACKED_FOR_SYNC_SNAPSHOT = "ROWSACKEDFORSYNCSNAPSHOT";
public static final String QUEUE_DEPTH = "QUEUEDEPTH";
// columns for partition-level table
public static final String STREAM_TYPE = "STREAMTYPE";
public static final String TOTAL_BYTES = "TOTALBYTES";
public static final String TOTAL_BYTES_IN_MEMORY = "TOTALBYTESINMEMORY";
public static final String TOTAL_BUFFERS = "TOTALBUFFERS";
public static final String LAST_QUEUED_DRID = "LASTQUEUEDDRID";
public static final String LAST_ACK_DRID = "LASTACKDRID";
public static final String LAST_QUEUED_TIMESTAMP = "LASTQUEUEDTIMESTAMP";
public static final String LAST_ACK_TIMESTAMP = "LASTACKTIMESTAMP";
public static final String IS_SYNCED = "ISSYNCED";
public static final String MODE = "MODE";
}
public static class DRProducerNodeStatsBase extends StatsSource {
public DRProducerNodeStatsBase() {
super(false);
}
@Override
protected void populateColumnSchema(ArrayList<VoltTable.ColumnInfo> columns) {
super.populateColumnSchema(columns);
columns.add(new ColumnInfo(Columns.CLUSTER_ID, VoltType.SMALLINT));
columns.add(new ColumnInfo(Columns.REMOTE_CLUSTER_ID, VoltType.SMALLINT));
columns.add(new ColumnInfo(Columns.STATE, VoltType.STRING));
columns.add(new ColumnInfo(Columns.SYNC_SNAPSHOT_STATE, VoltType.STRING));
columns.add(new ColumnInfo(Columns.ROWS_IN_SYNC_SNAPSHOT, VoltType.BIGINT));
columns.add(new ColumnInfo(Columns.ROWS_ACKED_FOR_SYNC_SNAPSHOT, VoltType.BIGINT));
columns.add(new ColumnInfo(Columns.QUEUE_DEPTH, VoltType.BIGINT));
}
@Override
protected Iterator<Object> getStatsRowKeyIterator(boolean interval) {
return ImmutableSet.of().iterator();
}
}
public static class DRProducerPartitionStatsBase extends StatsSource {
public DRProducerPartitionStatsBase() {
super(false);
}
@Override
protected void populateColumnSchema(ArrayList<VoltTable.ColumnInfo> columns) {
super.populateColumnSchema(columns);
columns.add(new ColumnInfo(Columns.CLUSTER_ID, VoltType.SMALLINT));
columns.add(new ColumnInfo(Columns.REMOTE_CLUSTER_ID, VoltType.SMALLINT));
columns.add(new ColumnInfo(VoltSystemProcedure.CNAME_PARTITION_ID, VoltType.INTEGER));
columns.add(new ColumnInfo(Columns.STREAM_TYPE, VoltType.STRING));
columns.add(new ColumnInfo(Columns.TOTAL_BYTES, VoltType.BIGINT));
columns.add(new ColumnInfo(Columns.TOTAL_BYTES_IN_MEMORY, VoltType.BIGINT));
columns.add(new ColumnInfo(Columns.TOTAL_BUFFERS, VoltType.BIGINT));
columns.add(new ColumnInfo(Columns.LAST_QUEUED_DRID, VoltType.BIGINT));
columns.add(new ColumnInfo(Columns.LAST_ACK_DRID, VoltType.BIGINT));
columns.add(new ColumnInfo(Columns.LAST_QUEUED_TIMESTAMP, VoltType.TIMESTAMP));
columns.add(new ColumnInfo(Columns.LAST_ACK_TIMESTAMP, VoltType.TIMESTAMP));
columns.add(new ColumnInfo(Columns.IS_SYNCED, VoltType.STRING));
columns.add(new ColumnInfo(Columns.MODE, VoltType.STRING));
}
@Override
protected Iterator<Object> getStatsRowKeyIterator(boolean interval) {
return ImmutableSet.of().iterator();
}
}
}