You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Mark Robert Miller (Jira)" <ji...@apache.org> on 2021/06/29 15:02:00 UTC

[jira] [Updated] (SOLR-15511) Add FastThreadLocal type design enhancement and some buffer / object reuse for reduced gc at scale.

     [ https://issues.apache.org/jira/browse/SOLR-15511?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Robert Miller updated SOLR-15511:
--------------------------------------
    Description: 
A FastThreadLocal object is an idea I've been circling with a common SolrThread for executors that can actually holds thread local type objects itself.

Netty has implemented a similar and more generic solution around this idea that other projects have also borrowed called FastThreadLocal.

This class behaves very much like a typle ThreadLocal, but if the thread object is of the right type, the majority of their ThreadLocal usage will directly fetch from the associated Thread class, whereas other Thread types will fall back to the typical ThreadLocal binding approach.

The FastThreadLocal implementation has been found to be a performance improvement when access may be relatively frequent.

Another thing they do is create a few common data structures and buffers for simple and effect object reuse in key places (eg, a byte buffer, a char buffer, a StringBulider, etc).

[https://netty.io/4.0/api/io/netty/util/concurrent/FastThreadLocal.html]

 

> Add FastThreadLocal type design enhancement and some buffer / object reuse for reduced gc at scale.
> ---------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-15511
>                 URL: https://issues.apache.org/jira/browse/SOLR-15511
>             Project: Solr
>          Issue Type: Sub-task
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Mark Robert Miller
>            Priority: Major
>
> A FastThreadLocal object is an idea I've been circling with a common SolrThread for executors that can actually holds thread local type objects itself.
> Netty has implemented a similar and more generic solution around this idea that other projects have also borrowed called FastThreadLocal.
> This class behaves very much like a typle ThreadLocal, but if the thread object is of the right type, the majority of their ThreadLocal usage will directly fetch from the associated Thread class, whereas other Thread types will fall back to the typical ThreadLocal binding approach.
> The FastThreadLocal implementation has been found to be a performance improvement when access may be relatively frequent.
> Another thing they do is create a few common data structures and buffers for simple and effect object reuse in key places (eg, a byte buffer, a char buffer, a StringBulider, etc).
> [https://netty.io/4.0/api/io/netty/util/concurrent/FastThreadLocal.html]
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org