[midPoint-git] [Evolveum/midpoint] e63c0e: Optimize work allocation (round 1)

Pavol Mederly mederly at evolveum.com
Mon Apr 16 18:43:35 CEST 2018


  Branch: refs/heads/feature/optimizing-work-allocation
  Home:   https://github.com/Evolveum/midpoint
  Commit: e63c0ec58232c8d7bff21e7c1df1cb5af9cd648c
      https://github.com/Evolveum/midpoint/commit/e63c0ec58232c8d7bff21e7c1df1cb5af9cd648c
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2018-04-16 (Mon, 16 Apr 2018)

  Changed paths:
    M infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd
    M repo/task-quartz-impl/src/main/java/com/evolveum/midpoint/task/quartzimpl/work/BaseWorkSegmentationStrategy.java
    M repo/task-quartz-impl/src/main/java/com/evolveum/midpoint/task/quartzimpl/work/segmentation/ExplicitWorkSegmentationStrategy.java
    M repo/task-quartz-impl/src/main/java/com/evolveum/midpoint/task/quartzimpl/work/segmentation/NumericWorkSegmentationStrategy.java
    M repo/task-quartz-impl/src/main/java/com/evolveum/midpoint/task/quartzimpl/work/segmentation/SingleNullWorkSegmentationStrategy.java
    M repo/task-quartz-impl/src/main/java/com/evolveum/midpoint/task/quartzimpl/work/segmentation/StringWorkSegmentationStrategy.java
    M repo/task-quartz-impl/src/test/java/com/evolveum/midpoint/task/quartzimpl/TestWorkDistribution.java
    A repo/task-quartz-impl/src/test/resources/work/task-107-0.xml
    M repo/task-quartz-impl/src/test/resources/work/task-130-c.xml

  Log Message:
  -----------
  Optimize work allocation (round 1)

Here we optimize creation of new work buckets, to be processed
in batches (instead of one-by-one). Also, when allocating existing
buckets we select them randomly, not getting always the first one.

This helps a bit: although it does not prevent collisions on coordinator
task updates, precondition violations in WorkStateManager are greatly
avoided.

TODO:
- maintain a reasonably long list of ready buckets (for randomization
  to work well)
- delegate buckets in batches (not only create them) - this will avoid
  contention on the coordinator task even more




More information about the midPoint-svn mailing list