@Override public Map<Key,Value> next() { if (!hasNext()) throw new NoSuchElementException(); Map<Key,Value> tmp = currentTabletKeys; currentTabletKeys = null; Set<Entry<Key,Value>> es = tmp.entrySet(); Iterator<Entry<Key,Value>> esIter = es.iterator(); while (esIter.hasNext()) { Map.Entry<Key,Value> entry = esIter.next(); if (!returnPrevEndRow && Constants.METADATA_PREV_ROW_COLUMN.hasColumns(entry.getKey())) { esIter.remove(); } if (!returnDir && Constants.METADATA_DIRECTORY_COLUMN.hasColumns(entry.getKey())) { esIter.remove(); } } return tmp; }
@Override public Map<Key,Value> next() { if (!hasNext()) throw new NoSuchElementException(); Map<Key,Value> tmp = currentTabletKeys; currentTabletKeys = null; Set<Entry<Key,Value>> es = tmp.entrySet(); Iterator<Entry<Key,Value>> esIter = es.iterator(); while (esIter.hasNext()) { Map.Entry<Key,Value> entry = esIter.next(); if (!returnPrevEndRow && TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(entry.getKey())) { esIter.remove(); } if (!returnDir && TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.hasColumns(entry.getKey())) { esIter.remove(); } } return tmp; }
static void initializeClone(String srcTableId, String tableId, Connector conn, BatchWriter bw) throws TableNotFoundException, MutationsRejectedException { TabletIterator ti = new TabletIterator(createCloneScanner(srcTableId, conn), new KeyExtent(new Text(srcTableId), null, null).toMetadataRange(), true, true); if (!ti.hasNext()) throw new RuntimeException(" table deleted during clone? srcTableId = " + srcTableId); while (ti.hasNext()) bw.addMutation(createCloneMutation(srcTableId, tableId, ti.next())); bw.flush(); }
@VisibleForTesting public static void initializeClone(String tableName, String srcTableId, String tableId, Connector conn, BatchWriter bw) throws TableNotFoundException, MutationsRejectedException { TabletIterator ti; if (srcTableId.equals(MetadataTable.ID)) ti = new TabletIterator(createCloneScanner(tableName, srcTableId, conn), new Range(), true, true); else ti = new TabletIterator(createCloneScanner(tableName, srcTableId, conn), new KeyExtent(srcTableId, null, null).toMetadataRange(), true, true); if (!ti.hasNext()) throw new RuntimeException(" table deleted during clone? srcTableId = " + srcTableId); while (ti.hasNext()) bw.addMutation(createCloneMutation(srcTableId, tableId, ti.next())); bw.flush(); }
while (tabletIterator.hasNext()) { Map<Key,Value> tabletKeyValues = tabletIterator.next();
TabletIterator cloneIter = new TabletIterator(createCloneScanner(tableId, conn), new KeyExtent(new Text(tableId), null, null).toMetadataRange(), true, true); if (!cloneIter.hasNext() || !srcIter.hasNext()) throw new RuntimeException(" table deleted during clone? srcTableId = " + srcTableId + " tableId=" + tableId); while (cloneIter.hasNext()) { Map<Key,Value> cloneTablet = cloneIter.next(); Text cloneEndRow = new KeyExtent(cloneTablet.keySet().iterator().next().getRow(), (Text) null).getEndRow();
new KeyExtent(tableId, null, null).toMetadataRange(), true, true); if (!cloneIter.hasNext() || !srcIter.hasNext()) throw new RuntimeException( " table deleted during clone? srcTableId = " + srcTableId + " tableId=" + tableId); while (cloneIter.hasNext()) { Map<Key,Value> cloneTablet = cloneIter.next(); Text cloneEndRow = new KeyExtent(cloneTablet.keySet().iterator().next().getRow(), (Text) null)