public <T> T retryWithHandle(final HandleCallback<T> callback) { return retryWithHandle(callback, shouldRetry); }
public final boolean isTransientException(Throwable e) { return e != null && (e instanceof RetryTransactionException || e instanceof SQLTransientException || e instanceof SQLRecoverableException || e instanceof UnableToObtainConnectionException || e instanceof UnableToExecuteStatementException || connectorIsTransientException(e) || (e instanceof SQLException && isTransientException(e.getCause())) || (e instanceof DBIException && isTransientException(e.getCause()))); }
@Override public void start() { connector.createAuditTable(); }
@LifecycleStart public void start() { connector.createDataSourceTable(); connector.createPendingSegmentsTable(); connector.createSegmentTable(); }
@Override public void createTaskTables() { if (config.get().isCreateTables()) { final MetadataStorageTablesConfig tablesConfig = tablesConfigSupplier.get(); final String entryType = tablesConfig.getTaskEntryType(); createEntryTable(tablesConfig.getEntryTable(entryType)); createLogTable(tablesConfig.getLogTable(entryType), entryType); createLockTable(tablesConfig.getLockTable(entryType), entryType); } }
@Override public List<Pair<DataSegment, String>> getUsedSegmentAndCreatedDateForInterval(String dataSource, Interval interval) return connector.retryWithHandle( handle -> handle.createQuery( StringUtils.format( "SELECT created_date, payload FROM %1$s WHERE dataSource = :dataSource " + "AND start >= :start AND %2$send%2$s <= :end AND used = true", dbTables.getSegmentsTable(), connector.getQuoteString()
getConnector().retryWithHandle( (HandleCallback<Void>) handle -> { final String sql = StringUtils.format( return null; }, e -> getConnector().isTransientException(e) && !(isStatementException(e) && getEntry(id).isPresent()) );
@Override public void createRulesTable() { if (config.get().isCreateTables()) { createRulesTable(tablesConfigSupplier.get().getRulesTable()); } }
@Override public void createPendingSegmentsTable() { if (config.get().isCreateTables()) { createPendingSegmentsTable(tablesConfigSupplier.get().getPendingSegmentsTable()); } }
@Override public void createConfigTable() { if (config.get().isCreateTables()) { createConfigTable(tablesConfigSupplier.get().getConfigTable()); } }
@Override public void createDataSourceTable() { if (config.get().isCreateTables()) { createDataSourceTable(tablesConfigSupplier.get().getDataSourceTable()); } }
@Override public void createTaskTables() { if (config.get().isCreateTables()) { final MetadataStorageTablesConfig tablesConfig = tablesConfigSupplier.get(); final String entryType = tablesConfig.getTaskEntryType(); createEntryTable(tablesConfig.getEntryTable(entryType)); createLogTable(tablesConfig.getLogTable(entryType), entryType); createLockTable(tablesConfig.getLockTable(entryType), entryType); } }
@LifecycleStart public void start() { connector.createDataSourceTable(); connector.createPendingSegmentsTable(); connector.createSegmentTable(); }
@Override public List<Pair<DataSegment, String>> getUsedSegmentAndCreatedDateForInterval(String dataSource, Interval interval) return connector.retryWithHandle( handle -> handle.createQuery( StringUtils.format( "SELECT created_date, payload FROM %1$s WHERE dataSource = :dataSource " + "AND start >= :start AND %2$send%2$s <= :end AND used = true", dbTables.getSegmentsTable(), connector.getQuoteString()
getConnector().retryWithHandle( (HandleCallback<Void>) handle -> { final String sql = StringUtils.format( return null; }, e -> getConnector().isTransientException(e) && !(isStatementException(e) && getEntry(id).isPresent()) );
@Override public void start() { connector.createRulesTable(); SQLMetadataRuleManager.createDefaultRule( dbi, dbTables.getRulesTable(), config.getDefaultRule(), jsonMapper ); }
@Override public void createPendingSegmentsTable() { if (config.get().isCreateTables()) { createPendingSegmentsTable(tablesConfigSupplier.get().getPendingSegmentsTable()); } }
@Override public void createConfigTable() { if (config.get().isCreateTables()) { createConfigTable(tablesConfigSupplier.get().getConfigTable()); } }
@Override public void createDataSourceTable() { if (config.get().isCreateTables()) { createDataSourceTable(tablesConfigSupplier.get().getDataSourceTable()); } }
@Override public boolean addLock(final String entryId, final LockType lock) { return connector.retryWithHandle( new HandleCallback<Boolean>() { @Override public Boolean withHandle(Handle handle) throws Exception { return addLock(handle, entryId, lock); } } ); }