From: Liang Ma <liangma@liangbit.com>
To: Yuanhan Liu <yliu@fridaylinux.org>
Cc: libtpa@googlegroups.com, dev@dpdk.org,
Yuanhan Liu <liuyuanhan.131@bytedance.com>
Subject: Re: Libtpa: a DPDK based userspace TCP stack implementation
Date: Mon, 11 Dec 2023 10:57:43 +0000 [thread overview]
Message-ID: <ZXbrJ4k8gbeBQj7s@C02GF04TMD6V> (raw)
In-Reply-To: <ZXbc5oj2Z1DuQvbp@yliu-lap.usts.net>
Hi Yuanhan,
Congratulations!
Regards
Liang
On Mon, Dec 11, 2023 at 05:56:54PM +0800, Yuanhan Liu wrote:
> Hi all,
>
> I'd like to share a new DPDK open source project, libtpa(Transport
> Protocol Acceleration)[0], which is just another userspace TCP stack
> implementation so far, written from scratch.
>
> I started this project 3 years ago, while I was searching for a feasible
> open source project with no luck. There were indeed quite a few options,
> but none of them actually met my needs. I then started writing one. Likely,
> there are still other guys out there looking for a high performance and
> stable userspace TCP stack. This is what this email and libtpa for.
>
> Libtpa is fast. To demonstrate that, we did a hacky redis integration. The
> benchmark shows that libtpa can boost the performance more than 5 times,
> from 0.21m rps to 1.14m rps[1]. Right, it can achieve 1 million rps just
> with one CPU thread. Meanwhile, the p99 latency decreases from 0.815ms
> to 0.159ms.
>
> Regarding the stableness, I'd say it's not bad, all kudos to the
> comprehensive testing. I've written more than 200 tests. Together with
> the testing arguments matrix[2], it can result in a big variety of test
> cases. Therefore, most of the bugs are captured before deployment.
>
> Having said that, I'd still suggest you to do as much testing as you can
> if you want to use it, for libtpa is still under active development and
> it's just v1.0-rc0 being released. Tons of changes have been made since
> the last stable release.
>
> There is one more thing I'm a bit proud of about libtpa: as a DPDK based
> project, libtpa has rich set of debug tools[3]. The sock tracing is
> particularly handy on debugging that libtpa doesn't ship a tcpdump like
> tool, simply for we don't really need one.
>
> The TCP part then may not sound that exciting. It's basically just an
> initial TCP implementation, with standard congestion avoid algorithm
> (New Reno). Libtpa implements slightly more than that though, such as
> SACK, congestion window validation, spurious retransmission detection,
> keepalive, etc.
>
> That's all. Comments, questions, patches and testing are all welcome!
>
> Thanks,
> Yuanhan Liu
>
> ---
> [0]: libtpa: https://github.com/bytedance/libtpa
> [1]: redis: https://github.com/bytedance/libtpa/tree/main/doc/redis.rst
> [2]: matrix shell: https://github.com/bytedance/libtpa/tree/main/doc/internals.rst
> [3]: user guide: https://github.com/bytedance/libtpa/tree/main/doc/user_guide.rst
next prev parent reply other threads:[~2023-12-11 10:58 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-11 9:56 Yuanhan Liu
2023-12-11 10:57 ` Liang Ma [this message]
2023-12-11 11:32 ` [EXT] " Jerin Jacob Kollanukkaran
2023-12-11 12:16 ` Thomas Monjalon
2023-12-11 12:36 ` Yuanhan Liu
2023-12-11 12:17 ` Yuanhan Liu
2023-12-11 13:40 ` Jerin Jacob
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZXbrJ4k8gbeBQj7s@C02GF04TMD6V \
--to=liangma@liangbit.com \
--cc=dev@dpdk.org \
--cc=libtpa@googlegroups.com \
--cc=liuyuanhan.131@bytedance.com \
--cc=yliu@fridaylinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).