[infinispan-issues] [JBoss JIRA] (ISPN-6009) Stop using thread-locals for marshalling

Dan Berindei (JIRA) issues at jboss.org
Tue Apr 17 10:02:01 EDT 2018


     [ https://issues.jboss.org/browse/ISPN-6009?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dan Berindei resolved ISPN-6009.
--------------------------------
    Fix Version/s: 9.0.0.Final
       Resolution: Done


Fixed with ISPN-6906

> Stop using thread-locals for marshalling
> ----------------------------------------
>
>                 Key: ISPN-6009
>                 URL: https://issues.jboss.org/browse/ISPN-6009
>             Project: Infinispan
>          Issue Type: Task
>          Components: Core, Marshalling
>    Affects Versions: 8.0.2.Final
>            Reporter: Dan Berindei
>            Assignee: Dan Berindei
>             Fix For: 9.0.0.Final
>
>
> Marshalling currently uses a thread-local cache for {{RiverMarshaller}} instances. One of the reasons to cache these {{RiverMarshaller}}s was that they always allocate 2 {{IdentityIntMap}}s, one for the instance cache and one for the class cache. 
> But that also creates a problem, because these caches never shrink. If a {{StateResponseCommand}} includes a lot of {{Serializable}} objects, the caches will grow, and then they will never be used untile the next state transfer.
> We should change our internal marshalling API so that it's easy to reuse marshallers without using thread-locals, and to use one-off marshallers for state transfer.
> Currently unmarshalling also requires a thread-local to use the proper classloader. A session-based marshalling API would remove the need for the thread-local (especially important with sequential interceptors).



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the infinispan-issues mailing list