Repository navigation
Replies: 2 comments 4 replies
|
This raises the question - should components be stored inside a metadata or in a separate table? |
2 replies
|
@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? |
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
All reactions