Branch: refs/heads/master
Home:
https://github.com/xwiki/xwiki-platform
Commit: 05adae51bde4ca0696a24e8e2a9ca0c5ab693af2
https://github.com/xwiki/xwiki-platform/commit/05adae51bde4ca0696a24e8e2a9c…
Author: Michael Hamann <michael.hamann(a)xwiki.com>
Date: 2025-03-20 (Thu, 20 Mar 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.
To unsubscribe from these emails, change your notification settings at
https://github.com/xwiki/xwiki-platform/settings/notifications