Meta

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

Nov 10, 2014Deniz Demir, Islam AbdelRahman, Liang He, Yingsheng Gao
Audience Insights query engine: In-memory integer store for social analytics
SummaryAI, from the source post

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.

More from the Data Warehousing and Analytics Platform trail