This document describes the architecture and design of OpenDNS's DNS query logging and analytics system. Key points:
- Billions of DNS queries are processed daily and stored in distributed databases and analytics systems.
- A map-reduce style processing system ingests logs, aggregates data by network, and stores results.
- Data is partitioned by network to keep tables small and optimize performance.
- A multi-stage system processes raw logs, calculates statistics, and prunes old data to optimize storage. The results are accessed via API and dashboard.