NatSys Laboratory Ltd. was rebranded to Tempesta Technologies, so we closed the original site natsys-lab.com. The site though will be redirected to our services page for some time.
Meantime, during NatSys Lab. operation, we wrote bunch of deep technical blog posts which can be fetched from NatSys Lab’s blog.
The most interesting (or at least the most loved by us) posts:
- Intelpocalypse: goodbye fast system calls (2019). Any user-space application, including your performance sensitive HTTP(S) proxy, like Nginx or HAProxy, looses up to 40% of performance due to KPTI, an Meltdown attack prevention. Fortunately, Tempesta FW works without context switches, so, remaining secure, it doesn’t experience the performance degradation on KPTI-enabled systems.
- HTTP Requests Proxying (2018) describes how HTTP proxies work with upstream (backed) servers and process HTTP requests and responses. In the article we considered 3 HTTP proxies: HAProxy, Nginx and Tempesta FW. The article was reviewed by the Nginx team and they made suggestions how to optimize Nginx for better performance. However, even after the optimizations, Nginx was still 50% slower than Tempesta FW without any additional tuning. (These performance numbers were gathered without KPTI, so running on a KPTI-enabled system we may expect that Nginx or HAproxy will be 100% and more slower that Tempesta FW.)
- HTTP Strings Processing Using C, SSE4.2 and AVX2 (2016). HTTP requires special algorigthms for strings processing and this article covers strcmp() and strspn() families of function to match and filter HTTP content. These algorithms allow us to filter out web injection attacks on the wire speed. During the years Tempesta FW’s strings processing evolved significantly and more recent changes were described on SCALE 17x talk.
- Fast Finite State Machine for HTTP Parsing (2014). Tempesta FW‘s parser was inspired by the study comparing different approaches for HTTP parsing. The SCALE 17x talk also covers recent changes in our HTTP parser.
- Fast Memory Pool Allocators: Boost, Nginx & Tempesta FW (2015). In this article the Tempesta FW memory pool was described and compared with similar pools from Nginx and the Boost library (surely, our implementation is the fastest one, as always).
- NatSys Lock-free Queue vs LMAX Disruptor vs boost::lockfree::queue (2014) – a performance comparison of our Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer with two other high-performance lock-free queues – LMAX Disruptor and boost::lockfree::queue. It’s worth mentioning that the queue was used in our custom software development projects (a VPN network capturer and a traffic details mediation proxy) as well as in Tempesta FW inter-CPU transport.
- What’s Wrong With Sockets Performance And How to Fix It (2013) discusses the performance issues with the traditional Berkley sockets API and proposes the Tempesta FW‘s synchronous sockets API, an in-kernel socket API which allows to process network data immediately as it arrives to a NIC.
- Studying Intel TSX Performance (2013). We made the study by request of a embedded in-memory database vendor, who was exploring new opportunities in highly concurrent database latches. This is the first study of Intel transactional memory technology available in open source.
We are hiring! Look for our opportunities
Share the article