code: function updateDataSourceCaches(params, dsWithDocuments, dsWithNoDocuments, cb) {
    //Updating All Of The Data Sources
    //Generating Hashes For The Incoming Data Set. Useful for determining if the stored data set has changed.
    dsWithDocuments = _.map(dsWithDocuments, function(dataSourceData) {
      dataSourceData.dataHash = dataSourceData.error ? null : misc.generateHash(dataSourceData.data);
      return dataSourceData;
    });
  
    async.map(dsWithDocuments, function(dataSourceWithDocument, cb) {
      return updateDataSourceEntry(params, dataSourceWithDocument, cb);
    }, function(err, updatedDocuments) {
  
      logger.debug("ARGUMENTS", arguments);
      //Documents are now either updated or failed
      var validInvalidDataSources = updateValidAndInvalidDataSources(updatedDocuments, dsWithNoDocuments);
  
      return cb(undefined, validInvalidDataSources.valid, validInvalidDataSources.invalid);
    });
  }
docs: Updating All Data Source Caches With New Data Sets Or Errors
  @param params
  - currentTime
  @param dsWithDocuments
  @param dsWithNoDocuments
  @param cb