@Override public TableReference getTableRef() { return TableReference.createFromFullyQualifiedName("performance.persistent_very_wide"); }
@Override public TableReference getTableRef() { return TableReference.createFromFullyQualifiedName("performance.persistent_table_clean"); }
@Override public TableReference getTableRef() { return TableReference.createFromFullyQualifiedName("performance.regenerating_table_clean"); }
/** * @deprecated please use createFromFullyQualifiedName, if fullTableName includes the namespace, * or createWithEmptyNamespace, if you're passing in a system table name. */ @Deprecated public static TableReference createUnsafe(String fullTableName) { return fullTableName.indexOf('.') < 0 ? createWithEmptyNamespace(fullTableName) : createFromFullyQualifiedName(fullTableName); }
public static TableReference fromString(String tableReferenceAsString) { int dotCount = StringUtils.countMatches(tableReferenceAsString, "."); if (dotCount == 0) { return TableReference.createWithEmptyNamespace(tableReferenceAsString); } else if (dotCount == 1) { return TableReference.createFromFullyQualifiedName(tableReferenceAsString); } else { throw new IllegalArgumentException(tableReferenceAsString + " is not a valid table reference."); } } }
private TableReference getTableRef(String tableName) { WebPreconditions.checkArgument(TableReference.isFullyQualifiedName(tableName), "Table name {} is not fully qualified", tableName); return TableReference.createFromFullyQualifiedName(tableName); }
@Test public void testCreateTableCaseInsensitive() { TableReference table1 = TableReference.createFromFullyQualifiedName("ns.tAbLe"); TableReference table2 = TableReference.createFromFullyQualifiedName("ns.table"); TableReference table3 = TableReference.createFromFullyQualifiedName("ns.TABle"); keyValueService.createTable(table1, AtlasDbConstants.GENERIC_TABLE_METADATA); keyValueService.createTable(table2, AtlasDbConstants.GENERIC_TABLE_METADATA); keyValueService.createTable(table3, AtlasDbConstants.GENERIC_TABLE_METADATA); Set<TableReference> allTables = keyValueService.getAllTableNames(); Preconditions.checkArgument(allTables.contains(table1)); Preconditions.checkArgument(!allTables.contains(table2)); Preconditions.checkArgument(!allTables.contains(table3)); }
private void deleteUserBirthdaysIdxRaw(Map<Cell, byte[]> results) { Set<Cell> indexCells = Sets.newHashSetWithExpectedSize(results.size()); for (Entry<Cell, byte[]> result : results.entrySet()) { Metadata col = (Metadata) shortNameToHydrator.get("m").hydrateFromBytes(result.getValue()); UserProfileRow row = UserProfileRow.BYTES_HYDRATOR.hydrateFromBytes(result.getKey().getRowName()); long birthday = col.getValue().getBirthEpochDay(); UUID id = row.getId(); UserBirthdaysIdxTable.UserBirthdaysIdxRow indexRow = UserBirthdaysIdxTable.UserBirthdaysIdxRow.of(birthday); UserBirthdaysIdxTable.UserBirthdaysIdxColumn indexCol = UserBirthdaysIdxTable.UserBirthdaysIdxColumn.of(row.persistToBytes(), col.persistColumnName(), id); indexCells.add(Cell.create(indexRow.persistToBytes(), indexCol.persistToBytes())); } t.delete(TableReference.createFromFullyQualifiedName("default.user_birthdays_idx"), indexCells); }
private void deleteCreatedIdxRaw(Map<Cell, byte[]> results) { Set<Cell> indexCells = Sets.newHashSetWithExpectedSize(results.size()); for (Entry<Cell, byte[]> result : results.entrySet()) { Create col = (Create) shortNameToHydrator.get("c").hydrateFromBytes(result.getValue()); UserProfileRow row = UserProfileRow.BYTES_HYDRATOR.hydrateFromBytes(result.getKey().getRowName()); long time = col.getValue().getTimeCreated(); UUID id = row.getId(); CreatedIdxTable.CreatedIdxRow indexRow = CreatedIdxTable.CreatedIdxRow.of(time); CreatedIdxTable.CreatedIdxColumn indexCol = CreatedIdxTable.CreatedIdxColumn.of(row.persistToBytes(), col.persistColumnName(), id); indexCells.add(Cell.create(indexRow.persistToBytes(), indexCol.persistToBytes())); } t.delete(TableReference.createFromFullyQualifiedName("default.created_idx"), indexCells); }
@Test @SuppressWarnings("Slf4jConstantLogMessage") public void upgradeFromOlderInternalSchemaDoesNotErrorOnTablesWithUpperCaseCharacters() { TableReference tableRef = TableReference.createFromFullyQualifiedName("test.uPgrAdefRomolDerintErnalscHema"); keyValueService.put( AtlasDbConstants.DEFAULT_METADATA_TABLE, ImmutableMap.of(CassandraKeyValueServices.getMetadataCell(tableRef), ORIGINAL_METADATA), System.currentTimeMillis()); keyValueService.createTable(tableRef, ORIGINAL_METADATA); ((CassandraKeyValueServiceImpl) keyValueService).upgradeFromOlderInternalSchema(); verify(logger, never()).error(anyString(), any(Object.class)); }
@Test @SuppressWarnings("Slf4jConstantLogMessage") public void upgradeFromOlderInternalSchemaDoesNotErrorOnTablesWithOldMetadata() { TableReference tableRef = TableReference.createFromFullyQualifiedName("test.oldTimeyTable"); keyValueService.put( AtlasDbConstants.DEFAULT_METADATA_TABLE, ImmutableMap.of(CassandraKeyValueServices.getOldMetadataCell(tableRef), ORIGINAL_METADATA), System.currentTimeMillis()); keyValueService.createTable(tableRef, ORIGINAL_METADATA); ((CassandraKeyValueServiceImpl) keyValueService).upgradeFromOlderInternalSchema(); verify(logger, never()).error(anyString(), any(Object.class)); }
@Test public void shouldTruncateNamespacedTables() throws Exception { atlasDbService.truncateTable("ns.table"); TableReference tableToTruncate = TableReference.createFromFullyQualifiedName("ns.table"); verify(kvs, atLeastOnce()).truncateTable(tableToTruncate); } }
@Test public void metadataForNewTableMatchesCase() { TableReference userTable = TableReference.createFromFullyQualifiedName("test.xXcOoLtAbLeNaMeXx"); keyValueService.createTable(userTable, ORIGINAL_METADATA); assertThat(keyValueService.getMetadataForTables().keySet().contains(userTable), is(true)); }
@Test public void tablesWithDifferentCapitalizationClaimToHaveMetadata() { kvs.createTable(UPPER_UPPER, AtlasDbConstants.GENERIC_TABLE_METADATA); kvs.createTable(LOWER_UPPER, AtlasDbConstants.GENERIC_TABLE_METADATA); TABLES.forEach(table -> assertThat(kvs.getMetadataForTable(table)).isNotEmpty()); assertThat(kvs.getMetadataForTable(TableReference.createFromFullyQualifiedName("other.table"))).isEmpty(); }
@Test public void oldMixedCaseMetadataStillVisible() { TableReference userTable = TableReference.createFromFullyQualifiedName("test.cAsEsEnSiTiVe"); keyValueService.createTable(userTable, AtlasDbConstants.GENERIC_TABLE_METADATA); clearOutMetadataTable(keyValueService); insertGenericMetadataIntoLegacyCell(keyValueService, userTable, ORIGINAL_METADATA); assertThat( Arrays.equals(keyValueService.getMetadataForTable(userTable), ORIGINAL_METADATA), is(true)); }
private void deleteFooToIdCondIdxRaw(Map<Cell, byte[]> results) { Set<Cell> indexCells = Sets.newHashSetWithExpectedSize(results.size()); for (Entry<Cell, byte[]> result : results.entrySet()) { Foo col = (Foo) shortNameToHydrator.get("f").hydrateFromBytes(result.getValue()); TwoColumnsRow row = TwoColumnsRow.BYTES_HYDRATOR.hydrateFromBytes(result.getKey().getRowName()); long foo = col.getValue(); long id = row.getId(); FooToIdCondIdxTable.FooToIdCondIdxRow indexRow = FooToIdCondIdxTable.FooToIdCondIdxRow.of(foo); FooToIdCondIdxTable.FooToIdCondIdxColumn indexCol = FooToIdCondIdxTable.FooToIdCondIdxColumn.of(row.persistToBytes(), col.persistColumnName(), id); indexCells.add(Cell.create(indexRow.persistToBytes(), indexCol.persistToBytes())); } t.delete(TableReference.createFromFullyQualifiedName("default.foo_to_id_cond_idx"), indexCells); }
private void deleteIndex1IdxRaw(Map<Cell, byte[]> results) { Set<Cell> indexCells = Sets.newHashSetWithExpectedSize(results.size()); for (Entry<Cell, byte[]> result : results.entrySet()) { Value col = (Value) shortNameToHydrator.get("v").hydrateFromBytes(result.getValue()); DataRow row = DataRow.BYTES_HYDRATOR.hydrateFromBytes(result.getKey().getRowName()); long value = col.getValue(); long id = row.getId(); Index1IdxTable.Index1IdxRow indexRow = Index1IdxTable.Index1IdxRow.of(value); Index1IdxTable.Index1IdxColumn indexCol = Index1IdxTable.Index1IdxColumn.of(row.persistToBytes(), col.persistColumnName(), id); indexCells.add(Cell.create(indexRow.persistToBytes(), indexCol.persistToBytes())); } t.delete(TableReference.createFromFullyQualifiedName("default.index1_idx"), indexCells); }
private void deleteIndex2IdxRaw(Map<Cell, byte[]> results) { Set<Cell> indexCells = Sets.newHashSetWithExpectedSize(results.size()); for (Entry<Cell, byte[]> result : results.entrySet()) { Value col = (Value) shortNameToHydrator.get("v").hydrateFromBytes(result.getValue()); DataRow row = DataRow.BYTES_HYDRATOR.hydrateFromBytes(result.getKey().getRowName()); long value = col.getValue(); long id = row.getId(); Index2IdxTable.Index2IdxRow indexRow = Index2IdxTable.Index2IdxRow.of(value, id); Index2IdxTable.Index2IdxColumn indexCol = Index2IdxTable.Index2IdxColumn.of(row.persistToBytes(), col.persistColumnName()); indexCells.add(Cell.create(indexRow.persistToBytes(), indexCol.persistToBytes())); } t.delete(TableReference.createFromFullyQualifiedName("default.index2_idx"), indexCells); }
@Test public void testDeleteTablesForSweepSchema() { Set<TableReference> allTableNames = Sets.newHashSet(); allTableNames.add(TableReference.createFromFullyQualifiedName("sweep.priority")); mockery.checking(new Expectations(){{ oneOf(kvs).getAllTableNames(); will(returnValue(allTableNames)); oneOf(kvs).dropTables(allTableNames); oneOf(kvs).getAllTableNames(); }}); Schemas.deleteTablesAndIndexes(SweepSchema.INSTANCE.getLatestSchema(), kvs); }
private static SweepPriority priority(String tableName, int number) { return ImmutableSweepPriority.builder() .tableRef(TableReference.createFromFullyQualifiedName(tableName)) .staleValuesDeleted(3 + number) .cellTsPairsExamined(10 + number) .lastSweepTimeMillis(123 + number) .minimumSweptTimestamp(456 + number) .writeCount(5 + number) .build(); }