Seastar framework design philosophy

Newbie2019 newbie2019 at gmail.com
Sun Nov 24 07:44:36 UTC 2019


http://seastar.io/

And the NoSQL https://github.com/scylladb/scylla, based on 
Seastar.

The framework based on message with futures and promises. The 
futures and promises do not allocate memory.

I think vide.d or hunt framework is never able to delivery such 
performance with GC involved.

The recent talk about Ownership/Borrowing,  a tricky part is GC 
interaction design.  If there is no need lock and share, GC could 
be limit for each thread.

The cross thread memory access should be use as less as possible. 
  In the Seastar framework, shared memory only at the very basic 
framework core(I guess),  the user will never need think of it.

For this kink of work,  you don't need shared(data),  only some 
nice auto released data struct base on refCount or scope(exit).

It is doable and I know a private betterC projects based on 
similar design.  GC and shared has been abandon completely.   the 
demo app delivery 200K http request per second for single thread. 
  (the server provide session, cookie, websocket, regex like 
route, auth.  enable  10 route rule with all component give 100K 
~ 180K r/s for 3000 connection with only one thread).    refCount 
and scope(exit) obj.realase() work great without GC.

The network develop future is message pass.






More information about the Digitalmars-d mailing list