Back to the Future with C++ and Seastar

Back to the Future with C++ and Seastar

Amos Shapira amos.shapira at gmail.com
Thu Apr 2 00:14:14 IDT 2015


Hi Nadav,

Will it be video taped?
Slides made available?

Thanks,

--Amos

On 2 April 2015 at 05:53, Nadav Har'El <nyh at math.technion.ac.il> wrote:

> On Wed, Apr 01, 2015, Oleg Goldshmidt wrote about "Re: Back to the Future
> with C++ and Seastar":
> > "Nadav Har'El" <nyh at math.technion.ac.il> writes:
> > > Seastar is an open source (http://www.seastar-project.org/) library.
> > > It is based on the concept of "futures" (like in Node.js, just
> implemented
> > > in a much more efficient way). Part of the talk will also introduce
> futures,
> > > how Seastar implements them in C++, and how much C++ has changed in
> recent
> > > years from what you may remember about it.
> >
> > I might come (close to work :). C++ has futures and promises natively,
> > as a part of its standard library. Can you add a couple of words on how
> > Seastar's futures differ?
>
> Sure, though I'm sure Avi will explain it better in his talk :-)
>
> The first difference is that C++11's support for futures is incomplete:
> Futures are supported, but not *continuations*, which are code you want
> to run when the future value becomes available. C++17 will probably have
> continuations, but Seastar has them now.
>
> The second difference is that C++11's futures are indeed powerful, but not
> optimized for performance. They make excessive use of allocations, they
> rely on threads and everything uses atomic operations and locks. Seastar's
> design, on the other hand, is aimed at modern SMP design, for achieving
> the top possible performance: Continuations are very lightweight (not
> based on thread context switching), you write with Seastar a share-nothing
> server (each core deals with its own data) so no locks, no atomic
> operations,
> and very little cache contention. These things make a *huge* difference
> in performance in modern SMPs - especially when you try to scale up to
> many cores.
>
> The third difference is that Seastar is much more than just an
> implementation of futures - it is a complete library for writing
> asynchronous I/O-heavy (network and disk) applications - consider http
> servers, proxies, nosql servers - any server application you can think of
> will be much faster if rewritten in Seastar (Avi will present some
> benchmarks, showing near perfect scalability to 40 cores, 5x speed
> improvements compared to traditional thought-to-be-efficient applications,
> etc. Seastar completely bypasses the operating system by using DPDK,
> but as you may know DPDK only supports L2 packets and has no TCP/IP stack.
> But that's no longer true: We actually implemented in Seastar a full
> TCP/IP stack over DPDK, write in Seastar's own futures framework.
>
> And Seastar is even more. I'll leave a few surprises for Avi's talk ;-)
>
> --
> Nadav Har'El                        |     Wednesday, Apr 1 2015, 13 Nisan
> 5775
> nyh at math.technion.ac.il
>  |-----------------------------------------
> Phone +972-523-790466, ICQ 13349191 |My opinions may have changed, but
> not the
> http://nadav.harel.org.il           |fact that I am right.
>
> _______________________________________________
> Linux-il mailing list
> Linux-il at cs.huji.ac.il
> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
>



-- 
<http://au.linkedin.com/in/gliderflyer>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cs.huji.ac.il/pipermail/linux-il/attachments/20150402/cc26eb79/attachment.html>


More information about the Linux-il mailing list