Data Warehousing and Analytics Platform
Audience Insights query engine: In-memory integer store for social analytics

Audience Insights query engine: In-memory integer store for social analytics

11/10/2014 · Deniz Demir, Islam AbdelRahman, Liang He, Yingsheng Gao

What this post added

Introduced the Audience Insights (AI) query engine, a system designed for rapid processing of social analytics data. Key technical contributions include a hybrid in-memory/flash disk integer store, a fan-out distributed architecture with aggregation and leaf tiers, sharding by user with 1024 shards, and the use of bitset-based inverted indices for efficient filtering (replacing user IDs with bitmasks for faster bitwise AND operations). Implemented cumulative bitmap indices for fast range filters using XOR. Addressed memory constraints by using bitmaps for dense attributes and traditional indexing for sparse attributes, converting sparse indices to bitmaps at query time. Optimized group-by operations using bitset-based filtering and converted 64-bit integer entity IDs to 32-bit vector indices. Improved cache efficiency by organizing user attributes in a columnar-like structure. Scaled affinity computation using greedy selection over locally computed candidates at each shard. Leveraged GPU hardware for offloading computationally intensive operations like affinity computation. Implemented tail latency reduction techniques by cutting execution for high-latency nodes. The engine is implemented in C++ and uses internal Facebook frameworks.

Read the original post ↗