DPDK patches and discussions
 help / color / mirror / Atom feed
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

  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).