docs: private void addDataSource(File adFile,
              List<Pair<Integer, Integer>> localPartitionsToSites,
              List<Integer> adFilePartitions,
              final ExportDataProcessor processor,
              final long genId) throws IOException {
          ExportDataSource source = new ExportDataSource(this, adFile, localPartitionsToSites, processor, genId);
          adFilePartitions.add(source.getPartitionId());
          int migrateBatchSize = CatalogUtil.getPersistentMigrateBatchSize(source.getTableName());
          source.setupMigrateRowsDeleter(migrateBatchSize);
          if (exportLog.isDebugEnabled()) {
              exportLog.debug("Creating " + source.toString() + " for " + adFile + " bytes " + source.sizeInBytes());
          }
          synchronized(m_dataSourcesByPartition) {
              Map<String, ExportDataSource> dataSourcesForPartition = m_dataSourcesByPartition.get(source.getPartitionId());
              if (dataSourcesForPartition == null) {
                  dataSourcesForPartition = new HashMap<String, ExportDataSource>();
                  m_dataSourcesByPartition.put(source.getPartitionId(), dataSourcesForPartition);
              } else {
                  if (dataSourcesForPartition.get(source.getTableName()) != null) {
                      exportLog.warn("On Disk generation with same table, partition already exists using known data source.");
                      return;
                  }
              }
              dataSourcesForPartition.put(source.getTableName(), source);
          }
      }