Arnoud Glimmerveen created FELIX-6778:
-----------------------------------------

             Summary: Reduce number of re-creation(s) of SCR Component Registry 
thread
                 Key: FELIX-6778
                 URL: https://issues.apache.org/jira/browse/FELIX-6778
             Project: Felix
          Issue Type: Improvement
          Components: Declarative Services (SCR)
            Reporter: Arnoud Glimmerveen


I noticed when assigning a low value to {{ds.service.changecount.timeout}} 
quite a lot of short-lived threads are created in quick succession during 
startup. I found that the current approach to cancelling a timer after 
successful update to the service.changecount property and the re-creating of 
the timer for a subsequent changecount update, especially during startup (when 
SCR is doing a lot of work) results in a quite lot of threads being created 
that are short-lived.

I propose another approach that limits the threads being created. By using a 
ScheduledThreadPoolExecutor, the changecount update can still scheduled with 
its timeout, but the executor would be able to reuse the thread for subsequent 
updates. Also this executor can be configured to have the thread(s) be 
terminated after a period of time that no tasks are scheduled on the executor, 
thereby ensuring that there is no thread occupying resource(s) when there are 
no updates to the changecount.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to