/** * Deserializes history row key to get timestamp and metadata entry. * * @param row history row. * @return {@link KeyValue} key is timestamp from history key, value is {@link MetadataEntry}. */ @Nullable private KeyValue<Long, Object> convertFromV1History(Row row) { byte[] rowKey = row.getRow(); // History rows does not store entity type in the key. So to get the entity, we will read the value, deserialize it. // However, in v2 tables, we are going to add type in the history row key. MetadataV1 metadata = V1_GSON.fromJson(row.getString(HISTORY_COLUMN), MetadataV1.class); if (metadata == null) { return null; } long historyTime = MdsHistoryKey.extractTime(rowKey, EntityIdKeyHelper.getV1TargetType(metadata.getEntityId())); // For history we do not care about key and value for MetadataEntry as we are not going to extract that // information for upgrade return new KeyValue<>(historyTime, metadata); }
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; }
private static byte[] createRowKey(NamespacedEntityId targetId) { // We are not going to upgrade owner.meta table in 5.0, when we upgrade this table, // we should call EntityIdKeyHelper#getTargetType() String targetType = EntityIdKeyHelper.getV1TargetType(targetId); MDSKey.Builder builder = new MDSKey.Builder(); builder.add(OWNER_PREFIX); builder.add(targetType); EntityIdKeyHelper.addTargetIdToKey(builder, targetId); MDSKey build = builder.build(); return build.getKey(); } }
private static byte[] createRowKey(NamespacedEntityId targetId) { // We are not going to upgrade owner.meta table in 5.0, when we upgrade this table, // we should call EntityIdKeyHelper#getTargetType() String targetType = EntityIdKeyHelper.getV1TargetType(targetId); MDSKey.Builder builder = new MDSKey.Builder(); builder.add(OWNER_PREFIX); builder.add(targetType); EntityIdKeyHelper.addTargetIdToKey(builder, targetId); MDSKey build = builder.build(); return build.getKey(); } }