Updates :: Introducing TOFFEE-DataCenter
Written by: Kiran Kankipati - Published: 04-Aug-2016
Since past couple of days I was having sleepless nights as I was working on a new TOFFEE WAN Optimization software variant called as TOFFEE Data-Center.
Unlike existing TOFFEE TOFFEE Data-Center is specifically meant for Data Center, Cluster Computing, HPC applications. TOFFEE is built in Linux Kernel core.
This makes it inflexible to adapt according to the hardware configuration. It does sequential packet processing and does not scale up well in large multi-core
CPU based systems (such as Intel Xeon servers, Core i7 Extreme Desktop systems,etc). Apart from this since it is kernel based, if there is an issue in kernel,
it may crash entire system. This becomes a challenge for any carrier grade equipment (CGE) hardware build.
The new upcoming TOFFEE Data-Center will have basic minimal kernel module plus TOFFEE user-space components. The entire packet processing is done within
user-space. And these modules can be spawned according to the load, and system's hardware capabilities. In a typical scenario you can have 10-100 such
threads executing simultaneously at any given point of time. If due to any reason if one thread crashes/fails, the other threads will continue to operate.
And if required based on the load, new threads can be spawned dynamically. With high-speed load balancing systems, you can build a complete WAN Optimization
hardware cluster(s) based on TOFFEE Data-Center variant.
Here is an example of TOFFEE Data-Center deployment in which TOFFEE Data-Center is deployed in one more many servers with optional load-balancers.
Click HERE to know more about
TOFFEE deployment scenarios and topology.
Initial Prototyping and Feasibility tests: A basic prototype and PoC (proof of concept) software is built to test this idea. With the prototype various
scenarios are tested with different hardware platforms such as low-end mini-PC, an extreme Core i7 Gaming Desktop, and Intel Xeon server(s). With Xeon Server and
Core i7 we can process up to 1-Gigabit Network speeds thus achieving almost wire-speed performance everything within software layer. Making it to work smoothly
within software layer is a challenge but it is required for VM, SDN based WAN Optimization device builds.
Software Development standpoint: Unlike the existing TOFFEE, since the new TOFFEE Data-Center is user-space centric, I can do code build, compile, test,
debug, bug-fix cycles at much higher rates. Since the architecture is discrete, in future any new components can be plugged in it on demand basis with/without
significant code changes. TOFFEE Data-Center (like TOFFEE) can also be used with
any hardware compression/acceleration cards.
This way you can offload some amount of packet processing load and improve overall system performance.
TOFFEE Data-Center for VM/SDN/Cloud Applications: The TOFFEE Data-Center with its modular architecture is well suited for VM based builds, SDN and
Cloud deployments. TOFFEE Data-center is highly portable code which makes it easier to port for any hardware platforms such as ARM, MIPS besides x86.
Hardware Requirements TOFFEE vs TOFFEE Data-Center: TOFFEE needs a good CPU with excellent per-core performance. Traditionally Linux Kernel itself
(kernel space modules) is not good at scaling in multi-core/multi-cpu CPU platforms. Instead the user-space apps in a Linux System is good at scaling in
multi-core/multi-cpu CPU scenarios. This is the main drawback which can degrade the performance of TOFFEE. But TOFFEE Data-Center is modular so it prefers
average single core CPU performance, but more CPU cores since it works in user-space and the load is shared across multiple TOFFEE Data-Center user-space
Release schedule of the new upcoming TOFFEE Data-Center: TOFFEE Data-Center is just started (as on 4-Aug-2016) and its a huge project.
Once a basic, stable version is developed, as a part of initial first phase the same will be released soon once it is mature and stable.
Here is my Youtube VLOG of the same:
(API) Watch Video: Introducing TOFFEE-DataCenter* Click the image to watch this video on Youtube ↗