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