class PostgresStorage implements IStorage, IDistributedStorage {

  @Override
  public boolean renewLead(UUID leaderId) {
    if (null != jdbi) {
      try (Handle h = jdbi.open()) {
        int rowsUpdated = getPostgresStorage(h).renewLead(
            leaderId,
            reaperInstanceId,
            AppContext.REAPER_INSTANCE_ADDRESS
        );

        if (rowsUpdated == 1) {
          LOG.debug("Renewed lead on segment {}", leaderId);
          return true;
        }
        LOG.error("Failed to renew lead on segment {}", leaderId);
      }
    }
    return false;
  }

  public  PostgresStorage(UUID reaperInstanceId, DBI jdbi);
  @VisibleForTesting public  PostgresStorage(UUID reaperInstanceId,
                         DBI jdbi,
                         int leaderTimeoutInMinutes,
                         int reaperTimeoutInMinutes,
                         int metricsTimeoutInMinutes,
                         int nodeOperationsTimeoutInMinutes);

}