[
https://issues.redhat.com/browse/WFLY-13426?page=com.atlassian.jira.plugi...
]
Paul Ferraro commented on WFLY-13426:
-------------------------------------
[~brian.stansberry] Yes, this is an opt-in behavior. An application that wishes to use
ProtoStream can annotate objects using ProtoStream annotations (and compile using
org.infinispan.protostream:protostream-processor, which will auto-generate protobuf
schemas, marshallers, and SerializationContextInitializers) and/or these can be provided
manually.
To determine which marshalling implementation to use for a given module/deployment, the WF
integration code will look for service provider implementations of
SerializationContextInitializer on the deployment classpath. If any exist, then we will
use ProtoStream marshalling. If none exist, we fallback to JBoss Marshalling.
Optimize marshalling in clustering subsystems using ProtoStream
---------------------------------------------------------------
Key: WFLY-13426
URL:
https://issues.redhat.com/browse/WFLY-13426
Project: WildFly
Issue Type: Task
Components: Clustering
Affects Versions: 19.1.0.Final
Reporter: Paul Ferraro
Assignee: Paul Ferraro
Priority: Major
Currently, WildFly uses JBoss Marshalling to marshal user objects (session attributes,
SFSB instances) for the purposes of replication and persistence.
Protostream (developed by the Infinispan team) offers several advantages over JBoss
Marshalling.
* Lower memory footprint (marshalling schemas are built during compilation time)
** Marshalling is granular, thus avoiding lots of large buffer copying
* Faster marshalling - as it does not rely on reflection
* Produces generally smaller replication payloads (see
https://docs.google.com/spreadsheets/d/1f6FlXqxX7dYm44naHZfqLc5TjqlmscIdG...
)
* Resolves security concerns due to JBM's reliance on reflection and Java
serialization inherently permitting arbitrary execution of rogue code
* JBoss Marshalling is effectively in maintenance mode
--
This message was sent by Atlassian Jira
(v7.13.8#713008)