AdPad — high-throughput ad server
A multi-process, shared-memory C/C++ socket server on Linux handling 1.5M+ requests per minute on five 24-core servers, followed by a re-architecture of the eZanga.com PPC platform.
- Years
- 2015–2018
- Organisation
- CentricSource
- Role
- Team Lead / C++ Engineer, then Software Architect
Context
AdPad is CentricSource’s ad server, serving 200K+ active campaigns.
What I built and led
- A multi-process, shared-memory C/C++ socket server on Linux handling 1.5M+ requests per minute on five 24-core servers.
- Custom in-memory structures: hash trees, radix trees and a RAM database.
- Later, as Software Architect, the re-architecture of the eZanga.com PPC platform: a service-oriented architecture, multi-threaded PHP, a Redis query layer, and MongoDB replication between MySQL and the query servers.
How it works
Worker processes share campaign data through shared memory, so every process reads the same in-memory structures without copying or locking a database on the hot path. Hash and radix trees keep lookups predictable under load.
Stack
C and C++ on Linux; shared memory and sockets; PHP, Redis, MongoDB and MySQL in the PPC platform.