[midPoint-git] [Evolveum/midpoint] ac78f2: Skip item logging code if not needed

mederly noreply at github.com
Sat Jan 25 00:52:25 CET 2025


  Branch: refs/heads/support-4.9
  Home:   https://github.com/Evolveum/midpoint
  Commit: ac78f284eaa5d5f2eb33abb893595ca48273e741
      https://github.com/Evolveum/midpoint/commit/ac78f284eaa5d5f2eb33abb893595ca48273e741
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-01-25 (Sat, 25 Jan 2025)

  Changed paths:
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/classification/ResourceObjectClassifier.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/StatisticsLogger.java

  Log Message:
  -----------
  Skip item logging code if not needed

There's no need to prepare item-level logging information if they're
not used.

This improves the performance of "no-op" import of already existing
shadows in "1s-200m-0t-0m-0a-10ku" scenario by ~3%.


  Commit: 2e9f886d879985d4cd430bf10c7df1bed18bacb3
      https://github.com/Evolveum/midpoint/commit/2e9f886d879985d4cd430bf10c7df1bed18bacb3
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-01-25 (Sat, 25 Jan 2025)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/ShadowAttribute.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/ShadowReferenceAttribute.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/ShadowSimpleAttribute.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/ShadowPostProcessor.java

  Log Message:
  -----------
  Skip some definition application if not needed

We can skip applying shadow/attribute definitions in some cases,
especially if there are no auxiliary classes involved.

This improves the performance of "no-op" import of already existing
shadows in "1s-200m-0t-0m-0a-10ku" scenario by ~30%.


  Commit: c43ace6e93807fabb4b9642eb5aaf69110d770e0
      https://github.com/Evolveum/midpoint/commit/c43ace6e93807fabb4b9642eb5aaf69110d770e0
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-01-25 (Sat, 25 Jan 2025)

  Changed paths:
    A infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/PropertyAccess.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/PropertyLimitations.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/ShadowAttribute.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/AccessChecker.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/ShadowedObjectConstruction.java

  Log Message:
  -----------
  Improve shadowed object construction performance

1. When "shadowizing" resource object fetched from the resource, we
no longer clone individual attributes. We simply move them from the
resource object to the shadow, destroying the original object.

2. Access rights aspects of shadow definition ("canRead" etc) were moved
from prism structures to POJOs, as they are queried quite often, so
their performance is crucial. See the new PropertyAccess class.


  Commit: 0da7395d07aa3696ae1a3bf164cd2ac9b183af54
      https://github.com/Evolveum/midpoint/commit/0da7395d07aa3696ae1a3bf164cd2ac9b183af54
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-01-25 (Sat, 25 Jan 2025)

  Changed paths:
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/ShadowedObjectConstruction.java

  Log Message:
  -----------
  Optimize moveAndShadowizeAttributes even further

Forgotten idea related to the previous commit: if there's no definition
change, we don't have to look up attribute definitions at all.


  Commit: 13147e34b52f931dbf3e46997ddcd1eb4bf37246
      https://github.com/Evolveum/midpoint/commit/13147e34b52f931dbf3e46997ddcd1eb4bf37246
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-01-25 (Sat, 25 Jan 2025)

  Changed paths:
    M provisioning/ucf-api/src/main/java/com/evolveum/midpoint/provisioning/ucf/api/UcfResourceObject.java

  Log Message:
  -----------
  Skip costlier UcfResourceObject consistency checks

This should improve the performance of shadow "get" operation a bit.


  Commit: a68638aa03873e2bf1f8895d44bfcca195885f80
      https://github.com/Evolveum/midpoint/commit/a68638aa03873e2bf1f8895d44bfcca195885f80
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-01-25 (Sat, 25 Jan 2025)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/internals/InternalsConfig.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/AbstractResourceObjectDefinitionImpl.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/ResourceObjectDefinition.java
    M infra/schema/src/main/resources/xml/ns/public/common/common-provisioning-3.xsd
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/manager/ShadowDeltaComputerAbsolute.java
    M testing/story/src/test/java/com/evolveum/midpoint/testing/story/sysperf/TestSystemPerformance.java

  Log Message:
  -----------
  Add an ability to skip retrieval timestamp update

Especially when using caching for reporting purposes only, updating
retrievalTimestamp in shadows can be an unnecessary overhead: basically
modifying a shadow each time it is fetched from the resource.

This commit provides an experimental option to turn the updating off.
(Plus corresponding code in TestSystemPerformance that uses this
feature.)


Compare: https://github.com/Evolveum/midpoint/compare/84ad76181be3...a68638aa0387

To unsubscribe from these emails, change your notification settings at https://github.com/Evolveum/midpoint/settings/notifications


More information about the midPoint-svn mailing list