private byte[] getStreamKey(StreamId stream, ProgramRunId run, AccessType accessType, @Nullable NamespacedEntityId component) { MDSKey.Builder builder = new MDSKey.Builder(); addStream(builder, stream); addDataKey(builder, run, accessType, component); return builder.build().getKey(); }
protected MDSKey.Builder getNamespaceKeyBuilder(String recordType, @Nullable NamespaceId namespaceId) { MDSKey.Builder builder = new MDSKey.Builder().add(recordType); if (namespaceId != null) { builder.add(namespaceId.getNamespace()); } return builder; }
public void writeApplication(String namespaceId, String appId, String versionId, ApplicationSpecification spec) { write(new MDSKey.Builder().add(TYPE_APP_META, namespaceId, appId, versionId).build(), new ApplicationMeta(appId, spec)); }
static byte[] getIndexRowPrefix() { MDSKey key = new MDSKey.Builder().add(INDEX_ROW_PREFIX).build(); return key.getKey(); }
static byte[] getValueRowPrefix() { MDSKey key = new MDSKey.Builder().add(VALUE_ROW_PREFIX).build(); return key.getKey(); }
private static MDSKey.Builder getMDSKeyPrefix(NamespacedEntityId targetId, byte[] rowPrefix) { String targetType = EntityIdKeyHelper.getV1TargetType(targetId); MDSKey.Builder builder = new MDSKey.Builder(); builder.add(rowPrefix); builder.add(targetType); EntityIdKeyHelper.addTargetIdToKey(builder, targetId); return builder; }
/** * Get active runs in the given application, active runs means program run with status STARTING, PENDING, * RUNNING or SUSPENDED. * * @param applicationId given app * @return map of run id to run record meta */ public Map<ProgramRunId, RunRecordMeta> getActiveRuns(ApplicationId applicationId) { Predicate<RunRecordMeta> timePredicate = getTimeRangePredicate(0, Long.MAX_VALUE); MDSKey key = getApplicationKeyBuilder(TYPE_RUN_RECORD_ACTIVE, applicationId).build(); return getProgramRunIdMap(listKV(key, null, RunRecordMeta.class, Integer.MAX_VALUE, timePredicate)); }
/** * Get active runs in all namespaces with a filter, active runs means program run with status STARTING, PENDING, * RUNNING or SUSPENDED. * * @param filter filter to filter run record * @return map of run id to run record meta */ public Map<ProgramRunId, RunRecordMeta> getActiveRuns(Predicate<RunRecordMeta> filter) { MDSKey key = getNamespaceKeyBuilder(TYPE_RUN_RECORD_ACTIVE, null).build(); return getProgramRunIdMap(listKV(key, null, RunRecordMeta.class, Integer.MAX_VALUE, filter)); }
/** * Get active runs in the given program, active runs means program run with status STARTING, PENDING, * RUNNING or SUSPENDED. * * @param programId given program * @return map of run id to run record meta */ public Map<ProgramRunId, RunRecordMeta> getActiveRuns(ProgramId programId) { Predicate<RunRecordMeta> timePredicate = getTimeRangePredicate(0, Long.MAX_VALUE); MDSKey key = getProgramKeyBuilder(TYPE_RUN_RECORD_ACTIVE, programId).build(); return getProgramRunIdMap(listKV(key, null, RunRecordMeta.class, Integer.MAX_VALUE, timePredicate)); }
/** * @return run records for runs that do not have start time in mds key for the run record. */ private RunRecordMeta getUnfinishedRun(ProgramId programId, String runid) { MDSKey runningKey = getProgramKeyBuilder(TYPE_RUN_RECORD_ACTIVE, programId) .add(getInvertedTsKeyPart(RunIds.getTime(runid, TimeUnit.SECONDS))) .add(runid) .build(); return get(runningKey, RunRecordMeta.class); }
/** * Deletes the given topic's last fetched message id with the given message id for the given subscriber. * * @param topic the topic to persist the message id * @param subscriber the subscriber name */ public void deleteSubscriberState(String topic, String subscriber) { MDSKey.Builder keyBuilder = new MDSKey.Builder().add(TYPE_MESSAGE).add(topic); keyBuilder.add(subscriber); delete(keyBuilder.build()); }
public void deleteProgramHistory(String namespaceId) { deleteAll(new MDSKey.Builder().add(TYPE_RUN_RECORD_ACTIVE, namespaceId).build()); deleteAll(new MDSKey.Builder().add(TYPE_RUN_RECORD_COMPLETED, namespaceId).build()); deleteAll(new MDSKey.Builder().add(TYPE_COUNT, namespaceId).build()); deleteAll(new MDSKey.Builder().add(TYPE_RUN_RECORD_UPGRADE_COUNT, namespaceId).build()); }
private byte[] getDatasetKey(DatasetId datasetInstance, ProgramRunId run, AccessType accessType, @Nullable NamespacedEntityId component) { MDSKey.Builder builder = new MDSKey.Builder(); addDataset(builder, datasetInstance); addDataKey(builder, run, accessType, component); return builder.build().getKey(); }
private static MDSKey.Builder getKeyPart(MetadataEntity metadataEntity) { MDSKey.Builder builder = new MDSKey.Builder(); builder.add(ROW_PREFIX); builder.add(metadataEntity.getType()); for (MetadataEntity.KeyValue keyValue : metadataEntity) { builder.add(keyValue.getKey()); builder.add(keyValue.getValue()); } return builder; } }
protected MDSKey.Builder getApplicationKeyBuilder(String recordType, @Nullable ApplicationId applicationId) { MDSKey.Builder builder = new MDSKey.Builder().add(recordType); if (applicationId != null) { builder.add(applicationId.getNamespace()); builder.add(applicationId.getApplication()); builder.add(applicationId.getVersion()); } return builder; }
private MDSKey getKey(StreamViewId id) { return new MDSKey.Builder() .add(TYPE_STREAM_VIEW, id.getNamespace(), id.getStream(), id.getEntityName()) .build(); }
private byte[] getScanKey(byte[] direction, EndPoint endPoint, long time) { MDSKey.Builder builder = new MDSKey.Builder(); builder.add(direction); addEndPoint(builder, endPoint); // add 1 to the inverted time // Once the time is inverted, original end-time becomes the start time for the scan, however we should // not return the record corresponding to this start time (inverted end-time) since its exclusive, so add 1. // Similarly once the time is inverted, original start-time becomes the end time of the scan. Since we want to // return the records corresponding to this end time (inverted start-time), we add 1. builder.add(invertTime(time) + 1); return builder.build().getKey(); }
private byte[] getProgramKey(ProgramRunId run, StreamId stream, AccessType accessType, @Nullable NamespacedEntityId component) { long invertedStartTime = getInvertedStartTime(run); MDSKey.Builder builder = new MDSKey.Builder(); addProgram(builder, run.getParent()); builder.add(invertedStartTime); addStream(builder, stream); builder.add(run.getEntityName()); builder.add(accessType.getType()); addComponent(builder, component); return builder.build().getKey(); }