[jboss-jira] [JBoss JIRA] (WFLY-13426) Optimize marshalling in clustering subsystems using ProtoStream

Paul Ferraro (Jira) issues at jboss.org
Sat May 16 22:29:24 EDT 2020


    [ https://issues.redhat.com/browse/WFLY-13426?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14101260#comment-14101260 ] 

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/1f6FlXqxX7dYm44naHZfqLc5TjqlmscIdGyyfmt5I3f4/edit?usp=sharing )
> * 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)


More information about the jboss-jira mailing list