Skip to content

fixed BUG-48427: low prio entries can get precedence over high prio

Having scheduled in a given ImportEntryProcessRunnable a set of import entries (all of them sharing same type of data and the same key). If the processing of those entries does not finalize when the next ImportEntry cycle looks for new entries to process and there are entries for the same type of data and key, they will be scheduled to be executed in the already running ImportEntryProcessRunnable. This makes these newly scheduled entries to take precedence over new entries of other types of data with a supposedly higher priority that require a new ImportEntryProcessRunnable.

Now ImportEntryProcessRunnable instances are linked to the ImportEntryManager's execution cycle, so new entries for the same type and key are not scheduled if there are still entries with the same key and type scheduled from a previous cycle.

Executions comparisons

Config
** Import Entry config
  import.batch.size                     5000
  import.number.of.threads              11
  import.max.task.queue.size            1000
  import.wait.time                      600
  import.processing.capacity.per.second 330
** OBUIELS_Data1
  Num of Entries 10
  Period         200
  Cycles         50
  Delay          50
  Exec Time      50
  # of Keys      50
** OBUIELS_Data2
  Num of Entries 200
  Period         100
  Cycles         15
  Delay          0
  Exec Time      750
  # of Keys      10

Before fix 48427-not-fixed

After fix 48427-fixed

Edited by Asier Lostalé

Merge request reports