[xwiki/xwiki-platform] 05adae: XWIKI-22979: Access to pages is slow under high lo...
Branch: refs/heads/master Home: https://github.com/xwiki/xwiki-platform Commit: 05adae51bde4ca0696a24e8e2a9ca0c5ab693af2 https://github.com/xwiki/xwiki-platform/commit/05adae51bde4ca0696a24e8e2a9ca... Author: Michael Hamann <[email protected]> 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
participants (1)
-
XWiki Notifications