Skip to main content

Embedding Node.js into a High-performance Network Datapath

Manish Vachharajani (F5 Networks)
Average rating: ****.
(4.00, 2 ratings)

I. Why LineRate chose Node.js
A. Node.js made it easy to import custom logic into traffic management applications

B. This enabled several interesting use cases with very little custom code 1. Example use cases a. A/B Testing b. Replicating production traffic to staging c. XML processing 2. Use cases run with millions of TCP sessions and 100k+ TCP terminations and HTTP requests per second

II. Why embedding Node.js was hard

A. Node.js designed to run standalone and is tightly coupled to its C++ code B. Explain LineRate datapath and constraints for performance C. Describe lrv8 Node.js library 1. Creates C++ interface abstraction for Node.js system services 2. Describe bootstrap system that slides implementations of these interfaces under Node.js javascript code 3. Discuss trade offs between this and using Node.js C++ directly

III. Suggestions to make stock Node.js embeddable

A. Clearly define internal APIs that are used by Javascript layer B. Abstract the underlying C++ code so that different implementations can be used C. Do this incrementally, whole refactors never work.
Photo of Manish Vachharajani

Manish Vachharajani

F5 Networks

Manish was the Founder and Chief Software Architect of LineRate Systems, a high-performance software networking startup that was acquired by F5 Networks in February 2013.

LineRate Systems’ core technology is based on Node.js and Manish’s research group’s work on high-performance networking at the University of Colorado at Boulder.

Prior to LineRate, Manish dedicated 13 years studying
software performance on general purpose processors. He co-authored nearly 50 publications on processor performance in a range of fields including optimizing compiler design, on-chip optics, performance modeling, parallel programming, and high performance networking. His work has been recognized by best paper and presentation awards at
top-tier conferences, support from the National Science Foundation, and support from industry leaders such as Intel and NVIDIA. Manish is currently a Senior Architect at F5 Networks leading the design of the
LineRate product.