Always fixed thread pool in IO subsystem's worker

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Always fixed thread pool in IO subsystem's worker

Jan Kasik
Hi, I recently started writing test for newly exposed metrics from underlying XNIO to IO subsystem (https://issues.jboss.org/browse/WFCORE-1341). Because I didn't understand the values I dig into XNIO implementation where I found out that the underlying thread pool in org.xnio.XnioWorker is always fixed size (e.g.: 'corePoolSize == maxPoolSize' - see line 117). I already talked with David M. Lloyd about this and from what he said I understood that this is currently feature because of danger of race conditions.
Because of this state there are several issues in context of IO subsystem which bother me and I am not sure what to think about it:
* Newly exposed metric 'max-pool-size' is same value as already present 'task-max-threads' - are they really duplicitous?
* Newly exposed metrics 'max-pool-size' and 'core-pool-size' are always equal
* There is no way for user to find out without studying implementation - shouldn't be user informed about this?
* Since they are always fixed size, the attribute 'task-keepalive' has no meaning - am I right?

Thank you for your ideas!

--
Jan (Honza) Kasik
Red Hat, Associate Quality Engineer, EAP QE

_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Always fixed thread pool in IO subsystem's worker

David M. Lloyd
On 01/23/2017 04:51 AM, Jan Kasik wrote:

> Hi, I recently started writing test for newly exposed metrics from
> underlying XNIO to IO subsystem
> (https://issues.jboss.org/browse/WFCORE-1341). Because I didn't
> understand the values I dig into XNIO implementation where I found out
> that the underlying thread pool in org.xnio.XnioWorker is always fixed
> size (e.g.: 'corePoolSize == maxPoolSize' - see line 117). I already
> talked with David M. Lloyd about this and from what he said I understood
> that this is currently feature because of danger of race conditions.
> Because of this state there are several issues in context of IO
> subsystem which bother me and I am not sure what to think about it:
> * Newly exposed metric 'max-pool-size' is same value as already present
> 'task-max-threads' - are they really duplicitous?
> * Newly exposed metrics 'max-pool-size' and 'core-pool-size' are always
> equal
> * There is no way for user to find out without studying implementation -
> shouldn't be user informed about this?
> * Since they are always fixed size, the attribute 'task-keepalive' has
> no meaning - am I right?

For now.  It is on my task list to improve the thread pool
implementation, at which point these synonymous attributes will start
having individual meaning.

--
- DML
_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Loading...