原文:Photon: Fault-tolerant and Scalable Joining of Continuous Data Streams
Photon 是谷歌广告系统中用于 join 广告曝光日志流和点击日志流的一套系统。
数据流 join 为什么没用 flink 这类通用的流式处理框架?
数据流 join,特别是广告数据流 join,技术上难在哪里?
任一条流都可能乱序或延迟,广告点击涉及计费的问题,计费不能多算广告主的钱,也要尽可能避免漏计费,降低广告收入损失。
该系统在谷歌生产环境中每分钟处理百万级的事件,端到端延迟小于 10 秒(注:对于广告实时竞价的广告主而言,这个延迟的长短很重要)。
广告曝光、点击整体流程为:
- 用户搜索某个关键词时,谷歌的服务器会返回广告和搜索结果。广告服务器会将广告 query 和结果数据作为日志发送到多个日志数据中心(multiple logs-datacenters),最终持久化存储在 GFS 上。每次 query …