5c0dddd837
Sending multiple events in a single network request should minimize latency and traffic. Closes #30445 Signed-off-by: Pedro Ruivo <pruivo@redhat.com>
22 lines
1.4 KiB
Text
22 lines
1.4 KiB
Text
= Infinispan marshalling changes
|
|
|
|
Marshalling is the process of converting Java objects into bytes to send them across the network between {project_name} servers.
|
|
With {project_name} 26, the marshalling library has changed from JBoss Marshalling to Infinispan Protostream.
|
|
The libraries are not compatible between each other and, it requires some steps to ensure the session data is not lost.
|
|
|
|
WARNING: JBoss Marshalling and Infinispan Protostream are not compatible with each other and incorrect usage may lead to data loss.
|
|
Consequently, all caches are cleared when upgrading to this version.
|
|
|
|
To prevent losing user sessions upgrade to Keycloak 25 first and enable the persistent sessions feature as outlined in the migration guide for {project_name} 25.
|
|
|
|
= New method in `ClusterProvider` API
|
|
|
|
The following method was added to `org.keycloak.cluster.ClusterProvider`:
|
|
|
|
* `void notify(String taskKey, Collection<? extends ClusterEvent> events, boolean ignoreSender, DCNotify dcNotify)`
|
|
|
|
When multiple events are sent to the same `taskKey`, this method batches events and just perform a single network call.
|
|
This is an optimization to reduce traffic and network related resources.
|
|
|
|
In {project_name} 26, the new method has a default implementation to keep backward compatibility with custom implementation.
|
|
The default implementation performs a single network call per an event, and it will be removed in a future version of {project_name}.
|