Branch: refs/heads/xwikiorg
  Home:   
https://github.com/xwiki/xwiki-platform
  Commit: f2fe3a7770802ba8a2b1a185aedf1e77d338f532
https://github.com/xwiki/xwiki-platform/commit/f2fe3a7770802ba8a2b1a185aedf…
  Author: Michael Hamann <michael.hamann(a)xwiki.com>
  Date:   2025-05-26 (Mon, 26 May 2025)
  Changed paths:
    A
xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-test/xwiki-platform-flamingo-skin-test-docker/src/main/java/org/xwiki/test/SecurityCachePerformanceTestScriptService.java
    M
xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-test/xwiki-platform-flamingo-skin-test-docker/src/main/resources/META-INF/components.txt
    M
xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-test/xwiki-platform-flamingo-skin-test-docker/src/test/it/org/xwiki/flamingo/test/docker/AllIT.java
    A
xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-test/xwiki-platform-flamingo-skin-test-docker/src/test/it/org/xwiki/flamingo/test/docker/SecurityCacheStressIT.java
    M
xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-authorization/xwiki-platform-security-authorization-api/src/main/java/org/xwiki/security/authorization/cache/internal/DefaultSecurityCache.java
    M
xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-authorization/xwiki-platform-security-authorization-api/src/main/java/org/xwiki/security/authorization/cache/internal/DefaultSecurityCacheLoader.java
    M
xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-authorization/xwiki-platform-security-authorization-api/src/main/java/org/xwiki/security/authorization/cache/internal/SecurityCache.java
    M
xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-authorization/xwiki-platform-security-authorization-api/src/test/java/org/xwiki/security/authorization/cache/internal/DefaultSecurityCacheLoaderTest.java
    M
xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-authorization/xwiki-platform-security-authorization-api/src/test/java/org/xwiki/security/authorization/cache/internal/DefaultSecurityCacheTest.java
  Log Message:
  -----------
  XWIKI-22979: Access to pages is slow under high load on the security cache (#3992)
* Remove the read lock of the security cache to avoid blocking read
  access during cache writes.
* Switch from a ReadWriteLock to a simple write lock as ReadWriteLocks
  might be slow, and we don't really need it anymore.
* Remove the useless check of the internal entries for security access
  entries to avoid needlessly acquiring the write lock.
* Improve the concurrency behavior of upgrading entries to user entries
  to ensure that removing the read lock is safe.
* Replace the invalidation lock used to prevent loading outdated data by
  an invalidation counter. This avoids holding any locks in the security
  cache while a document is potentially loaded from the database. Before
  that, it could happen that while a remove operation is waiting on the
  lock, a database load is executed under the invalidation read lock.
  That would block both the invalidation and all further cache loads as
  the invalidation read lock cannot be obtained anymore as soon as a
  thread is waiting for the invalidation write lock.
* Update the security cache loader and the affected tests.
* Make the write lock in the security cache unfair for increased
  performance.
* Add a stress test for the security cache.
(cherry picked from commit 05adae51bde4ca0696a24e8e2a9ca0c5ab693af2)
(cherry picked from commit 574393e78e76a648ce791699143de755c99cc252)
To unsubscribe from these emails, change your notification settings at
https://github.com/xwiki/xwiki-platform/settings/notifications