use of org.apache.hadoop.hive.metastore.api.ReplicationMetricList in project hive by apache.
the class ObjectStore method getReplicationMetrics.
@Override
public ReplicationMetricList getReplicationMetrics(GetReplicationMetricsRequest replicationMetricsRequest) {
boolean committed = false;
try {
openTransaction();
ReplicationMetricList replicationMetrics = null;
if (replicationMetricsRequest.isSetPolicy()) {
replicationMetrics = getMReplicationMetrics(replicationMetricsRequest.getPolicy());
} else if (replicationMetricsRequest.isSetScheduledExecutionId()) {
replicationMetrics = getMReplicationMetrics(replicationMetricsRequest.getScheduledExecutionId());
}
committed = commitTransaction();
return replicationMetrics;
} finally {
if (!committed) {
rollbackTransaction();
}
}
}
use of org.apache.hadoop.hive.metastore.api.ReplicationMetricList in project hive by apache.
the class TestReplicationMetrics method testGetMetricsByScheduleId.
@Test
public void testGetMetricsByScheduleId() throws Exception {
ObjectStore objStore = new ObjectStore();
objStore.setConf(metaStore.getConf());
objStore.deleteReplicationMetrics(0);
ReplicationMetricList replicationMetricList = new ReplicationMetricList();
List<ReplicationMetrics> replicationMetrics = new ArrayList<>();
replicationMetrics.add(createReplicationMetric("repl1", 1L));
replicationMetrics.add(createReplicationMetric("repl1", 2L));
replicationMetricList.setReplicationMetricList(replicationMetrics);
objStore.addReplicationMetrics(replicationMetricList);
Thread.sleep(1000);
replicationMetrics = new ArrayList<>();
replicationMetrics.add(createReplicationMetric("repl2", 3L));
replicationMetrics.add(createReplicationMetric("repl2", 4L));
replicationMetricList.setReplicationMetricList(replicationMetrics);
objStore.addReplicationMetrics(replicationMetricList);
Thread.sleep(1000);
GetReplicationMetricsRequest getReplicationMetricsRequest = new GetReplicationMetricsRequest();
getReplicationMetricsRequest.setScheduledExecutionId(1L);
ReplicationMetricList actualList = client.getReplicationMetrics(getReplicationMetricsRequest);
assertEquals(1, actualList.getReplicationMetricListSize());
List<ReplicationMetrics> actualMetrics = actualList.getReplicationMetricList();
// Ordering should be descending
ReplicationMetrics actualMetric0 = actualMetrics.get(0);
assertEquals("repl1", actualMetric0.getPolicy());
assertEquals(1L, actualMetric0.getScheduledExecutionId());
assertEquals(1, actualMetric0.getDumpExecutionId());
assertEquals("metadata", actualMetric0.getMetadata());
assertEquals("progress", actualMetric0.getProgress());
// Update progress
replicationMetrics = new ArrayList<>();
replicationMetrics.add(updateReplicationMetric("repl1", 1L, "progress1"));
replicationMetricList.setReplicationMetricList(replicationMetrics);
objStore.addReplicationMetrics(replicationMetricList);
Thread.sleep(1000);
// get the metrics again
getReplicationMetricsRequest = new GetReplicationMetricsRequest();
getReplicationMetricsRequest.setScheduledExecutionId(1L);
actualList = client.getReplicationMetrics(getReplicationMetricsRequest);
assertEquals(1, actualList.getReplicationMetricListSize());
actualMetrics = actualList.getReplicationMetricList();
// Ordering should be descending
actualMetric0 = actualMetrics.get(0);
assertEquals("repl1", actualMetric0.getPolicy());
assertEquals(1L, actualMetric0.getScheduledExecutionId());
assertEquals(1, actualMetric0.getDumpExecutionId());
assertEquals("metadata", actualMetric0.getMetadata());
assertEquals("progress1", actualMetric0.getProgress());
}
use of org.apache.hadoop.hive.metastore.api.ReplicationMetricList in project hive by apache.
the class ObjectStore method getMReplicationMetrics.
private ReplicationMetricList getMReplicationMetrics(long scheduledExecutionId) {
ReplicationMetricList ret = new ReplicationMetricList();
if (scheduledExecutionId < 0) {
return ret;
}
try (QueryWrapper query = new QueryWrapper(pm.newQuery(MReplicationMetrics.class, "scheduledExecutionId == scheduledExecutionIdParam"))) {
query.declareParameters("java.lang.Long scheduledExecutionIdParam");
query.setOrdering("scheduledExecutionId descending");
List<MReplicationMetrics> list = (List<MReplicationMetrics>) query.execute(scheduledExecutionId);
List<ReplicationMetrics> returnList = new ArrayList<>();
for (MReplicationMetrics mReplicationMetric : list) {
pm.retrieve(mReplicationMetric);
returnList.add(MReplicationMetrics.toThrift(mReplicationMetric));
}
ret.setReplicationMetricList(returnList);
return ret;
}
}
use of org.apache.hadoop.hive.metastore.api.ReplicationMetricList in project hive by apache.
the class ObjectStore method getMReplicationMetrics.
private ReplicationMetricList getMReplicationMetrics(String policy) {
ReplicationMetricList ret = new ReplicationMetricList();
if (StringUtils.isEmpty(policy)) {
return ret;
}
try (QueryWrapper query = new QueryWrapper(pm.newQuery(MReplicationMetrics.class, "policy == policyParam"))) {
query.declareParameters("java.lang.String policyParam");
query.setOrdering("scheduledExecutionId descending");
List<MReplicationMetrics> list = (List<MReplicationMetrics>) query.execute(policy);
List<ReplicationMetrics> returnList = new ArrayList<>();
for (MReplicationMetrics mReplicationMetric : list) {
pm.retrieve(mReplicationMetric);
returnList.add(MReplicationMetrics.toThrift(mReplicationMetric));
}
ret.setReplicationMetricList(returnList);
return ret;
}
}
Aggregations