[midPoint-git] [Evolveum/midpoint] 48ec6c: Optimize REPLACE for index-only items

mederly noreply at github.com
Wed Jul 31 06:18:05 UTC 2019


  Branch: refs/heads/master
  Home:   https://github.com/Evolveum/midpoint
  Commit: 48ec6c7ce989bbd714712f0a55ee51a63ee9b03e
      https://github.com/Evolveum/midpoint/commit/48ec6c7ce989bbd714712f0a55ee51a63ee9b03e
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2019-07-30 (Tue, 30 Jul 2019)

  Changed paths:
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ExtensionTest.java
    M repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/RObject.java
    M repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/common/any/RAssignmentExtension.java
    M repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/ObjectDeltaUpdater.java
    M repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/ObjectUpdater.java
    M repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/modify/DeltaUpdaterUtils.java

  Log Message:
  -----------
  Optimize REPLACE for index-only items

1) We re-added cascading on SAVE/UPDATE - it seems that it can be
   safely used
2) When replacing, we simply add values to the collection instead of
   persisting them manually. It looks like the persist, although
   produces no SQL command, is particularly slow because of Hibernate
   processing.
3) We do not apply item-only modifications to main prism object
   (there's no point in doing so).


  Commit: 3ed334a08bc61e5dc39bd91b521f90b7bae12b96
      https://github.com/Evolveum/midpoint/commit/3ed334a08bc61e5dc39bd91b521f90b7bae12b96
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2019-07-30 (Tue, 30 Jul 2019)

  Changed paths:
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismPropertyImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismReferenceImpl.java

  Log Message:
  -----------
  Optimize object clone operation

There's no point in checking uniqueness when cloning items.
(PrismContainer already had this optimization implemented.)


  Commit: 5db34df74cc06c8e05d6fca7c3ebd0895e7049f7
      https://github.com/Evolveum/midpoint/commit/5db34df74cc06c8e05d6fca7c3ebd0895e7049f7
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

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

  Log Message:
  -----------
  Improve updating shadow with large # of values

The current implementation of ADD value operation in repo is slow
for large number of values. As a test, let's use REPLACE in that cases.


Compare: https://github.com/Evolveum/midpoint/compare/608205ad6851...5db34df74cc0


More information about the midPoint-svn mailing list