background preloader

Jcyclone

Facebook Twitter

NBIO: Java Non-blocking I/O Library. NBIO is a library that implements nonblocking I/O facilities for Java.

NBIO: Java Non-blocking I/O Library

Surprisingly, the standard JDK libraries (as of JDK 1.3) do not provide nonblocking I/O. This means that in order to implement applications (such as web servers and other Internet services) that support many concurrent I/O streams, a large number of threads must be used. However, the overhead of threading (in Java, as well as more generally) limits the performance of such an implementation. What is needed is a nonblocking I/O library that allows a small number of threads to be used, along with a select() or poll() like mechanism to test for incoming I/O events on a large number of streams.

This is what NBIO provides. SEDA - Architecture for Highly-Concurrent Server Applications. My Ph.D. thesis work at UC Berkeley focused on the development of a robust, high-performance platform for Internet services, called SEDA.

SEDA - Architecture for Highly-Concurrent Server Applications

The goal is to build a system capable of supporting massive concurrency (on the order of tens of thousands of simultaneous client connections) and avoid the pitfalls which arise with traditional thread and event-based approaches. SEDA is an acronym for staged event-driven architecture, and decomposes a complex, event-driven application into a set of stages connected by queues. Open Source SEDA JCyclone.