Jake L. Muller Principal Software Engineer

Product · Live Technology · 2018

Live Platform

Search and caching architecture for a Fortune 500 advertising platform, cutting average request time by over 68 percent.

  • RoleSenior developer
  • Year2018
  • StatusShipped
  • Node.js
  • PHP
  • SQL

How it works

In order: Request; Client cache; Search index; Server cache.REQUEST01CLIENT CACHE02SEARCH INDEX03SERVER CACHE044 STAGES, LEFT TO RIGHTIn order: Request; Client cache; Search index; Server cache.01REQUEST02CLIENT CACHE03SEARCH INDEX04SERVER CACHE4 STAGES, IN ORDER
What this shows

Caching on both sides of the request, with the search index between them. The bottleneck was the query path, so that is where the work went.

  1. 01 · The problem

    Client-facing data requests were taking 450ms on average. At the platform's request volume that was the difference between a campaign that scaled and one that did not.

  2. 02 · What I decided

    Profile before optimising. The bottleneck was the query path, not the transport, so the work went into proprietary search algorithms and a distributed cache on both sides rather than into more infrastructure.

  3. 03 · The outcome

    Average request time down from roughly 450ms to 125ms, a reduction of over 68 percent, holding under heavy load for clients including Bank of America, Century 21, and Northwestern Mutual.

Anatomy

What a surveyor, or a hiring panel, should hear.

01

Constraint

Average request time of 450ms at the platform's volume was the difference between a campaign that scaled and one that did not, for clients who would not tolerate either.

02

Decision

Profile before optimising. The bottleneck was the query path, not the transport, so the work went into search algorithms and a two-sided cache rather than into more infrastructure, which would have cost more and fixed less.

03

Ownership

Down to 125ms, a reduction of over 68 percent, holding under load for Bank of America, Century 21, and Northwestern Mutual. Promoted to senior within three months on that work.

Latency
450ms to 125ms
Cut
68%
Platforms
Web