<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _run_data_engine(self, start_timeperiod, end_timeperiod):
 """ regular data engine """

        collection_name = context.process_context[self.process_name].source
        cursor = self.ds.cursor_batch(collection_name,
                                      start_timeperiod,
                                      end_timeperiod)
        for document in cursor:
            self._process_single_document(document)
            self.performance_tracker.increment_success()

        self._cursor_exploited()
        msg = 'Cursor exploited after fetching {0} documents'.format(self.performance_tracker.success_per_job)
        self.logger.info(msg)