use of io.cdap.cdap.data2.dataset2.lib.table.MDSKey in project cdap by caskdata.
the class DefaultPreviewStore method put.
@Override
public void put(ApplicationId applicationId, String tracerName, String propertyName, Object value) {
// PreviewStore is a singleton and we have to create gson for each operation since gson is not thread safe.
Gson gson = new GsonBuilder().registerTypeAdapter(Schema.class, new SchemaTypeAdapter()).create();
MDSKey mdsKey = new MDSKey.Builder().add(applicationId.getNamespace()).add(applicationId.getApplication()).add(tracerName).add(counter.getAndIncrement()).build();
try {
table.put(mdsKey.getKey(), TRACER, Bytes.toBytes(tracerName), 1L);
table.put(mdsKey.getKey(), PROPERTY, Bytes.toBytes(propertyName), 1L);
table.put(mdsKey.getKey(), VALUE, Bytes.toBytes(gson.toJson(value)), 1L);
} catch (IOException e) {
String message = String.format("Error while putting property '%s' for application '%s' and tracer '%s' in" + " preview table.", propertyName, applicationId, tracerName);
throw new RuntimeException(message, e);
}
}
use of io.cdap.cdap.data2.dataset2.lib.table.MDSKey in project cdap by caskdata.
the class DefaultPreviewStore method remove.
@Override
public void remove(ApplicationId applicationId) {
byte[] startRowKey = new MDSKey.Builder().add(applicationId.getNamespace()).add(applicationId.getApplication()).build().getKey();
byte[] stopRowKey = new MDSKey(Bytes.stopKeyForPrefix(startRowKey)).getKey();
try {
table.deleteRange(startRowKey, stopRowKey, null, null);
} catch (IOException e) {
String message = String.format("Error while removing preview data for application '%s'.", applicationId);
throw new RuntimeException(message, e);
}
}
use of io.cdap.cdap.data2.dataset2.lib.table.MDSKey in project cdap by caskdata.
the class MetadataKeyTest method testGetMetadataEntityFromKey.
@Test
public void testGetMetadataEntityFromKey() {
ApplicationId expectedAppId = new ApplicationId("ns1", "app1");
MDSKey mdsValueKey = MetadataKey.createValueRowKey(expectedAppId.toMetadataEntity(), "key1");
MDSKey mdsIndexKey = MetadataKey.createIndexRowKey(expectedAppId.toMetadataEntity(), "key1", "value1");
// check that we can get MetadataEntity from value and index key
MetadataEntity actualAppId = MetadataKey.extractMetadataEntityFromKey(mdsValueKey.getKey());
Assert.assertEquals(expectedAppId.toMetadataEntity(), actualAppId);
actualAppId = MetadataKey.extractMetadataEntityFromKey(mdsIndexKey.getKey());
Assert.assertEquals(expectedAppId.toMetadataEntity(), actualAppId);
}
use of io.cdap.cdap.data2.dataset2.lib.table.MDSKey in project cdap by caskdata.
the class DefaultPreviewStore method removeFromWaitingState.
private void removeFromWaitingState(ApplicationId applicationId) {
long timeInSeconds = RunIds.getTime(applicationId.getApplication(), TimeUnit.SECONDS);
MDSKey mdsKey = new MDSKey.Builder().add(WAITING).add(timeInSeconds).add(applicationId.getNamespace()).add(applicationId.getApplication()).build();
try {
previewQueueTable.deleteDefaultVersion(mdsKey.getKey(), APPID);
previewQueueTable.deleteDefaultVersion(mdsKey.getKey(), CONFIG);
previewQueueTable.deleteDefaultVersion(mdsKey.getKey(), PRINCIPAL);
} catch (IOException e) {
throw new RuntimeException(String.format("Failed to remove application with id %s from waiting queue.", applicationId), e);
}
}
use of io.cdap.cdap.data2.dataset2.lib.table.MDSKey in project cdap by caskdata.
the class DefaultPreviewStore method setProgramId.
@Override
public void setProgramId(ProgramRunId programRunId) {
// PreviewStore is a singleton and we have to create gson for each operation since gson is not thread safe.
Gson gson = new GsonBuilder().registerTypeAdapter(EntityId.class, new EntityIdTypeAdapter()).create();
MDSKey mdsKey = getPreviewRowKeyBuilder(META_ROW_KEY_PREFIX, programRunId.getParent().getParent()).build();
try {
previewTable.putDefaultVersion(mdsKey.getKey(), RUN, Bytes.toBytes(gson.toJson(programRunId)));
} catch (IOException e) {
throw new RuntimeException(String.format("Failed to put %s into preview store", programRunId), e);
}
}
Aggregations