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 via email to