Thread: Highly scalable asynchronous NIO reactor library. My gift to the community.

Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 40
  1. #21  
    Renown Programmer
    Join Date
    Dec 2008
    Posts
    363
    Thanks given
    1
    Thanks received
    28
    Rep Power
    74
    Quote Originally Posted by blakeman8192 View Post
    This has absolutely everything to do with how servers work. How does a server send/receive data to all the clients? Networking. What is this library? Very high-performance networking. I would estimate that it can very easily hold around 2k rs2 client connections, while putting hardly any stress on the underlying system. Standard reactor pattern has been tested and proven to be able to handle millions of connections through a light protocol (I believe this was a phone system and it sent/received voice data - I haven't done any research on this, I was told by a friend who is good at programming) and the only thing that will limit your server performance is the code you write on top of this networking. This is infact standard reactor pattern, but stepped up a notch to use cached thread pooling (other types of pooling are available via the AsynchronousIOFactory) to be much more scalable than standard reactor pattern. Believe me, any server framework written by a reasonable programmer on top of this library will easily be able to handle 2k clients, which is the limit the client can have per-world. I'm sure this networking library could easily scale to be able to run multiple worlds in one process (several thousand connections) without any problems.
    Your first argument falls apart, because the protocol has already been created [by Jagex]. You are only creating an implementation of it, not, as you say, using a special 'light protocol to transfer voice'. And, secondly, unless the code currently in place was absolutely horrendous, then the performance limiting factor is most definitely the network. For roughly 2,000 players, any type of caching to immediately serve up connections/threads/etc. would be a complete waste of time and memory. Again, I do think you have done a great job with this, but some of your reasoning appears flawed to me.
    [Only registered and activated users can see links. ]
     

  2. #22  
    Brown
    Guest
    Quote Originally Posted by Gnarly View Post
    That's a quote of the moment.

    @Brown, don't even attempt to make your own framework unless it's using something rather then standard i/o.
    Its made from this, hence I posted here
     

  3. #23  
    Registered Member
    cavallers's Avatar
    Join Date
    Apr 2008
    Posts
    535
    Thanks given
    0
    Thanks received
    3
    Rep Power
    144
    nice release. wont use tho
     

  4. #24  
    Brown
    Guest
    Quote Originally Posted by cavallers View Post
    nice release. wont use tho
    You should.
     

  5. #25  
    Registered Member

    Join Date
    Oct 2007
    Posts
    2,413
    Thanks given
    254
    Thanks received
    479
    Rep Power
    2785
    Quote Originally Posted by Brown View Post
    You should.
    He dosn't know how.
     

  6. #26  
    Brown
    Guest
    Quote Originally Posted by Gnarly View Post
    He dosn't know how.
    He should look at test.java.


    ---------- Post added at 06:47 AM ---------- Previous post was at 06:38 AM ----------

    Hey.. Using the source files of this, I mean, without having them in a Library.. That will work perfectly fine aswell, right?
     

  7. #27  
    Banned

    Join Date
    Jan 2009
    Posts
    778
    Thanks given
    74
    Thanks received
    61
    Rep Power
    0
    Ooooooooooooooo ^

    I'm still playing with this.
     

  8. #28  
    brb ridin da storm

    blakeman8192's Avatar
    Join Date
    Dec 2012
    Age
    28
    Posts
    2,010
    Thanks given
    802
    Thanks received
    1,357
    Rep Power
    286
    Quote Originally Posted by Parabolika View Post
    Your first argument falls apart, because the protocol has already been created [by Jagex]. You are only creating an implementation of it, not, as you say, using a special 'light protocol to transfer voice'. And, secondly, unless the code currently in place was absolutely horrendous, then the performance limiting factor is most definitely the network. For roughly 2,000 players, any type of caching to immediately serve up connections/threads/etc. would be a complete waste of time and memory. Again, I do think you have done a great job with this, but some of your reasoning appears flawed to me.
    Maybe you should look deeper through this library before you attempt to judge it, there is no protocol implemented in this networking facility, it is simply a library that performs highly scalable networking. I was saying that if you use this library, the networking will not be the limiting factor, unlike in winterlove servers. Also, I have run tests and cached thread pooling does in fact scale much better than fixed thread pooling. The main thing is that in this library threads are only created if all threads are currently busy and can't take the new event. However, threads will be re-used until they have been idle for 60 seconds or more, which can pretty much be seen as a form of recycling to avoid the overhead of mass thread creation and destruction.

    Quote Originally Posted by Brown View Post
    He should look at test.java.


    ---------- Post added at 06:47 AM ---------- Previous post was at 06:38 AM ----------

    Hey.. Using the source files of this, I mean, without having them in a Library.. That will work perfectly fine aswell, right?
    Yes, it will work fine without the source files. I have just included the source as I heavily support the open source revolution.
    rest in peace Qemist, Izzy, TeChNo PuNk, Impulser, & bootnecklad
     

  9. #29  
    Brown
    Guest
    Quote Originally Posted by blakeman8192 View Post
    Yes, it will work fine without the source files. I have just included the source as I heavily support the open source revolution.
    Thank you.
    Btw, hows OpenRS comming along?
     

  10. #30  
    Renown Programmer
    Join Date
    Dec 2008
    Posts
    363
    Thanks given
    1
    Thanks received
    28
    Rep Power
    74
    Quote Originally Posted by blakeman8192 View Post
    Maybe you should look deeper through this library before you attempt to judge it, there is no protocol implemented in this networking facility, it is simply a library that performs highly scalable networking. I was saying that if you use this library, the networking will not be the limiting factor, unlike in winterlove servers. Also, I have run tests and cached thread pooling does in fact scale much better than fixed thread pooling. The main thing is that in this library threads are only created if all threads are currently busy and can't take the new event. However, threads will be re-used until they have been idle for 60 seconds or more, which can pretty much be seen as a form of recycling to avoid the overhead of mass thread creation and destruction.
    But how can networking not be a limiting factor? Are you saying that instead, another component (CPU, memory?) is the new limiting factor? Just how much networking traffic does each client use? And, I was saying that Runescape's protocol has already been established, so the amount of data flowing through the pipes will remain the same, NIO or not, this or not. I'm saying that recycling threads will have a minimal affect when network latency is so high.
    [Only registered and activated users can see links. ]
     

Page 3 of 4 FirstFirst 1234 LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •