public void clearMigrations(Table.ID tableId) { synchronized (migrations) { Iterator<KeyExtent> iterator = migrations.keySet().iterator(); while (iterator.hasNext()) { KeyExtent extent = iterator.next(); if (extent.getTableId().equals(tableId)) { iterator.remove(); } } } }
@Override public boolean equals(Object o) { if (o instanceof ReplicationTarget) { ReplicationTarget other = (ReplicationTarget) o; return peerName.equals(other.peerName) && remoteIdentifier.equals(other.remoteIdentifier) && sourceTableId.equals(other.sourceTableId); } return false; }
private boolean shouldAudit(TCredentials credentials, Table.ID tableId) { return (audit.isInfoEnabled() || audit.isWarnEnabled()) && !tableId.equals(MetadataTable.ID) && shouldAudit(credentials); }
private KeyExtent getHighTablet(KeyExtent range) throws AccumuloException { try { AccumuloClient client = this.master.getContext(); Scanner scanner = client.createScanner(range.isMeta() ? RootTable.NAME : MetadataTable.NAME, Authorizations.EMPTY); TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.fetch(scanner); KeyExtent start = new KeyExtent(range.getTableId(), range.getEndRow(), null); scanner.setRange(new Range(start.getMetadataEntry(), null)); Iterator<Entry<Key,Value>> iterator = scanner.iterator(); if (!iterator.hasNext()) { throw new AccumuloException("No last tablet for a merge " + range); } Entry<Key,Value> entry = iterator.next(); KeyExtent highTablet = new KeyExtent(entry.getKey().getRow(), KeyExtent.decodePrevEndRow(entry.getValue())); if (!highTablet.getTableId().equals(range.getTableId())) { throw new AccumuloException("No last tablet for merge " + range + " " + highTablet); } return highTablet; } catch (Exception ex) { throw new AccumuloException("Unexpected failure finding the last tablet for a merge " + range, ex); } }
private static Iterable<TabletMetadata> createCloneScanner(String testTableName, Table.ID tableId, AccumuloClient client) throws TableNotFoundException { String tableName; Range range; if (testTableName != null) { tableName = testTableName; range = TabletsSection.getRange(tableId); } else if (tableId.equals(MetadataTable.ID)) { tableName = RootTable.NAME; range = TabletsSection.getRange(); } else { tableName = MetadataTable.NAME; range = TabletsSection.getRange(tableId); } return TabletsMetadata.builder().scanTable(tableName).overRange(range).checkConsistency() .saveKeyValues().fetchFiles().fetchLocation().fetchLast().fetchCloned().fetchPrev() .fetchTime().build(client); }
/** * Checks if a user has a table permission<br> * This cannot check if a system user has permission. * * @return true if a user exists and has permission; false otherwise */ protected boolean _hasTablePermission(String user, Table.ID table, TablePermission permission, boolean useCached) throws ThriftSecurityException { targetUserExists(user); if ((table.equals(MetadataTable.ID) || table.equals(RootTable.ID) || table.equals(ReplicationTable.ID)) && permission.equals(TablePermission.READ)) return true; try { if (useCached) return permHandle.hasCachedTablePermission(user, table.canonicalID(), permission); return permHandle.hasTablePermission(user, table.canonicalID(), permission); } catch (TableNotFoundException e) { throw new ThriftSecurityException(user, SecurityErrorCode.TABLE_DOESNT_EXIST); } }
/** * @return Examine current tserver and migrations and return true if balancing should occur. */ protected boolean shouldBalance(SortedMap<TServerInstance,TabletServerStatus> current, Set<KeyExtent> migrations) { if (current.size() < 2) { return false; } for (KeyExtent keyExtent : migrations) { if (keyExtent.getTableId().equals(tableId)) { return false; } } return true; }
public boolean equals(LocatorKey lk) { return instanceId.equals(lk.instanceId) && tableId.equals(lk.tableId); }
@Override public TableRangeOptions forTable(Table.ID tableId) { Preconditions.checkArgument(!tableId.equals(RootTable.ID), "Getting tablet metadata for " + RootTable.NAME + " not supported at this time."); if (tableId.equals(MetadataTable.ID)) { this.table = RootTable.NAME; } else { this.table = MetadataTable.NAME; } this.tableId = tableId; this.range = TabletsSection.getRange(tableId); return this; }
@Override public boolean test(Table.ID tableId) { return !RootTable.ID.equals(tableId); }
public boolean isMeta() { return getTableId().equals(MetadataTable.ID) || isRootTablet(); }
public boolean isRootTablet() { return getTableId().equals(RootTable.ID); } }
public static MetadataServicer forTableId(ClientContext context, Table.ID tableId) { checkArgument(tableId != null, "tableId is null"); if (RootTable.ID.equals(tableId)) return new ServicerForRootTable(context); else if (MetadataTable.ID.equals(tableId)) return new ServicerForMetadataTable(context); else return new ServicerForUserTables(context, tableId); }
public static void checkTableDoesNotExist(ServerContext context, String tableName, Table.ID tableId, TableOperation operation) throws AcceptableThriftTableOperationException { Table.ID id = Tables.getNameToIdMap(context).get(tableName); if (id != null && !id.equals(tableId)) throw new AcceptableThriftTableOperationException(null, tableName, operation, TableOperationExceptionType.EXISTS, null); }
public boolean isPreviousExtent(KeyExtent prevExtent) { if (prevExtent == null) return getPrevEndRow() == null; if (!prevExtent.getTableId().equals(getTableId())) throw new IllegalArgumentException("Cannot compare across tables " + prevExtent + " " + this); if (prevExtent.getEndRow() == null) return false; if (getPrevEndRow() == null) return false; return prevExtent.getEndRow().equals(getPrevEndRow()); }
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); }
@Override public boolean equals(Object o) { if (o instanceof ProblemReport) { ProblemReport opr = (ProblemReport) o; return tableId.equals(opr.tableId) && problemType.equals(opr.problemType) && resource.equals(opr.resource); } return false; } }
@Override public boolean equals(Object o) { if (o == this) return true; if (!(o instanceof KeyExtent)) return false; KeyExtent oke = (KeyExtent) o; return tableId.equals(oke.tableId) && equals(textEndRow, oke.textEndRow) && equals(textPrevEndRow, oke.textPrevEndRow); }