@Override public Text getPrevEndRow() { return ke.getPrevEndRow(); }
private static Text rowAfterPrevRow(KeyExtent nke) { Text row = new Text(nke.getPrevEndRow()); row.append(new byte[] {0}, 0, 1); return row; }
private TabletLocation locateTabletInCache(Text row) { Entry<Text,TabletLocation> entry = metaCache.ceilingEntry(row); if (entry != null) { KeyExtent ke = entry.getValue().tablet_extent; if (ke.getPrevEndRow() == null || ke.getPrevEndRow().compareTo(row) < 0) { return entry.getValue(); } } return null; }
protected static Text getStartRowForExtent(KeyExtent extent) { Text start = extent.getPrevEndRow(); if (start != null) { start = new Text(start); // ACCUMULO-3967 We want the first possible key in this tablet, not the following row from the // previous tablet start.append(byte0, 0, 1); } return start; }
private static Text rowAfterPrevRow(KeyExtent nke) { Text row = new Text(nke.getPrevEndRow()); row.append(new byte[] {0}, 0, 1); return row; }
public Range toMetadataRange() { Text metadataPrevRow = new Text(getTableId()); metadataPrevRow.append(new byte[] {';'}, 0, 1); if (getPrevEndRow() != null) { metadataPrevRow.append(getPrevEndRow().getBytes(), 0, getPrevEndRow().getLength()); } Range range = new Range(metadataPrevRow, getPrevEndRow() == null, getMetadataEntry(), true); return range; }
public boolean isPreviousExtent(KeyExtent prevExtent) { if (prevExtent == null) return getPrevEndRow() == null; if (!prevExtent.getTableId().equals(getTableId())) throw new IllegalArgumentException( "Cannot compare accross tables " + prevExtent + " " + this); if (prevExtent.getEndRow() == null) return false; if (getPrevEndRow() == null) return false; return prevExtent.getEndRow().equals(getPrevEndRow()); }
private void check() { if (getTableId() == null) throw new IllegalArgumentException("null table id not allowed"); if (getEndRow() == null || getPrevEndRow() == null) return; if (getPrevEndRow().compareTo(getEndRow()) >= 0) { throw new IllegalArgumentException( "prevEndRow (" + getPrevEndRow() + ") >= endRow (" + getEndRow() + ")"); } }
private static boolean stopRemoving(KeyExtent nke, KeyExtent ke) { return ke.getPrevEndRow() != null && nke.getEndRow() != null && ke.getPrevEndRow().compareTo(nke.getEndRow()) >= 0; }
@Override @Deprecated public org.apache.accumulo.core.data.KeyExtent getExtent() { return new org.apache.accumulo.core.data.KeyExtent(new Text(extent.getTableId()), extent.getEndRow(), extent.getPrevEndRow()); }
public boolean contains(BinaryComparable row) { if (row == null) { throw new IllegalArgumentException( "Passing null to contains is ambiguous, could be in first or last extent of table"); } if ((this.getPrevEndRow() == null || this.getPrevEndRow().compareTo(row) < 0) && (this.getEndRow() == null || this.getEndRow().compareTo(row) >= 0)) { return true; } return false; }
@Override public int runTest() throws Exception { return scanTablet(conn, opts.getTableName(), opts.auths, scanOpts.scanBatchSize, ke.getPrevEndRow(), ke.getEndRow(), columns); } };
public boolean needsToBeChopped(KeyExtent otherExtent) { // During a delete, the block after the merge will be stretched to cover the deleted area. // Therefore, it needs to be chopped if (!otherExtent.getTableId().equals(extent.getTableId())) return false; if (isDelete()) return otherExtent.getPrevEndRow() != null && otherExtent.getPrevEndRow().equals(extent.getEndRow()); else return this.extent.overlaps(otherExtent); }
private static boolean startsAfter(KeyExtent nke, KeyExtent ke) { int tiCmp = ke.getTableId().compareTo(nke.getTableId()); if (tiCmp > 0) { return true; } return ke.getPrevEndRow() != null && nke.getEndRow() != null && ke.getPrevEndRow().compareTo(nke.getEndRow()) >= 0; }
private static KeyExtent wrap(org.apache.accumulo.core.data.impl.KeyExtent ke) { return new KeyExtent(new Text(ke.getTableId()), ke.getEndRow(), ke.getPrevEndRow()); }
@Override @Deprecated public org.apache.accumulo.core.data.KeyExtent getExtent() { KeyExtent ke = new KeyExtent(tac.getExtent()); org.apache.accumulo.core.data.KeyExtent oke = new org.apache.accumulo.core.data.KeyExtent( new Text(ke.getTableId()), ke.getEndRow(), ke.getPrevEndRow()); return oke; }
protected void merge(Connector conn, String table, List<Size> sizes, int numToMerge) throws MergeException { try { Text start = sizes.get(0).extent.getPrevEndRow(); Text end = sizes.get(numToMerge - 1).extent.getEndRow(); message("Merging %d tablets from (%s to %s]", numToMerge, start == null ? "-inf" : start, end == null ? "+inf" : end); conn.tableOperations().merge(table, start, end); } catch (Exception ex) { throw new MergeException(ex); } }
public KeyExtent(KeyExtent extent) { // extent has already deduped table id, so there is no need to do it again this.tableId = extent.tableId; this.setEndRow(extent.getEndRow(), false, true); this.setPrevEndRow(extent.getPrevEndRow(), false, true); check(); }
public static Mutation getPrevRowUpdateMutation(KeyExtent ke) { Mutation m = new Mutation(ke.getMetadataEntry()); TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.put(m, encodePrevEndRow(ke.getPrevEndRow())); return m; }
public MergeStats(MergeInfo info) { this.info = info; if (info.getState().equals(MergeState.NONE)) return; if (info.getExtent().getEndRow() == null) upperSplit = true; if (info.getExtent().getPrevEndRow() == null) lowerSplit = true; }