]> granicus.if.org Git - postgresql/commitdiff
Remove dead code from pop_next_work_item().
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 17 Sep 2018 16:43:07 +0000 (12:43 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 17 Sep 2018 16:43:07 +0000 (12:43 -0400)
The pref_non_data heuristic has been dead code for nearly ten years,
and as far as I can tell was dead code even when it was first committed.
I'm tired of silencing Coverity complaints about it, so get rid of it.
If anyone is ever interested in pursuing the concept, they can get the
code out of our git history.

src/bin/pg_dump/pg_backup_archiver.c

index 3f7a658bcec0d7e96ec3d941ec57eeda317f7e2e..7d1d439ba2878ff541e5b0d822054c5bb56127bd 100644 (file)
@@ -4434,37 +4434,11 @@ move_to_ready_list(TocEntry *pending_list,
  * and no requirements for locks that are incompatible with
  * items currently running.  Items in the ready_list are known to have
  * no remaining dependencies, but we have to check for lock conflicts.
- *
- * pref_non_data is for an alternative selection algorithm that gives
- * preference to non-data items if there is already a data load running.
- * It is currently disabled.
  */
 static TocEntry *
 pop_next_work_item(ArchiveHandle *AH, ParallelReadyList *ready_list,
                                   ParallelState *pstate)
 {
-       bool            pref_non_data = false;  /* or get from AH->ropt */
-       int                     data_te_index = -1;
-
-       /*
-        * Bogus heuristics for pref_non_data
-        */
-       if (pref_non_data)
-       {
-               int                     count = 0;
-
-               for (int k = 0; k < pstate->numWorkers; k++)
-               {
-                       TocEntry   *running_te = pstate->te[k];
-
-                       if (running_te != NULL &&
-                               running_te->section == SECTION_DATA)
-                               count++;
-               }
-               if (pstate->numWorkers == 0 || count * 4 < pstate->numWorkers)
-                       pref_non_data = false;
-       }
-
        /*
         * Sort the ready_list so that we'll tackle larger jobs first.
         */
@@ -4500,26 +4474,11 @@ pop_next_work_item(ArchiveHandle *AH, ParallelReadyList *ready_list,
                if (conflicts)
                        continue;
 
-               if (pref_non_data && te->section == SECTION_DATA)
-               {
-                       if (data_te_index < 0)
-                               data_te_index = i;
-                       continue;
-               }
-
                /* passed all tests, so this item can run */
                ready_list_remove(ready_list, i);
                return te;
        }
 
-       if (data_te_index >= 0)
-       {
-               TocEntry   *data_te = ready_list->tes[data_te_index];
-
-               ready_list_remove(ready_list, data_te_index);
-               return data_te;
-       }
-
        ahlog(AH, 2, "no item ready\n");
        return NULL;
 }