How using Foreign Functions optimized our ML prediction serving in production
April 4, 2024
15:20
14:55
Hall A
Intermediate | English | Core Java

Outbrain's CTR model is a key technology in our product that generates hundreds of millions of predictions per second. In order to achieve this, we developed our own high-speed ML framework called "Fwumious Wabbit" in Rust. However, using this framework posed a new challenge as our serving stack is written in Java. We faced the question of how to efficiently transfer predictions from Rust to Java services. After initially using a local TCP server on the same container as the Rust module and after a failed attempt of using JNI, we decided to try Foreign Functions and Memory API. This change resulted in a more than 20% CPU usage decrease and a 20% reduction in average Latency.
In this talk, I wish to share the journey we had and dive a bit into Foreign Functions and Memory API that was presented as part of Project Panama

Yonatan Ben Avraham
Yonatan Ben Avraham
Yonatan Ben Avraham
Yonatan Ben Avraham
Software Developer
Yonatan Ben Avraham

Yonatan ben Avraham, 30 years old.

A software developer for the last 10 years.

I started coding in my military service at Mamram IDF.

I've been working at Outbrain for the last 3.5 years.

Cancellation Policy

Sponsor Cancellation:

In case of cancellation of the event, we will offer a full refund to all attendees and sponsors.

Attendee cancellations:

Up to 30 days prior to the event – 100% Refund 30-14 days prior to the event – 50% Refund No refund will be offered later than that.

Cancellation Policy

Sponsor Cancellation:

In case of cancellation of the event, we will offer a full refund to all attendees and sponsors.

Attendee cancellations:

Up to 30 days prior to the event – 100% Refund.
30-14 days prior to the event – 50% Refund.
No refund will be offered later than that.