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

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


  Branch: refs/heads/master
  Home:   https://github.com/Evolveum/midpoint
  Commit: 5c872190553e2638b81d632bbbfed86e3ce1ae12
      https://github.com/Evolveum/midpoint/commit/5c872190553e2638b81d632bbbfed86e3ce1ae12
  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: 38ae8ccb417ff905607dadb66611a3b376a39b07
      https://github.com/Evolveum/midpoint/commit/38ae8ccb417ff905607dadb66611a3b376a39b07
  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: 637ee731060f7eee850637a403fdb973785c8e85
      https://github.com/Evolveum/midpoint/commit/637ee731060f7eee850637a403fdb973785c8e85
  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: 771caf45cecf276ee8ab4c3cc4e3e8a0f15fb579
      https://github.com/Evolveum/midpoint/commit/771caf45cecf276ee8ab4c3cc4e3e8a0f15fb579
  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: 0ff20f8f5f48d7305473001210469ea8b69fc4a3
      https://github.com/Evolveum/midpoint/commit/0ff20f8f5f48d7305473001210469ea8b69fc4a3
  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: 2bc142496e0e5c86cb6e7741600bb32808036bb0
      https://github.com/Evolveum/midpoint/commit/2bc142496e0e5c86cb6e7741600bb32808036bb0
  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/123f921ca4a0...2bc142496e0e

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