November 24Seastar framework design philosophy
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.
Copyright © 1999-2018 by the D Language Foundation