Skip to content

Latest commit

 

History

History
23 lines (17 loc) · 1.21 KB

README.md

File metadata and controls

23 lines (17 loc) · 1.21 KB

Scalable-NIO

Non blocking server implemented in Java using NIO Package

General Idea: a single server thread uses the Selector to multiplex incoming connections. Once a job/task/message has been received by the selector, then it is put in a work queue for worker threads to consume.

C10k

NIO

Benchmarks / Test Cases

  • Sending random data + checksum, verify checksum on the server side
  • Sending large messages: we should be able to max out the interface speed (~120 MB/s or so on gigabit)
  • Allowing a large number of client connections: at least 10k if not 100k. We can create clients that open many connections and spread them across department machines (kudlick, g12, etc)
  • Adding sleeps to the logic to force buffers to fill up: for example, if the server sleeps for 1 second upon receiving a message, this will cause a backlog at the client.
  • Comparison with basic netty implementation