Replies: 2 comments 4 replies
-
|
This raises the question - should components be stored inside a metadata or in a separate table? |
Beta Was this translation helpful? Give feedback.
-
|
@sguilhen - with the latest changes the component behaves as a root entity in the JPA implementation, still looking on the logical layer it only serves "dumb" ComponentModel objects that don't allow for direct manipulation. This is IMHO is a mismatch. Still we could agree to keep it as is for now. As we now split the storage inside JPA to allow independent manipulation of the realm and the components, I wonder if we plan for any other storage to handle Realms (Infinispan?), should they split their storage into realm and components as well to avoid concurrency problems? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Implementation of the
JpaRealmEntityin PR #10901 implementsJpaRootVersionedEntityfor optimistic locking.However, when running the testsuite with the JPA Map Realm storage enabled, a few tests fail with
OptmisticLockException. (see #11070). One of the tests,ComponentsTest, attempts to create components in multiple threads, which raises the question: Is it expected that a realm can be updated concurrently by multiple threads? If it is, should the entity still use optimistic locking and basically rely on clients retrying the operation in case of failures or should we simply not use optimistic locking for realms?Components are just a tiny part of a realm, if client apps are using multiple threads to update different realm areas, such as auth exectutions, auth flows, identity providers, required actions, etc, they are certainly going to hit the issue highlighted by the test.
Beta Was this translation helpful? Give feedback.
All reactions