initializeClone(null, srcTableId, tableId, context, bw);
@Test public void testSplit1() throws Exception { Connector conn = getConnector(); String tableName = getUniqueNames(1)[0]; conn.tableOperations().create(tableName); BatchWriter bw1 = conn.createBatchWriter(tableName, new BatchWriterConfig()); bw1.addMutation(createTablet("0", null, null, "/default_tablet", "/default_tablet/0_0.rf")); bw1.flush(); BatchWriter bw2 = conn.createBatchWriter(tableName, new BatchWriterConfig()); MetadataTableUtil.initializeClone(tableName, "0", "1", conn, bw2); bw1.addMutation(createTablet("0", "m", null, "/default_tablet", "/default_tablet/0_0.rf")); bw1.addMutation(createTablet("0", null, "m", "/t-1", "/default_tablet/0_0.rf")); bw1.flush(); int rc = MetadataTableUtil.checkClone(tableName, "0", "1", conn, bw2); assertEquals(0, rc); Scanner scanner = conn.createScanner(tableName, Authorizations.EMPTY); scanner.setRange(new KeyExtent("1", null, null).toMetadataRange()); HashSet<String> files = new HashSet<>(); int count = 0; for (Entry<Key,Value> entry : scanner) { if (entry.getKey().getColumnFamily().equals(DataFileColumnFamily.NAME)) { files.add(entry.getKey().getColumnQualifier().toString()); count++; } } assertEquals(1, count); assertEquals(1, files.size()); assertTrue(files.contains("../0/default_tablet/0_0.rf")); }
MetadataTableUtil.initializeClone(tableName, "0", "1", conn, bw2);
MetadataTableUtil.initializeClone(tableName, "0", "1", conn, bw2);
MetadataTableUtil.initializeClone(tableName, "0", "1", conn, bw2);
@Test public void testNoFiles() throws Exception { Connector conn = getConnector(); String tableName = getUniqueNames(1)[0]; conn.tableOperations().create(tableName); KeyExtent ke = new KeyExtent("0", null, null); Mutation mut = ke.getPrevRowUpdateMutation(); TabletsSection.ServerColumnFamily.TIME_COLUMN.put(mut, new Value("M0".getBytes())); TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.put(mut, new Value("/default_tablet".getBytes())); BatchWriter bw1 = conn.createBatchWriter(tableName, new BatchWriterConfig()); bw1.addMutation(mut); bw1.close(); BatchWriter bw2 = conn.createBatchWriter(tableName, new BatchWriterConfig()); MetadataTableUtil.initializeClone(tableName, "0", "1", conn, bw2); int rc = MetadataTableUtil.checkClone(tableName, "0", "1", conn, bw2); assertEquals(0, rc); // scan tables metadata entries and confirm the same }
initializeClone(MetadataTable.NAME, srcTableId, tableId, conn, bw);
MetadataTableUtil.initializeClone(tableName, "0", "1", conn, bw2);
@Test public void testMerge() throws Exception { Connector conn = getConnector(); String tableName = getUniqueNames(1)[0]; conn.tableOperations().create(tableName); BatchWriter bw1 = conn.createBatchWriter(tableName, new BatchWriterConfig()); bw1.addMutation(createTablet("0", "m", null, "/d1", "/d1/file1")); bw1.addMutation(createTablet("0", null, "m", "/d2", "/d2/file2")); bw1.flush(); BatchWriter bw2 = conn.createBatchWriter(tableName, new BatchWriterConfig()); MetadataTableUtil.initializeClone(tableName, "0", "1", conn, bw2); bw1.addMutation(deleteTablet("0", "m", null, "/d1", "/d1/file1")); Mutation mut = createTablet("0", null, null, "/d2", "/d2/file2"); mut.put(DataFileColumnFamily.NAME.toString(), "/d1/file1", new DataFileValue(10, 200).encodeAsString()); bw1.addMutation(mut); bw1.flush(); try { MetadataTableUtil.checkClone(tableName, "0", "1", conn, bw2); assertTrue(false); } catch (TabletIterator.TabletDeletedException tde) {} }