You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Aleksey Shipilev (JIRA)" <ji...@apache.org> on 2007/10/01 17:26:50 UTC
[jira] Created: (HARMONY-4879) [classlib][nio] epoll-based Selector
[classlib][nio] epoll-based Selector
------------------------------------
Key: HARMONY-4879
URL: https://issues.apache.org/jira/browse/HARMONY-4879
Project: Harmony
Issue Type: Improvement
Components: Classlib
Environment: Linux
Reporter: Aleksey Shipilev
As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
-Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
This version is early draft and NOT intended for the inclusion, since result handling could be O(n^2) in the worst case, that would be solved later. Nevertheless, the performance on select() operations has been improved dramatically. On the simple test which registers 2000 connections on the selector and then pushes it to selectNow(), on 16x Tulsa 3 Ghz / SLES9.2 / 2.6.9
Base Harmony:
<as...@box> ~/jre-r576670-work/bin/java -Xms512m -Xmx512m -Xem:client -cp ~/ashipile/SelectTest/ selectnow 2000 10000 10
Server: Opening selector
Server: Opening server
Client: 2000 connections
Client: 10000 requests
Client: 10 iterations
Client: connections established: 2000/2000
Client: 2000 clients connected in 100538 msecs
Client: all clients are connected. I go to sleep forever...
Server: all clients are connected
Server: Ready to serve
Server: iteration: 1/10 selectNow's: 10000 elapsed: 27986 millis
Server: iteration: 2/10 selectNow's: 10000 elapsed: 27814 millis
Server: iteration: 3/10 selectNow's: 10000 elapsed: 27842 millis
Server: iteration: 4/10 selectNow's: 10000 elapsed: 28014 millis
Server: iteration: 5/10 selectNow's: 10000 elapsed: 27611 millis
Server: iteration: 6/10 selectNow's: 10000 elapsed: 27661 millis
Server: iteration: 7/10 selectNow's: 10000 elapsed: 27710 millis
Server: iteration: 8/10 selectNow's: 10000 elapsed: 27713 millis
Server: iteration: 9/10 selectNow's: 10000 elapsed: 27757 millis
Server: iteration: 10/10 selectNow's: 10000 elapsed: 27777 millis
Base Harmony + epoll()-based selector:
<as...@box> ~/jre-r576670-work/bin/java -Xms512m -Xmx512m -Xem:client -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl -cp ~/ashipile/SelectTest/ selectnow 2000 10000 10
Server: Opening selector
Now using EpollSelectorProvider
Server: Opening server
Client: 2000 connections
Client: 10000 requests
Client: 10 iterations
Client: connections established: 2000/2000
Server: all clients are connected
Server: Ready to serve
Client: 2000 clients connected in 832 msecs
Client: all clients are connected. I go to sleep forever...
Server: iteration: 1/10 selectNow's: 10000 elapsed: 173 millis
Server: iteration: 2/10 selectNow's: 10000 elapsed: 84 millis
Server: iteration: 3/10 selectNow's: 10000 elapsed: 82 millis
Server: iteration: 4/10 selectNow's: 10000 elapsed: 87 millis
Server: iteration: 5/10 selectNow's: 10000 elapsed: 87 millis
Server: iteration: 6/10 selectNow's: 10000 elapsed: 87 millis
Server: iteration: 7/10 selectNow's: 10000 elapsed: 82 millis
Server: iteration: 8/10 selectNow's: 10000 elapsed: 86 millis
Server: iteration: 9/10 selectNow's: 10000 elapsed: 86 millis
Server: iteration: 10/10 selectNow's: 10000 elapsed: 87 millis
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Description:
As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
-Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
This version is early draft and NOT intended for the inclusion, since result handling could be O(n^2) in the worst case, that would be solved later. Nevertheless, the performance on select() operations has been improved dramatically.
was:
As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
-Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
This version is early draft and NOT intended for the inclusion, since result handling could be O(n^2) in the worst case, that would be solved later. Nevertheless, the performance on select() operations has been improved dramatically. On the simple test which registers 2000 connections on the selector and then pushes it to selectNow(), on 16x Tulsa 3 Ghz / SLES9.2 / 2.6.9
Base Harmony:
<as...@box> ~/jre-r576670-work/bin/java -Xms512m -Xmx512m -Xem:client -cp ~/ashipile/SelectTest/ selectnow 2000 10000 10
Server: Opening selector
Server: Opening server
Client: 2000 connections
Client: 10000 requests
Client: 10 iterations
Client: connections established: 2000/2000
Client: 2000 clients connected in 100538 msecs
Client: all clients are connected. I go to sleep forever...
Server: all clients are connected
Server: Ready to serve
Server: iteration: 1/10 selectNow's: 10000 elapsed: 27986 millis
Server: iteration: 2/10 selectNow's: 10000 elapsed: 27814 millis
Server: iteration: 3/10 selectNow's: 10000 elapsed: 27842 millis
Server: iteration: 4/10 selectNow's: 10000 elapsed: 28014 millis
Server: iteration: 5/10 selectNow's: 10000 elapsed: 27611 millis
Server: iteration: 6/10 selectNow's: 10000 elapsed: 27661 millis
Server: iteration: 7/10 selectNow's: 10000 elapsed: 27710 millis
Server: iteration: 8/10 selectNow's: 10000 elapsed: 27713 millis
Server: iteration: 9/10 selectNow's: 10000 elapsed: 27757 millis
Server: iteration: 10/10 selectNow's: 10000 elapsed: 27777 millis
Base Harmony + epoll()-based selector:
<as...@box> ~/jre-r576670-work/bin/java -Xms512m -Xmx512m -Xem:client -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl -cp ~/ashipile/SelectTest/ selectnow 2000 10000 10
Server: Opening selector
Now using EpollSelectorProvider
Server: Opening server
Client: 2000 connections
Client: 10000 requests
Client: 10 iterations
Client: connections established: 2000/2000
Server: all clients are connected
Server: Ready to serve
Client: 2000 clients connected in 832 msecs
Client: all clients are connected. I go to sleep forever...
Server: iteration: 1/10 selectNow's: 10000 elapsed: 173 millis
Server: iteration: 2/10 selectNow's: 10000 elapsed: 84 millis
Server: iteration: 3/10 selectNow's: 10000 elapsed: 82 millis
Server: iteration: 4/10 selectNow's: 10000 elapsed: 87 millis
Server: iteration: 5/10 selectNow's: 10000 elapsed: 87 millis
Server: iteration: 6/10 selectNow's: 10000 elapsed: 87 millis
Server: iteration: 7/10 selectNow's: 10000 elapsed: 82 millis
Server: iteration: 8/10 selectNow's: 10000 elapsed: 86 millis
Server: iteration: 9/10 selectNow's: 10000 elapsed: 86 millis
Server: iteration: 10/10 selectNow's: 10000 elapsed: 87 millis
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
> This version is early draft and NOT intended for the inclusion, since result handling could be O(n^2) in the worst case, that would be solved later. Nevertheless, the performance on select() operations has been improved dramatically.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: selectors-epoll-4.patch
selectors-epoll-4.patch is updated.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: selectors-epoll-5.patch
selectors-epoll-5.patch
Fixed issue with lost READABLE operations.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-4879) [classlib][nio] epoll-based
Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12531535 ]
Aleksey Shipilev commented on HARMONY-4879:
-------------------------------------------
On the simple test which registers 2000 connections on the selector and then pushes it to selectNow(), on 16x Tulsa 3 Ghz / SLES9.2 / 2.6.9
Base Harmony:
<as...@box> ~/jre-r576670-work/bin/java -Xms512m -Xmx512m -Xem:client -cp ~/ashipile/SelectTest/ selectnow 2000 10000 10
Server: Opening selector
Server: Opening server
Client: 2000 connections
Client: 10000 requests
Client: 10 iterations
Client: connections established: 2000/2000
Client: 2000 clients connected in 100538 msecs
Client: all clients are connected. I go to sleep forever...
Server: all clients are connected
Server: Ready to serve
Server: iteration: 1/10 selectNow's: 10000 elapsed: 27986 millis
Server: iteration: 2/10 selectNow's: 10000 elapsed: 27814 millis
Server: iteration: 3/10 selectNow's: 10000 elapsed: 27842 millis
Server: iteration: 4/10 selectNow's: 10000 elapsed: 28014 millis
Server: iteration: 5/10 selectNow's: 10000 elapsed: 27611 millis
Server: iteration: 6/10 selectNow's: 10000 elapsed: 27661 millis
Server: iteration: 7/10 selectNow's: 10000 elapsed: 27710 millis
Server: iteration: 8/10 selectNow's: 10000 elapsed: 27713 millis
Server: iteration: 9/10 selectNow's: 10000 elapsed: 27757 millis
Server: iteration: 10/10 selectNow's: 10000 elapsed: 27777 millis
Base Harmony + epoll()-based selector:
<as...@box> ~/jre-r576670-work/bin/java -Xms512m -Xmx512m -Xem:client -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl -cp ~/ashipile/SelectTest/ selectnow 2000 10000 10
Server: Opening selector
Now using EpollSelectorProvider
Server: Opening server
Client: 2000 connections
Client: 10000 requests
Client: 10 iterations
Client: connections established: 2000/2000
Server: all clients are connected
Server: Ready to serve
Client: 2000 clients connected in 832 msecs
Client: all clients are connected. I go to sleep forever...
Server: iteration: 1/10 selectNow's: 10000 elapsed: 173 millis
Server: iteration: 2/10 selectNow's: 10000 elapsed: 84 millis
Server: iteration: 3/10 selectNow's: 10000 elapsed: 82 millis
Server: iteration: 4/10 selectNow's: 10000 elapsed: 87 millis
Server: iteration: 5/10 selectNow's: 10000 elapsed: 87 millis
Server: iteration: 6/10 selectNow's: 10000 elapsed: 87 millis
Server: iteration: 7/10 selectNow's: 10000 elapsed: 82 millis
Server: iteration: 8/10 selectNow's: 10000 elapsed: 86 millis
Server: iteration: 9/10 selectNow's: 10000 elapsed: 86 millis
Server: iteration: 10/10 selectNow's: 10000 elapsed: 87 millis
This mean that epoll()-based selector is 300x times faster than legacy poll().
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
> This version is early draft and NOT intended for the inclusion, since result handling could be O(n^2) in the worst case, that would be solved later. Nevertheless, the performance on select() operations has been improved dramatically.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: selectors-epoll-6.patch
selectors-epoll-6.patch
Fixed internal key map bugs, wakeup channel handling.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch, selectors-epoll-6.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Comment: was deleted
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: selectors-epoll-3.patch
selectors-epoll-3.patch
Final Candidate for epoll() support.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-4879) [classlib][nio] epoll-based
Selector
Posted by "Alexei Zakharov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12534847 ]
Alexei Zakharov commented on HARMONY-4879:
------------------------------------------
Aleksey, I've committed the additional patch at the revision 584782. Please verify.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Assignee: Alexei Zakharov
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch, selectors-epoll-6-linux2.4fallback.patch, selectors-epoll-6.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Comment: was deleted
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev closed HARMONY-4879.
-------------------------------------
I'm closing the issue now as it is not breaking anything now.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Assignee: Alexei Zakharov
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch, selectors-epoll-6-linux2.4fallback.patch, selectors-epoll-6.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (HARMONY-4879) [classlib][nio] epoll-based
Selector
Posted by "Alexei Zakharov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexei Zakharov resolved HARMONY-4879.
--------------------------------------
Resolution: Fixed
Thanks a lot Aleksey. The patch was committed at revisions 583514 and 583521. BTW I moved all java sources that are not specific to any platform to "src/main/java/common" folder and placed your Epol-provider-specific sources to "src/main/java/unix". Please verify that everything was done as expected.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Assignee: Alexei Zakharov
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch, selectors-epoll-6.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: (was: selectnow.java)
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: 2000-all.png
2000-all.png
Comparison of different implementations on 16x Tulsa / 3.2 Ghz / RHEL4 / 2.6.9.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Assigned: (HARMONY-4879) [classlib][nio] epoll-based
Selector
Posted by "Alexei Zakharov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexei Zakharov reassigned HARMONY-4879:
----------------------------------------
Assignee: Alexei Zakharov
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Assignee: Alexei Zakharov
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch, selectors-epoll-6.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: selectnow.java
selectnow.java
The test used in this issue.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: selectnow.java, selectors-epoll-2.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: (was: selectors-epoll-4.patch)
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: selectors-epoll-4.patch
selectors-epoll-4.patch
Some bugfixes, changed the remove() semantics.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-4879) [classlib][nio] epoll-based
Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12533074 ]
Aleksey Shipilev commented on HARMONY-4879:
-------------------------------------------
Please DO NOT commit it to the trunk, as I have found some functionality bugs.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: selectors-epoll-2.patch
selectors-epoll-2.patch
This version is early draft and NOT intended for the inclusion, since result handling could be O(n^2) in the worst case, that would be solved later. Nevertheless, the performance on select() operations has been improved dramatically.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: selectors-epoll-2.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: run.sh
run.sh
Simple script to produce extensive experiment data.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-4879) [classlib][nio] epoll-based
Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12534850 ]
Aleksey Shipilev commented on HARMONY-4879:
-------------------------------------------
Thanks, Alexei! The patch is applied OK.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Assignee: Alexei Zakharov
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch, selectors-epoll-6-linux2.4fallback.patch, selectors-epoll-6.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: 2000-best.png
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-4879) [classlib][nio] epoll-based
Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12534270 ]
Aleksey Shipilev commented on HARMONY-4879:
-------------------------------------------
Patch is applied OK, thanks. I will follow with kernel auto-detection soon, so I will not close the issue now.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Assignee: Alexei Zakharov
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch, selectors-epoll-6.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-4879) [classlib][nio] epoll-based
Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12532384 ]
Aleksey Shipilev commented on HARMONY-4879:
-------------------------------------------
Two images attached: comparison of different implementations on 16x Tulsa / 3.2 Ghz / RHEL4 / 2.6.9.
2000-all.png:
Comparison of all vs. all.
At 0% utilization, Harmony-epoll is 300x faster than Harmony-poll.
At 100% utilization, Harmony-epoll is 5x faster than Harmony-poll.
2000-best.png:
Comparison of epoll implementation on Harmony and Sun.
Harmony-epoll is only 1.1x slower than Sun 1.6.0.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: selectors-epoll-6-linux2.4fallback.patch
selectors-epoll-6-linux2.4fallback.patch
Build-time check for kernel version and stubs to fail gently on LInux 2.4
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Assignee: Alexei Zakharov
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch, selectors-epoll-6-linux2.4fallback.patch, selectors-epoll-6.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-4879) [classlib][nio] epoll-based
Selector
Posted by "Alexei Zakharov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12534283 ]
Alexei Zakharov commented on HARMONY-4879:
------------------------------------------
Ok, let's wait till the autodetection issue is resolved.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Assignee: Alexei Zakharov
> Attachments: 2000-all.png, 2000-best.png, run.sh, selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch, selectors-epoll-4.patch, selectors-epoll-5.patch, selectors-epoll-6.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Description:
As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
-Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
was:
As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
-Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
This version is early draft and NOT intended for the inclusion, since result handling could be O(n^2) in the worst case, that would be solved later. Nevertheless, the performance on select() operations has been improved dramatically.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-4879) [classlib][nio] epoll-based Selector
Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4879:
--------------------------------------
Attachment: selectnow.java
selectnow.java is updated.
Now active channels count could specified.
> [classlib][nio] epoll-based Selector
> ------------------------------------
>
> Key: HARMONY-4879
> URL: https://issues.apache.org/jira/browse/HARMONY-4879
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Environment: Linux
> Reporter: Aleksey Shipilev
> Attachments: selectnow.java, selectors-epoll-2.patch, selectors-epoll-3.patch
>
>
> As the part of Linux Scalability Project, kernel developers had implemented the epoll() I/O multiplexing facility (http://lse.sourceforge.net/epoll/index.html), which scales much better than legacy poll() and select(). Attached patch implements epoll() support for java.nio.channels.Selector, which can be turned on with option:
> -Djava.nio.channels.spi.SelectorProvider=org.apache.harmony.nio.internal.EpollSelectorProviderImpl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.