Provuse: Platform-Side Function Fusion for Performance and Efficiency in FaaS Environments

This paper introduces Provuse, a transparent platform-side optimization for FaaS environments that automatically fuses independently deployed functions at runtime to eliminate redundant instances, thereby reducing end-to-end latency by an average of 26.33% and RAM usage by 53.57% without requiring any code changes from developers.

Niklas Kowallik, Natalie Carl, Leon Pöllinger, Wei Wang, Sharan Santhahanam, David Bermbach

Published Mon, 09 Ma
📖 5 min read🧠 Deep dive

Imagine you run a busy coffee shop called "Serverless Cafe."

In this cafe, customers (your apps) don't order a full meal at once. Instead, they order tiny, specific tasks: "Make me a latte," "Toast a bagel," "Chop some fruit." Each task is handled by a different, specialized barista (a Function).

The Problem: The "Double Billing" Chaos

Currently, here is how the cafe works:

  1. A customer orders a Latte.
  2. The Latte Barista makes the coffee.
  3. But wait! The Latte Barista realizes they need Milk from the Milk Barista to finish the order.
  4. The Latte Barista stops, calls the Milk Barista, waits for them to wake up, make the milk, and hand it over.
  5. The Latte Barista then finishes the drink.

The Catch:

  • Double Billing: You have to pay the Latte Barista for the whole time they are standing there waiting. You also have to pay the Milk Barista to wake up, make the milk, and go back to sleep. You are paying for two people to do a job that could be done by one.
  • Slow Service: The customer has to wait for the Latte Barista to call the Milk Barista, wait for the Milk Barista to wake up, and then wait for the Latte Barista to finish. It's like sending a letter back and forth instead of just handing the ingredients to the person next to you.

This is the problem with FaaS (Function-as-a-Service) in the real world. When one piece of code calls another, it creates delays and wastes money because the system treats them as two separate, expensive events.

The Solution: Provuse (The "Smart Manager")

The paper introduces a new system called Provuse. Think of Provuse as a super-smart, invisible manager who watches the whole kitchen.

Instead of letting the baristas call each other across the room, Provuse notices a pattern: "Hey, the Latte Barista calls the Milk Barista 100 times a day. That's inefficient!"

What Provuse does:

  1. The Merge: It quietly takes the Latte Barista and the Milk Barista and combines them into one super-barista.
  2. The Fusion: This new super-barista has both the coffee machine and the milk steamer right next to each other. They don't need to call anyone; they just grab the milk and pour it instantly.
  3. The Magic: The customer doesn't know anything changed. They still order a "Latte." But behind the scenes, the "Latte" and "Milk" tasks are now happening in the same person's hands, instantly.

How It Works (The "How-To")

The paper explains that Provuse doesn't ask the developers (the cafe owners) to rewrite their recipes. It happens automatically at the platform level (the cafe's management system).

  • Watching the Phones: The system watches the "phones" (network connections) the baristas use. If it sees a barista picking up the phone to call another barista and waiting for an answer, it knows, "Aha! These two should be fused."
  • The Construction Crew: A special tool (called the Merger) takes the two separate "kitchen stations" (containers), combines their tools and ingredients into one big station, and builds a new, faster workflow.
  • The Switch: Once the new super-barista is ready, the system quietly switches the customers to them and sends the old, separate baristas home to save money.

The Results: Faster and Cheaper

The researchers tested this in two different types of cafes (a small edge cafe called tinyFaaS and a giant corporate kitchen called Kubernetes).

  • Speed: The coffee was served 26% faster on average. The "waiting for the phone call" time was eliminated.
  • Money: They used 53% less RAM (memory). Instead of paying for two baristas to be awake and ready, they only paid for one super-barista.
  • No Code Changes: The best part? The developers didn't have to change a single line of code. The optimization happened automatically by the platform.

The Catch (Limitations)

Just like any good system, there are a few rules:

  1. Trust: You can only fuse baristas who work for the same company. You wouldn't want to merge a rival coffee shop's barista into your kitchen (security risk).
  2. Asynchronous Orders: If a barista just shouts "Make milk!" and keeps working without waiting for the answer, fusing them doesn't help much. This works best when one task immediately needs the result of another.
  3. Language: Right now, this specific prototype mostly works with Python code (like a specific type of coffee bean), but the idea can be expanded to other languages later.

The Big Picture

Provuse is like a traffic cop for the cloud. It sees that cars (functions) are stopping at every intersection to talk to each other, causing traffic jams and wasting gas. So, it builds a tunnel that connects the two destinations directly.

The result? Your apps run faster, your cloud bill goes down, and you don't have to do any extra work to get there. It's a win for everyone except the "double billing" problem, which finally gets fired.